Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-1078385081
Boroda Oleg
2004-03-04 10:24
2004.04.25
Работа с Active Directory


14-1080647779
Nick-From
2004-03-30 15:56
2004.04.25
дешевый ксерокс


1-1081246202
Awod
2004-04-06 14:10
2004.04.25
Создание MDI окон с кнопкой в таскбаре


1-1081093029
Mishenka
2004-04-04 19:37
2004.04.25
Как распознать катологи?


9-1067169108
Dmk
2003-10-26 14:51
2004.04.25
Умножение матриц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский