Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизВопрос по TForm1.FormCreate Найти похожие ветки
← →
Arturchik © (2004-04-04 09:52) [0]Моя прога должна загружаясь выполнять определённые действия и всё бы хорошо да вот есть 2 проблемы которые сводятся к одному.
1) Иногда мне надо чтоб она запускалась свёрнутой, если выполнить form1.Visible:=false прога не реагирует.
2) Если при старте выполняются какие-либо операции то форма не прорисуется до их выполнения.
Мною проблема видится в следующем: процедура TForm1.FormCreate выполняется до построения самой формы, поэтому она и не скрывается и не прорисовывается.
ВОПРОС: как это обойти?
P.S. Можно повесить 2е действие на OnShow, но как быть и первым?
← →
YurikGl © (2004-04-04 09:56) [1]В испекторе у окна WindowsState выставь в wsMinimized
← →
Эли (2004-04-04 10:01) [2]Если нужно, чтобы в момент запуска программы главная форма была невидимой, можно в файле Project.dpr указать
Application.ShowMainForm:=false;
Тогда, если у формы стоит Visible=falseп, она не будет показана
← →
formatC'vt (2004-04-04 10:31) [3]1) Добавь условие минимизации в данный обрабочик
procedure TForm1.FormShow(Sender: TObject);
begin
Application.Minimize;
end;
for example: if need_minimize then Application.Minimize;
2) По конкретнее плз, что за операции?
← →
Sphinx © (2004-04-04 11:31) [4]Скрытие окна:
ShowWindow(Application.Handle, SW_HIDE);
вместоform1.Visible:=false
> 2) Если при старте выполняются какие-либо операции то форма
> не прорисуется до их выполнения.
Можно поставить Splash-окно, если позволяет проект.
З.Ы. надеюсь правильно понял вопрос.
← →
Nous Mellon © (2004-04-04 12:31) [5]
> 1) Иногда мне надо чтоб она запускалась свёрнутой, если
> выполнить form1.Visible:=false прога не реагирует.
Присвоение Visible false насколько я знаю не сворчивает прогу а делает невидимой форму. Это вроде бы разные вещи...
← →
Arturchik © (2004-04-04 21:08) [6]1) Application.Minimize заработала вот только я не правильно написал. Мне надо чтобы форма именно исчезла, то есть form1.Visible:=false.
ShowWindow(Application.Handle, SW_HIDE); работать незахотела.
2) И ещё. А почему поток запускаться не хочет?
← →
78942368 (2004-04-04 21:28) [7]1 в дизайн-тайм сделай форму невидимой (через инспектор объектов), а на запуске проверяй - надо показывать или нет
2 не показывай форму, пока не выполнишь необходимых действий
← →
Sphinx © (2004-04-04 21:34) [8]> ShowWindow(Application.Handle, SW_HIDE); работать незахотела.
Что значит не захотела? Уточни, если не трудно.ProgDir:=GetCurrentDir;
//Проверка существования файла настроек
temp:=ProgDir+"\setting.ini";
if not(FileExists(temp)) then
begin
ShowWindow(Application.Handle, SW_HIDE);
Application.MessageBox("Не найден файл настроек"+#13#10+"setting.ini"+#13#10+"для устранения ошибки переустановите приложение", "ОШИБКА", MB_OK);
Halt(0);
прекрасно работает.
← →
Arturchik © (2004-04-04 21:54) [9]Я что-то вообще ничего не понимаю, почему некоторые операции при запуске в OnShow не работают, а если потом их запускать самому то всё нормально...
ShowWindow(Application.Handle, SW_HIDE) - форма просто остаётся на своём месте.
← →
Германн © (2004-04-04 22:04) [10]2 Arturchik © (04.04.04 21:54) [9]
В OnShow - PostMessage(Handle,WM_MyMess,0,0)
в процедуре-обработчике WM_MyMess - ShowWindow(Application.Handle, SW_HIDE)
← →
Diamond Cat © (2004-04-05 00:28) [11]Если вы в onshow формы поставите form1.visible:=false то удивитесь еще больше, зато прочитав выскочившее сообщение поймете почему не срабатывает некоторые вещи.
для скрытия формы на момент запуска достаточно в файле проекта,
*.dpr написать
application.ShowMainForm:=false;
если нужно получить минимизированное окно, то в свойствах формы достаточно установить wsMinimized либо в томже файле проекта прописать application.MainForm.WindowState:=wsMinimized ;
Для решения проблемы прорисовки формы при выполнении неких действий, производите действия в отдельном потоке пример можно посмотреть в "потрепаться" раздел двадцатка самых(каких-то) вопросов
Удачи
← →
Arturchik © (2004-04-05 10:44) [12]А можно прям в проекте написать условие проверки:
if ...... then application.ShowMainForm:=false???
← →
имя (2004-04-05 22:11) [13]Удалено модератором
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c