Главная страница
    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
9-5931
dimodim
2003-08-18 08:00
2004.03.03
Как в ЖЛСцене сделать прорисовку На их таймере


1-6117
Dima Los
2004-02-20 17:08
2004.03.03
Стандартный вид формы заменить своей картинкой


1-6098
Santra
2004-02-20 19:57
2004.03.03
Как проверить наличие файла?


14-6222
Ru
2004-02-11 11:18
2004.03.03
Можно ли обойти запрет на посещение сайтов?


7-6258
Yuve
2003-12-13 13:23
2004.03.03
Comport





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский