Скрыть форму при запуске

есть код
if form3.CheckBox10.Checked = true then
begin
showwindow(handle,SW_HIDE);
showwindow(application.Handle,SW_HIDE);
end;
- так сказать опция "Сворачивать программу в трей при запуске" много форм ! в событии form1.onshow все мои 8 форм поочерёдно показываются/закрываются грузятся параметры с реестра в разные формыв какое событие мне поместить мой код чтобы скрыть главную форму ?(когда нужно она вновь показывается ( с помощью иконки у часиков....))Всем СПАСИБО !
8 ответов

Нет иконку у трея я делать умею и она у меня есть ! мне нужно чтобы при выставленной галочке форма просто скрывалась а иконка у меня уже есть! она всегда там висит.....PS проблема заклчается в том что я не могу скрыть форму при запуске !


Дык, в инспекторе объектов поставь visible=false для формы, раз она при запуске не должна показыватся


form1.hide; -скрывает form1.show; - показывает.


при запуске проги procedure TMainForm.FormActivate(Sender: TObject); begin ShowWindow(Handle,SW_HIDE); ShowWindow(Application.Handle,SW_HI DE);//скрываем приложение trayIcon1.Visible:=true;// end;в обработчике события OnClick TraiIcon можно записать: ShowWindow(Handle,SW_NORMAL);// приложение видимое TrayIcon1.Visible:=false;при минимизации формы можно ткже сделать чтобы прога свернулась для этого:в разделе Private пишем procedure WMSysCommand(var Msg: TWMSysCommand);message WM_SYSCOMMAND; потом{$R *.dfm}Procedure TMainForm.WMSysCommand(var Msg: TWMSysCommand); begin if msg.CmdType=SC_MINIMIZE then begin ShowWindow(Handle,SW_HIDE); ShowWindow(Application.Handle,SW_HI DE); TrayIcon1.Visible:=true; end else inherited; end;


Проблема в том что сначала фома инициализируется и затем ещё 8 форм инициализируются и только после этого в них можно грузить какието данные взятые с реестра ! (Тоесть в событии form1.onCreate нельзя создать/скрыть другие формы ! следовательно нельзя грузить параметры с реестра ! а без этого никак!) поэтому формыу меня грузятся в форм1.оншоу ! и в этомже событии я пытаюсь скрыть форму но она не хочет ((( А код именно этот я и написал
<font color="red">(*)</font>
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
Как проверить фидно ли окно таким способом ? - так :
iswindowvisible(Тут хэндл проверяемого окна тоесть form1.handle);
визибл не претпочитаю использовать ! некрасиво это к томуже есть кглюки с таскбаром !ЗЫ Кстате trayicon я не использую ! наверно нехило прибавляет веса к экзешнику.... я делаю иконку вручную(без дополнительных компонентов!) , темболее ничего там сложного , 2 максимум 3 процедуры !ЗЫ2 Форма не всегда должна скрыватся при запуске ! алгоритм : 1)Инициализируем форму для возможности присвоения значений обьектам которые на ней есть ! 2) Грузим значение типа boolean из реестра и присваем его какомуто FormX.checkboxX.checked . 3) Если этот чекбокc отмечен тогда скрываем форму (*) если нет то ничего не предпринимаем ! При этом пункт 1 и 2 обойти никак не получится ! значит нужно поместить пункт 3 в какоето событие которое происходит после пункта 1 и 2 ! а вот в какое я и спрашиваю ! тк незнаю !


Я так понял что главная форма у тебя это Form1. Если так то скрыть её можно так: procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm:=false; end;


заметь открывать я её буду другим способом => неподходит...