Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Про 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-6153
dr Tr0jan
2004-02-16 02:48
2004.03.03
TPageControl без закладок.


9-5937
Calm
2003-08-14 14:10
2004.03.03
DelphiX. Primary surface cannot be made. Как с этим бороться?


11-6001
Angel_vv
2003-06-17 21:04
2004.03.03
Help!!! Как организовать сетевой досту к бд (dbf)?


4-6267
LameFox
2003-12-26 16:38
2004.03.03
Оформление в Windows 2000 как в Windows XP


1-6090
ses
2004-02-21 01:36
2004.03.03
Не запускается программа где не установлен Delphi