Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизДвумерные массивы в испекторе объектов Найти похожие ветки
← →
dosik (2004-07-07 16:30) [0]Уважаемые мастера. Кто нибудь из Вас сталкивался когда-нибудь с редактированием думерного массива в испекторе объектов. С одномерным все понятно - TCollection. А что с двумерным??? TCollection в TCollection лезть не хочет. Не подкините идейку?
← →
Sandman25 © (2004-07-07 16:30) [1]Написать свой редактор
← →
dosik (2004-07-07 16:32) [2]А как-нибудь побыстрей?
← →
Sandman25 © (2004-07-07 16:36) [3]Отказаться от идеи редактирования в design-time или представлять в виде одномерного массива.
Если есть желание, можно попробовать представлять в виде TStrings, и парсить строки, каждая из которых представляет собой конкатенацию одной строки массива. Может, еще есть способы.
← →
Mim1 © (2004-07-07 17:22) [4]
> TCollection в TCollection лезть не хочет
Еще как хочет.unit Button1;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TFirstCol = class;
TFirstColItem = class;
TSecondCol = class;
TSecondColItem = class;
TButton1 = class(TButton)
private
FFirstCol : TFirstCol;
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property FirstCol : TFirstCol read FFirstCol write FFirstCol;
end;
TFirstCol = class(TCollection)
private
FOwner : TPersistent;
protected
function GetOwner: TPersistent; override;
public
constructor Create(_Owner:TPersistent); reintroduce;
published
end;
TFirstColItem = class(TCollectionItem)
private
FSecondCol : TSecondCol;
protected
function GetOwner: TPersistent; override;
public
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
published
property SecondCol : TSecondCol read FSecondCol write FSecondCol;
end;
TSecondCol = class(TCollection)
private
FOwner : TPersistent;
protected
function GetOwner: TPersistent; override;
public
constructor Create(_Owner:TPersistent); reintroduce;
published
end;
TSecondColItem = class(TCollectionItem)
private
protected
public
published
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Standard", [TButton1]);
end;
{ TFirstColItem }
constructor TFirstColItem.Create(Collection: TCollection);
begin
inherited;
FSecondCol := TSecondCol.Create(self);
end;
destructor TFirstColItem.Destroy;
begin
FSecondCol.Free;
inherited;
end;
function TFirstColItem.GetOwner: TPersistent;
begin
Result := Collection;
end;
{ TButton1 }
constructor TButton1.Create(AOwner: TComponent);
begin
inherited;
FFirstCol := TFirstCol .Create(self);
end;
destructor TButton1.Destroy;
begin
FFirstCol.Free;
inherited;
end;
{ TFirstCol }
constructor TFirstCol.Create(_Owner: TPersistent);
begin
inherited Create(TFirstColItem);
FOwner := _Owner;
end;
function TFirstCol.GetOwner: TPersistent;
begin
result := FOwner;
end;
{ TSecondCol }
constructor TSecondCol.Create(_Owner: TPersistent);
begin
inherited Create(TSecondColItem);
FOwner := _Owner;
end;
function TSecondCol.GetOwner: TPersistent;
begin
result := FOwner;
end;
end.
Вы просто не умеете их готовить. (с) <->
← →
dosik (2004-07-07 23:01) [5]Написал что-то вроде этого. Работает, но вот только в дизайнйне не хочет вложенный лист открыватся в виде отдельного окна (((
← →
Mim1 © (2004-07-08 07:49) [6]
> [5] dosik (07.07.04 23:01)
А мой пример смотрел? Теперь делаем тупимеханическую работу с смотри что есть у меня и чего нет у тебя.
Я ведь дал вам пример без лишностей. :|
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.025 c