Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Внутреннему класу узнать параметр класа в который он входит [D6]


zorik ©   (2006-10-11 11:06:00) 

Скажем есть клас для сохранения чего-либо в специфический формат. Формат сохранения - текстовый файл, который состоит из некого количества блоков. Существует еще такая спецификация как версия

Блок общий
 TBlock = class
 private
   FShortDescr: String;
 public
   constructor Create;
   destructor Destroy; override;
   property ShortDescr: String read FShortDescr write FShortDescr;
   procedure Draw; virtual; abstract;
 end;

constructor TZLasBlock.Create;
begin
 inherited Create;
 FShortDescr :='';
end;


Блок "Версия"
 TVersBlock = class(TBlock)
 private
 public
   constructor Create;
   destructor Destroy; override;
 end;


общий клас
 TZFile = class
private
 FVers: Integer;
 FVersBlock: TVersBlock;
...
public
 constructor Create;
...
end;

constructor TZFile Create;
begin
 inherited Create;
 FVers := 0;
 FVersBlock := TVersBlock.Create;
end;


в реализации метода TVersBlock.Create нужно реализовать следущее:
case FVersof
 1: FShortDescr := 'Версия 1.0';
 ...


но о версии TVersBlock не знает


zorik   (2006-10-11 14:23:00) [1]

Проблему решил. Проблема в том, что разные блоки, будут формироватся в зависимости от многих параметров, не только от версии


jack128   (2006-10-11 12:26:00) [2]

zorik ©   (11.10.06 11:06)
но о версии TVersBlock не знает

ну передай в конструктор TVersBlock эту версию, в чем проблема?


Наверх

Титульная страница Поиск, карта сайта Написать письмо