Главная страница
    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.048 c
2-1162383897
Сергей И
2006-11-01 15:24
2006.11.19
Помогите с вопросом Ini файлов!


2-1162736465
Student2007
2006-11-05 17:21
2006.11.19
Убрать границы после использования Rectagle


2-1162635752
Savek
2006-11-04 13:22
2006.11.19
TQRCompositeReport, количество страниц


3-1158496273
linox
2006-09-17 16:31
2006.11.19
автоматическая нумерация поля Number


1-1160584058
dracula
2006-10-11 20:27
2006.11.19
ListView c CheckBox ами





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