Текущий архив: 2002.12.26;
Скачать: CL | DM;
ВнизIni files Найти похожие ветки
← →
DeMoN-777 (2002-12-16 20:05) [0]Народ, помогите пожалуйста...
Проблема вот в чём....
Мне надо считать настройки из ini-файла и по ним выставить на компонентах свойства true или false.
Считываю по onCreate главной формы. На главной форме все значения устанавливаются, а на остальных
нет т.к. они ещё не успели воздатся.
Вопрос:
По какому событию лучше всего реализовать чтение?
← →
mike-d (2002-12-16 20:37) [1]Как вариант:
var
Form1: TForm1;
RunApp: Boolean = True;
implementation
{$R *.DFM}
procedure TForm1.FormShow(Sender: TObject);
begin
if RunApp then
begin
...
RunApp := False;
end;
end;
← →
PVOzerski (2002-12-16 20:38) [2]Вообше говоря, очевидны два подхода:
1) То, что касается данной формы, читать на OnCreate этой самой формы;
2) Читать всё на onCreate главной формы, но не пытаться присваивать значения
свойствам еще не созданных форм, а dhtvtyyj сохранять их в каких-нибудь "сторонних"
переменных. Преимущества метода 2 мне не очевидны.
>нет т.к. они ещё не успели воздатся.
А вообще, не бойтесь думать и экспериментировать, и Вам воздастся! :^)
← →
DeMoN-777 (2002-12-16 21:05) [3]>PVOzerski © (16.12.02 20:38)
Честно говоря мне более нравится, и я считаю более грамотным вариант №1.
Например, есть форма TFmOptions = class(TForm) в которой хранится настройка прозрачности главного окна(которое создаётся первее чем окно настроек программы). В коде например такой порядок...
Procedure LoadFromIni;
begin
Ini:=TIniFile.create(Pach+"Status.dll");
FmOptions.AlphaBlendTrack.Position:= Ini.ReadInteger("Options","AlphaBlend", FmOptions.AlphaBlendTrack.Position);
Ini.Free;
end;
procedure TFmMain.FormCreate(Sender: TObject);
begin
Pach:=ExtractFilePath(Application.ExeName);
LoadFormIni; //Моя процедура считывания
FmMian.AlphaBlendValue:= AlphaBlendTrack.Position;
end;
Очевидно, что способ №1 мне никак не подходит, а способ №2 я считаю более трудоёмким и менее оптимальным.
← →
Palladin (2002-12-16 22:33) [4]думаю можно создать юнит и там завести все переменные... в нем же и читать на момент инициализации юнита...
если покажется слишком рутинно создавать кучу переменных, то
можно создать один глобальный объект типа GlobalIni:TIniFile
и в том же модуле на
initialization
GlobalIni:=TIniFile.Create(strIniFileName);
finalization
GlobalIni.free;
и пусть каждая форма при создании сама читает свои настройки из GlobalIni
это ИМХО :)
Страницы: 1 вся ветка
Текущий архив: 2002.12.26;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c