![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хочу впендюрить кнопочку в StringGrid [D7]
pasha_golub © (2007-05-08 15:44:00)
procedure TForm1.bClick(Sender: TObject);
begin
If (sg.Row > -1) and (sg.Col > -1) then
sg.Cells[sg.Col,sg.Row] := InputBox('Quick','Enter value',sg.Cells[sg.Col,sg.Row])
end;
procedure TForm1.sgEnter(Sender: TObject);
begin
{$D+} {$L+}
b := TButton.Create(Sender as TComponent);
b.Parent := Sender as TWinControl;
b.Height := sg.DefaultRowHeight;
b.Width := sg.DefaultColWidth div 5;
b.Visible := True;
b.Enabled := True;
b.OnClick := Self.bClick;
end;
Задача: при выделении ячейки кнопка становится слева в ней же. По нажатию спросить значение, и ввести в ячейку. Проще простого. Кнопка создается, когда грид получает фокус. Но не отрабатывает обработчик. Ткните носом, будьте добры.
pasha_golub (2007-05-08 16:17:00) [1]
> StringGrid Parent-ом быть не должен, т.к. он не передает
> команды своим деткам, кроме InplaceEdit
Спасибо, не знал.
> DrPass © (08.05.07 16:09) [1]
>
> А почему OnEnter, а не OnSelectCell? И где позиция кнопки
> указана? И почему Owner кнопки у тебя Sender, а не форма?
>
Я не весь код привел.
MBo (2007-05-08 16:16:00) [2]StringGrid Parent-ом быть не должен, т.к. он не передает команды своим деткам, кроме InplaceEdit
И кнопку не нужно каждый раз создавать, а одну храни, и ставь на нужное место.
DrPass (2007-05-08 16:09:00) [3]А почему OnEnter, а не OnSelectCell? И где позиция кнопки указана? И почему Owner кнопки у тебя Sender, а не форма?