Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
zorik ©   (2006-10-11 11:06) [0]

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

Блок общий
 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 FVers of
 1: FShortDescr := "Версия 1.0";
 ...


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


 
jack128 ©   (2006-10-11 12:26) [1]

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

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


 
zorik ©   (2006-10-11 14:23) [2]

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



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

Форум: "Основная";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
15-1161880772
KilkennyCat
2006-10-26 20:39
2006.11.19
Объявление о работе. Петербург.


2-1162395129
7D7
2006-11-01 18:32
2006.11.19
я непомню как это делается))


15-1162385965
kick
2006-11-01 15:59
2006.11.19
Наследник от TForm запустить не могу :) :)


6-1150847702
AleKo
2006-06-21 03:55
2006.11.19
Сохранить Attachment (Indy)


15-1162206003
maxmax111
2006-10-30 14:00
2006.11.19
поскажите программу, которая..





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский