Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как открыть форму? [D6, D7]


novice ©   (2006-06-01 13:21:00) 

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);

 If ParamCount = 0 Then
   Application.Run
 Else
   begin
   For i := 1 To ParamCount do
   begin
     Key := LowerCase(ParamStr(i));
     If Key = '/auto' Then
       begin
Вот к этому моменту хотелось бы иметь уже открытую форму
         Form1.Button1.Enabled := False;
         Form1.Button1Click(Application);
         Application.Run;
А не в этот момент
       end
     Else
       begin
        ShowMessage('Ключи запуска приложения:' + chr(13)
          + '/auto - автозапуск;' + chr(13) + '/help - эта справка;'
          + chr(13) + 'без ключа - обычный запуск.');
         Application.Terminate;
       end
   end;
   end;

end.


novice   (2006-06-01 16:27:00) [1]

Все оказалось намного проще:
begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Form1.Show;
 Form1.Refresh;
 For i := 1 To ParamCount do
 begin
   Key := LowerCase(ParamStr(i));
   If Key = '/auto' Then
     begin
       Form1.Button1.Enabled := False;
       Form1.Button1Click(Form1);
     end
   Else
     begin
      ShowMessage('Ключи запуска приложения:' + chr(13) + '/auto - автозапуск;' + chr(13) + '/help - эта справка;' + chr(13) + 'без ключа - обычный запуск.');
       Application.Terminate;
     end
 end;
 Application.Run;
end.


novice   (2006-06-01 15:27:00) [2]

Мдя... Чего-то я совсем далек от мысли: как обрабатываются события? Процедура Form1.OnCreate не создается, в инспектора, в соответствующее поле свою процедуру не вставлю. Просветите по IDE.


unknown   (2006-06-01 13:38:00) [3]


> novice   (01.06.06 13:34) [3]
> Я может и не прав, но ведь пока OnCreate не завершится,
> то и формы как-бы еще не существует?

Существует. OnCreate вызывается в AfterConstruction :
procedure TCustomForm.AfterConstruction;
begin
 if not OldCreateOrder then DoCreate;
т. е. тогда, когда форма уже создана.


novice   (2006-06-01 13:35:00) [4]

Блин, чушь сморозил. Мне про ивана, а я про FormCreate.


novice   (2006-06-01 13:34:00) [5]

Я может и не прав, но ведь пока OnCreate не завершится, то и формы как-бы еще не существует?


novice   (2006-06-01 13:27:00) [6]

А зачем (я этот кусок оттуда, вобщем-то, и перенес)?


unknown   (2006-06-01 13:23:00) [7]


> novice   (01.06.06 13:21)

Вот это : >  If ParamCount = 0 Then...надо оформить в Form1.OnCreate


Наверх

Титульная страница Поиск, карта сайта Написать письмо