![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть готовые решения для PickList ячеек TStringGrid?
Aleksandr. © (2006-10-05 15:47:00)Чтобы при входе в ячейку можно было выпадающий список открывать?
ЮЮ (2006-10-06 04:54:00) [1]TCustomGrid
protected
function GetEditStyle(ACol, ARow: Longint): TEditStyle; dynamic;
function CreateEditor: TInplaceEdit; virtual;
function TCustomGrid.GetEditStyle(ACol, ARow: Longint): TEditStyle;
begin
Result := esSimple;
end;
В TRxDrawGrid, например, это сделано так:
function GetEditStyle(ACol, ARow: Longint): TInplaceEditStyle; override;
function TRxDrawGrid.GetEditStyle(ACol, ARow: Longint): TInplaceEditStyle;
begin
Result := esSimple;
if Assigned(FOnGetEditStyle) then FOnGetEditStyle(Self, ACol, ARow, Result);
end;
Т.е. определение стиля редактора вынесено в обработчик события OnGetEditStyle
TInplaceEditList = class(TInPlaceEdit)
public
property OnGetPickListitems: TOnGetPickListItems read FOnGetPickListitems
write FOnGetPickListitems;
Т.е. после создание редакторя ячейки следует редактору назначить обработчик
З.Ы. Если данные хранятся в некой "таблице" в памяти, то можно взять TRxDrawGrid, где останется написать OnSet[Get]EditText и OnDrawCell.
(TrxDrawGrid уже имеет нужные методы
procedure DrawStr(ARect: TRect; const S: string; Align: TAlignment);
procedure DrawMultiline(ARect: TRect; const S: string; Align: TAlignment);
procedure DrawPicture(ARect: TRect; Graphic: TGraphic);
procedure DrawMasked(ARect: TRect; Graphic: TBitmap);
)
Необходимые для редактирования данные вынесены там о обработчики совытий
Германн (2006-10-06 01:17:00) [2]
> Есть готовые решения для PickList ячеек TStringGrid?
Есть. У Максима http://www.torry.net/всё есть. Как в Греции.
Loginov Dmitry (2006-10-05 23:16:00) [3]КотКамышовый © (05.10.06 16:56) [1]
Parent := Grid
А вот этого ради бога не надо! Слишком классные эффекты после этого наблюдаются :)
КотКамышовый (2006-10-05 16:56:00) [4]можно ComboBox использовать.
Делать видимым при входе в ячейку. Parent := Grid, координаты = CellRect ну и т.д.