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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.029 c
4-86214
lesa
2002-11-11 18:20
2002.12.26
Как запустить DOS приложение в окне с помощью CreateProcess?


1-85994
tester1
2002-12-16 10:51
2002.12.26
не получается сделать хитрый алгоритм :(


14-86112
Дядя Вел
2002-12-03 18:40
2002.12.26
Wake UP on LAN


14-86116
JC
2002-12-04 01:23
2002.12.26
Need Help


4-86233
Yegor Derevenets
2002-11-10 20:58
2002.12.26
Звук в телефонную линию





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