Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Как спрятать форму через INI ? (http://forum.oszone.net/showthread.php?t=152710)

androidz 09-10-2009 07:59 1238162

Как спрятать форму через INI ?
 
Каким образом можно спрятать форму через INI,
например чтобы когда параметр 0 форма скрыта, когда стоит 1 форма показывается.

Drongo 09-10-2009 11:25 1238287

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

androidz 09-10-2009 13:13 1238429

Цитата:

Цитата Drongo
И ещё спрятать - это значит поместить в Трей(Tray)? »

Нет, спрятать значит не отображать =)
попытаюсь ещё объяснить..
Приложение состоит из нескольких форм, и есть специальная форма которая по умолчанию скрыта, но если вписать в ini параметр 1, то эта форма будет грузится с основной в OnShow;

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

Drongo 09-10-2009 18:56 1238741

Цитата:

Цитата androidz
а вот как это дело реализовать ни знаю .. »

У Delphi, можно сделать типа такого:
Код:

...
Form1->Visible = false;
...

Вроде такого? (Я сам с Delphi не знаком, пробую по интуиции)
Код:

...
Form1.Visible := false;
...


androidz 09-10-2009 19:50 1238810

Вложений: 1
Цитата:

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

androidz 09-10-2009 19:55 1238816

Мне вот интересно, а есть ли ещё какойнить способ кроме висибла, чтоб форму спрятать через INI ? =)

pva 09-10-2009 20:30 1238853

androidz, а ведь на самом деле, после слов
Цитата:

Цитата androidz
Мне вот интересно, а есть ли ещё какойнить способ кроме висибла, чтоб форму спрятать через INI »

становится непонятным, что вы хотите сделать:
"спрятать форму" - дословно переводится как "Form.Visible := false"
"через INI" - дословно "прочитать значение из файла"
соотественно единственный (остальное - равнозначные вариации) споосб это сделать:
Цитата:

Цитата androidz
form2.Visible:=IniFile.ReadBool('frm', 's', False); »

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

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

Drongo 09-10-2009 20:54 1238876

androidz, Если среда поддерживает возможность сделать форму прозрачной и после считывания параметра делать её уже не прозрачной.

androidz 10-10-2009 06:16 1239082

Цитата:

Цитата pva
"спрятать форму" - дословно переводится как "Form.Visible := false"
"через INI" - дословно "прочитать значение из файла"
соотественно единственный (остальное - равнозначные вариации) споосб это сделать: »

с Form.Visible := false понятно всё :)
а возможно ли сделать например так чтобы если параметр 0 то это был Hide а если 1 то это Show ? :)

pva 10-10-2009 11:08 1239162

никто не запрещает сделать так:
Код:

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

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

androidz 11-10-2009 15:56 1240072

Цитата:

Цитата pva
if (IniFile.ReadBool('frm', 's', False)) then form3.Show else form3.Hide »

спасибо, как раз то что нужно :)


Время: 17:05.

Время: 17:05.
© OSzone.net 2001-