Вниз
Скачать: CL | DM;

Новый class и его property   Найти похожие ветки 

← →
BillyJeans ©   (2003-03-05 13:29) [0]

Создаю класс, который runtime создает форму с DBGrid, и никак не могу объявить свойство Columns, чтобы в палитре свойств можно было описывать столбцы создаваемого DBGrid....


← →
Darlock   (2003-03-05 13:45) [1]

А в чем собственно проблема?


← →
Dmitry Filippov ©   (2003-03-05 13:48) [2]


type
TMyGridColumnsProperty = class(TClassProperty)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
end;

TMyGridColumnsPropertyEditor = class(TComponentEditor)
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
end;

procedure TMyGridColumnsPropertyEditor.ExecuteVerb(Index: Integer);
begin
if Index < inherited GetVerbCount then
inherited ExecuteVerb(Index) else
begin
Dec(Index, inherited GetVerbCount);
case Index of
0 :ShowCollectionEditor(Designer, Component,
TMyGrid(Component).Columns, "Columns");
end;
end;
end;

function TMyGridColumnsPropertyEditor.GetVerb(Index: Integer): string;
begin
if Index < inherited GetVerbCount then
Result := inherited GetVerb(Index) else
begin
Dec(Index, inherited GetVerbCount);
case Index of
0: Result := "?aaaeoi? eieiiie...";
1 : Result := "Reid & K";
end;
end;
end;

function TMyGridColumnsPropertyEditor.GetVerbCount: Integer;
begin
Result := inherited GetVerbCount + 2;
end;

procedure TMyGridColumnsProperty.Edit;
begin
ShowCollectionEditorClass(Designer, TDBGridColumnsEditor,
GetComponent(0) as TComponent, TMyGridColumns(GetOrdValue), GetName);
end;

function TMyGridColumnsProperty.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog, paReadOnly];
end;


procedure Register;
begin
RegisterPropertyEditor(TypeInfo(TMyGridColumns), TMyCustomDBGrid, "", TMyGridColumnsProperty);
RegisterComponentEditor(TMyCustomDBGrid, TMyGridColumnsPropertyEditor);
end;


← →
Mike_Goblin ©   (2003-03-05 13:49) [3]

F1 TDBGridColumns
есть еще исходные тексты VCL и компонента TDBGrid, намек улавливаешь? :))))


← →
BillyJeans ©   (2003-03-05 13:53) [4]

а вот не получается сделать так, чтобы в свойстве объявленных Columns можно было выбирать поле таблицы...


← →
Dmitry Filippov ©   (2003-03-05 13:55) [5]

А таблица то есть


← →
BillyJeans ©   (2003-03-05 14:12) [6]

в новом классе есть table, datasource и dbgrid...


← →
BillyJeans ©   (2003-03-05 14:19) [7]

происходит следующая беда:
если в create класса пишу
FColumns := TDBGridColumns.Create(nil, TColumn);
то ругает на отсутствие owner;
если
FColumns := TDBGridColumns.Create(FDBGrid, TColumn);
то, при обращении к столбцу с индексом 1 вылетает Grid index out of range


← →
Dmitry Filippov ©   (2003-03-05 14:28) [8]

попробуй FColumns:=TMyGrid.Columns;


← →
BillyJeans ©   (2003-03-05 15:01) [9]

гы, а все и получилось!!!


← →
BillyJeans ©   (2003-03-05 15:50) [10]

а если у у нового класса есть свойство FieldName, как сделать, чтобы в палитре выпадал список полей Table?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
14-54306
kostya2000
2003-02-25 22:14
2003.03.17
Это просто.... нет слов.... прочитайте обязательно....


1-54009
Nikolai_S
2003-03-05 15:08
2003.03.17
Создание документа на основе шаблона в MS Word


14-54270
ZeroDivide
2003-02-28 09:18
2003.03.17
С последним днем зимы!


6-54132
soho
2003-01-27 17:50
2003.03.17
whois


1-53973
Alexsey Orlov
2003-03-06 09:28
2003.03.17
ListView - color




   Наверх