Войти

Показать полную графическую версию : [решено] Как спрятать форму через INI ?


androidz
09-10-2009, 07:59
Каким образом можно спрятать форму через INI,
например чтобы когда параметр 0 форма скрыта, когда стоит 1 форма показывается.

Drongo
09-10-2009, 11:25
androidz, Я правильно понял, что при запуске программа должна читать файл .INI и если скажем значение hide равно false, то форму скрываем? Если так, то стоит считывание .INI файла реализовать в FormCreate. И ещё спрятать - это значит поместить в Трей(Tray)?

androidz
09-10-2009, 13:13
И ещё спрятать - это значит поместить в Трей(Tray)? »
Нет, спрятать значит не отображать =)
попытаюсь ещё объяснить..
Приложение состоит из нескольких форм, и есть специальная форма которая по умолчанию скрыта, но если вписать в ini параметр 1, то эта форма будет грузится с основной в OnShow;

то бишь в OnShow будет чтото типа : form3.??? := IniFile.ReadString('form','secret','0')
То есть если 0, то эта секретная форма не показывается если 1 то показывается =)
а вот как это дело реализовать ни знаю .. :)

Drongo
09-10-2009, 18:56
а вот как это дело реализовать ни знаю .. »У Delphi, можно сделать типа такого:
...
Form1->Visible = false;
...
Вроде такого? (Я сам с Delphi не знаком, пробую по интуиции)
...
Form1.Visible := false;
...

androidz
09-10-2009, 19:50
Form1.Visible := false;
да с висиблом то понятно, другое дело чтоб оно из ini читалось,
Кароче сделал нулёвый проект и похимичил маленько..
form2.Visible:=IniFile.ReadBool('frm', 's', False);

androidz
09-10-2009, 19:55
Мне вот интересно, а есть ли ещё какойнить способ кроме висибла, чтоб форму спрятать через INI ? =)

pva
09-10-2009, 20:30
androidz, а ведь на самом деле, после слов Мне вот интересно, а есть ли ещё какойнить способ кроме висибла, чтоб форму спрятать через INI » становится непонятным, что вы хотите сделать:
"спрятать форму" - дословно переводится как "Form.Visible := false"
"через INI" - дословно "прочитать значение из файла"
соотественно единственный (остальное - равнозначные вариации) споосб это сделать:
form2.Visible:=IniFile.ReadBool('frm', 's', False); »

а по-другому можно только "не создавать форму", "сворачивать форму" или другие варианты, не связанные со словом "спрятать"

----
а. может имелось ввиду как создать "невидимую форму" и сделать её видимой только если параметр в ini-файле не равен нулю?
для этого нужно Object Inspector-ом установить форме значение Visible=false на в дизайнере форм, на этапе кодирования проекта

Drongo
09-10-2009, 20:54
androidz, Если среда поддерживает возможность сделать форму прозрачной и после считывания параметра делать её уже не прозрачной.

androidz
10-10-2009, 06:16
"спрятать форму" - дословно переводится как "Form.Visible := false"
"через INI" - дословно "прочитать значение из файла"
соотественно единственный (остальное - равнозначные вариации) споосб это сделать: »
с Form.Visible := false понятно всё :)
а возможно ли сделать например так чтобы если параметр 0 то это был Hide а если 1 то это Show ? :)

pva
10-10-2009, 11:08
никто не запрещает сделать так:

if (IniFile.ReadBool('frm', 's', False)) then form3.Show
else form3.Hide

но установка свойства Visible делает ТО ЖЕ САМОЕ. Не веришь - посмотри исходник TForm.SetVisible в controls.pas

androidz
11-10-2009, 15:56
if (IniFile.ReadBool('frm', 's', False)) then form3.Show else form3.Hide »
спасибо, как раз то что нужно :)




© OSzone.net 2001-2012