Я создаю свой собственный DBGRid, и он отлично работает, за исключением списка выбора. любой стиль кнопки установлен для сетки, он всегда показывает редактор inplace, ни список выбора, ни кнопку эллипса! .Заданный вопрос dbgrid и Picklist
я не могу понять ошибку, которую я делаю :(вот соответствующий код:
function TMyDBGrid.CreateEditor: TInplaceEdit;
begin
result:=TInplaceEdit.Create(self);
end;
function TMyDBGrid.GetEditStyle(ACol, ARow: integer): TEditStyle;
begin
case Columns[ACol].ButtonStyle of
cbsAuto : Result:=esPickList;
cbsNone : result:=esSimple;
cbsEllipsis : result:=esEllipsis;
end;
end;
И конструктор и деструктор просто вызовите унаследовали с конструктором просто установив некоторые цвета для сетки.
но есть проблема: я попытался использовать TDBGridInplaceEdit, но объявлен в части реализации блока DBgrids. есть ли способ использовать его помимо изменения источника Delphi? – DrWael
@DrW - Это действительно проблема. Вы можете попытаться получить ваш редактор inplace из TInplaceEditList, который находится ближе к TGridInplaceEdit, а затем добавить недостающую функциональность, посмотрев источник VCL для TGridInplaceEdit. Но я не уверен, что это тоже сработает. В источнике dbgrid есть жесткие роли, которые превращают редактор в TGridInplaceEdit. –
Рассмотрите вопрос о проблеме, которую вы пытаетесь решить. Тогда могут быть другие способы замены редактора. –