Главная страница
    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.48 MB
Время: 0.032 c
1-1080945754
Pattern
2004-04-03 02:42
2004.04.25
Рекорды в Delphi и структуры в C++


14-1080746752
AlexKniga
2004-03-31 19:25
2004.04.25
Кто-нибудь установил Win2K/XP на SATA RAID без floppy?


11-1064220903
RA
2003-09-22 12:55
2004.04.25
Form.CanResize:=true


1-1081429824
olhovik
2004-04-08 17:10
2004.04.25
Прорисовка часов


3-1080720115
DimDim
2004-03-31 12:01
2004.04.25
DBISAM и Win95 несовместимы ??????





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский