Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Двумерные массивы в испекторе объектов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
6-1085714482
Graf
2004-05-28 07:21
2004.07.25
Прокси-сервер


14-1089358251
}|{yk
2004-07-09 11:30
2004.07.25
Как думаете, это глюк Firebird?


1-1089440576
~ShamaN~
2004-07-10 10:22
2004.07.25
Защита листа Excel


14-1089112895
Zlod3y
2004-07-06 15:21
2004.07.25
Версии Delphi


3-1088577412
zorik
2004-06-30 10:36
2004.07.25
Нужно написать запрос