Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.035 c
14-1088512053
Kolyan
2004-06-29 16:27
2004.07.25
Хендл The Bat!


14-1089123073
VEG
2004-07-06 18:11
2004.07.25
Дайте, пожалуйста, совет насчет доменов и хостинга


14-1089242699
Sanek_metaller
2004-07-08 03:24
2004.07.25
Thumbs.db


1-1089274655
aliced
2004-07-08 12:17
2004.07.25
Панель Delphi отсутствует при открытии проекта


3-1088508416
DSKalugin
2004-06-29 15:26
2004.07.25
Программная Индексация DBase III





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский