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

Вниз

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

 
learner ©   (2006-07-01 07:56) [0]

Здравствуйте !
Проблема такая:
Есть две "модели" 1-ая и 2-ая. Одна описана в юнит1, другая в юнит2.
Для каждой надо написать Frame.
Кода в фрейме много и он он практически совпадает для этих моделей
Отличия типа:
Model: TMyModel1; и Model: TMyModel2;
Const My = 1; и Const My = 2;
Как бы мне обойтись одним фреймом ?
Что нибудь типа:
{$IFDEF что-то} const My = 1; {$ELSE} const My = 2; {$ENDIF}
или как нибудь по другому
P.S. одна программа может использовать оба вида фраймов.


 
Loginov Dmitry ©   (2006-07-01 08:25) [1]

> Что нибудь типа:
> {$IFDEF что-то} const My = 1; {$ELSE} const My = 2; {$ENDIF}


Лучше через Tag


 
learner ©   (2006-07-01 09:38) [2]

>Loginov Dmitry
Все бы было хорошо, но в Frame.Create Tag еще не принимает новое
значение. Оно устанавливается позже. В CMShowingChanged оно уже
нужное. А мне надо определять еще в Frame.Create :((


 
Loginov Dmitry ©   (2006-07-01 09:51) [3]

> А мне надо определять еще в Frame.Create


Если фреймы создаются в ран-тайме, то сделай override-версию конструктора (в ран-тайме вообще можно выбрать любой путь для достижения цели).

Если фреймы кладутся на форму визуально, то добавь в секцию published фрейма какое либо свойство, например:

property FrameType: TFrameType; {Ctrl + Shift + C}

и создай процедуру регистрации

procedure Register;
begin
 RegisterComponents("MyTab", [TMyFrame]);
end;

после чего откомпилируй и установи фрейм как компонент. После этого сможещь менять FrameType в инспекторе объектов.

Но в ран-тайме, конечно, все проще.


 
learner ©   (2006-07-01 10:18) [4]

>Loginov Dmitry
>Если фреймы кладутся на форму визуально, то добавь в секцию published
>фрейма какое либо свойство
Tag и так published
Фреймы кладутся на форму визуально, устанавливаю Tag = 1
В Frame.Create override прверяю: Tag еще равен нулю


 
Loginov Dmitry ©   (2006-07-01 15:57) [5]

> В Frame.Create override прверяю: Tag еще равен нулю


Он и будет равным нулю. Инициализация published-свойств автоматически выполняется ПОСЛЕ работы конструктора. Выполняйте необходимые действия в отдельной процедуре, вызываемой, например, из обработчика OnCreate формы.



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

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

Наверх





Память: 0.46 MB
Время: 0.011 c
2-1152036071
Geonew
2006-07-04 22:01
2006.07.23
Таблица


2-1151684978
Gloomer
2006-06-30 20:29
2006.07.23
Отображение GIF


9-1132234558
ПЛОВ
2005-11-17 16:35
2006.07.23
Вопрос по OpenGL


15-1150835157
Axis_of_Evil
2006-06-21 00:25
2006.07.23
В остнастке "управление компьютером"


2-1141049034
Arazel
2006-02-27 17:03
2006.07.23
Закрыть порты TCP:135/UDP:445 програмным образом





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