Вниз
Скачать: CL | DM;

INI + Form   Найти похожие ветки 

← →
form1   (2007-02-19 14:27) [0]

Привет всем! У мну такая проблема: Есть 3 формы, состояние (видима/невидима) записывается в INI файл, а при загрузке эти 2 формы считывают своё состояния, но всёравно остаются невидимыми, даже если параметры установлены, что они видимы.


← →
Джо ©   (2007-02-19 14:34) [1]

наверное, ты неправильно это делаешь.


← →
RASkov   (2007-02-19 15:34) [2]

> [0] form1   (19.02.07 14:27)

Покажи тот момент, где ты читаешь параметры из ини, и скажи в каком месте, какой формы это(чтение) происходит.


← →
DVM ©   (2007-02-19 15:52) [3]


> Покажи тот момент, где ты читаешь параметры из ини, и скажи
> в каком месте, какой формы это(чтение) происходит.

в OnShow :)


← →
Belorus ©   (2007-02-20 17:30) [4]

У нас использование TTelepat платное. Так что form1 или раскошеливайся, или приводи весь код.


← →
form1   (2007-02-21 14:49) [5]

Вот код из 3 формы:

procedure TForm3.FormCreate(Sender: TObject);
var ini:TIniFile;
     a: boolean;
begin
ini:=TINIFile.Create("C;\test.ini");
a:=ini.ReadBool("Main","Test",false);
if a=true then
begin
Form3.Visible:=true;
//Form3.Show;
end
else
begin
Form3.Visible:=false;
//Form3.Hide;
end;
ini.Free;
end;

procedure TForm3.FormDestroy(Sender: TObject);
var ini:TIniFile;
begin
ini:=TINIFile.Create("C;\test.ini");
ini.WriteBool("Main","Test",Form3.Visible);
ini.free;
end;


аналогично во второй форме.


← →
fd979 ©   (2007-02-21 15:02) [6]

FormStyle на что установлен?


← →
Джо ©   (2007-02-21 15:02) [7]

А зачем создавать форму, если она не будет показана? Читай значение из ини, если там False, просто не создавай форму.

И еще недочеты в коде:
1. Вместо "if a=true then" пишут просто "if a then"
2. Используй try..finally при работе с TIniFile
3. Не используй обращение к глоб. переменной, т.е., в методе класса пиши так: "ini.WriteBool("Main","Test",Visible)".


← →
RASkov   (2007-02-21 18:56) [8]

> Читай значение из ини, если там False, просто не создавай
> форму.


> [5] form1   (21.02.07 14:49)

И сделай это где-нибудь в одном месте для всех форм... например на OnCreate главной формы.
В свойствах проекта выкинь из AutoCreateForm все кроме главной.


← →
Belorus ©   (2007-02-22 22:21) [9]

if a=true then
begin
Form3.Visible:=true;
//Form3.Show;
end
else
begin
Form3.Visible:=false;
//Form3.Hide;
end;


Это заменяется на
Form3.Visible:=a;



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.029 c
15-1172213086
PARUS
2007-02-23 09:44
2007.03.18
23


15-1171886128
DrDe
2007-02-19 14:55
2007.03.18
Каким Диалектом в FireBird вы пользуетесь?


15-1171888914
Desdechado
2007-02-19 15:41
2007.03.18
Заголовок журнальной статьи


15-1172172498
@!!ex
2007-02-22 22:28
2007.03.18
Звездные войны


2-1172487297
Bogdan1024
2007-02-26 13:54
2007.03.18
АКФ




   Наверх