Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

Про Stringgrid   Найти похожие ветки 

 
Серёга   (2004-02-19 12:43) [0]

Как сделать чтобы при нажатии Enter"a ячейка stringgrid"a становилась двухстрочной?


 
Тимохов   (2004-02-19 12:45) [1]

Без дописывания TStringGrid - никак.


 
Серёга   (2004-02-19 13:43) [2]

Как понять без "дописания"?


 
TUser   (2004-02-19 13:49) [3]

Надо сотворить своего наследника от класса TStringGrid. Можно еще memo-поле вставить в ячейку таблицы, но это уже изврат.


 
Тимохов   (2004-02-19 14:09) [4]

Насколько я помню стандартный inplaceeditor в гриде сделан однострочным. В принципе его можно сделать многострочным. Но все это ой как не просто, т.к. придется корректировать высоту строки и т.д.

Мой совет - искать готовый компонент. Либо, если располагаете достаточным количеством времени - начать копать модуль grids, но будет готовы к тому, что это дело не быстрое.


 
Amoeba   (2004-02-19 14:12) [5]

Можно попробовать поискать готовый компонент на www.torry.net
Авось повезет.


 
MBo   (2004-02-19 14:21) [6]


procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
R: TRect;
begin
with StringGrid1 do begin
R := CellRect(ACol, ARow);
OffsetRect(R, Left+2, Top+2);
Memo1.SetBounds(R.Left, R.Top, R.Right-R.Left, R.Bottom-R.Top);
Memo1.Lines.Text:=Cells[ACol,ARow];
Memo1.Visible := True;
Memo1.SetFocus;
end;
CanSelect := True;
end;

procedure TForm1.Memo1Exit(Sender: TObject);
begin
with StringGrid1 do
Cells[Col,Row]:=Memo1.Text;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
i:integer;
Sz:Integer;
begin
with StringGrid1 do begin
Canvas.FillRect(Rect);
Sz:=Abs(Canvas.Font.Size)*3 div 2;
with TStringList.Create do begin
Text:=Cells[ACol,ARow];
for i:=0 to Count-1 do
Canvas.TextOut(Rect.Left+2,Rect.Top+2+i*Sz,Strings[i]);
Free;
end;
end;
end;

procedure TForm1.StringGrid1TopLeftChanged(Sender: TObject);
begin
Memo1.Visible:=False;
end;



 
Тимохов   (2004-02-19 14:32) [7]


> MBo © (19.02.04 14:21) [6]

ИМХО это только начало.
1. Если автору нужно, то следует скорректировать высоту строки.
2. При прокрутке мышкой полос прокрутки грида мемо скроется, а будет ли записано его значение в ячейку?


 
MBo   (2004-02-19 14:43) [8]

>ИМХО это только начало
Ну да, набросок.
1. Конечно, хотя можно изначально задать такую высоту ячеек, чтобы помещалось максю количество строк. Можно также ограничить количество вводимых в Мемо строк.
2. Да.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-6156
Digitman
2004-02-19 12:16
2004.03.03
TListView.OnDeletion


1-6086
Александр1
2004-02-21 11:30
2004.03.03
Работа с компонентом StringGrid


3-5992
Andrey V.
2004-02-03 20:05
2004.03.03
Гибкая уникальность


14-6192
Knight
2004-02-09 01:21
2004.03.03
Навеяно темой о Лукьяненко...


6-6178
RaPToR_1
2003-12-26 21:46
2004.03.03
ping





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский