Главная страница
    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.45 MB
Время: 0.006 c
3-85800
Kirill Shapovalov
2002-12-06 10:00
2002.12.26
Сортировка в DBGrid


14-86177
Separator
2002-12-06 11:10
2002.12.26
Поиск в массиве.


3-85850
atmamont
2002-12-07 16:35
2002.12.26
лучший способ заполнения primary key в парадоксе


3-85802
nikolo
2002-12-05 16:44
2002.12.26
Хранимые процедуры MS SQL


14-86126
Vetal119
2002-12-05 14:47
2002.12.26
Взлом HASP





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