powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как прервать запуск программы?
8 сообщений из 8, страница 1 из 1
Как прервать запуск программы?
    #39551389
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TForm9, Form9);
  form9.ShowModal;
  if form9.f_login=true then begin

  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm5, Form5);
  Application.CreateForm(TForm6, Form6);
  Application.CreateForm(TForm7, Form7);
  Application.CreateForm(TForm8, Form8);

  Application.Run;
  end  else begin
    DataModule2.ADOConnection1.Connected:=false;
    //здесь закрыть приложение
  end;
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551395
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не делай, если дальше ничего нет - само закроется.
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551404
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Ошибка AV
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551406
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык отладчик в руки. И код, наверняка, не весь привели.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551416
Sarych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВячеславЛ,

Переделайте логику запуска вашей программы с помощью асинхронных сообщений.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
program ...
  //const wm_ShowLogin = wm_User + 120;  
  ...
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1); 
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TForm9, Form9);
  PostMessage(Form1.Handle, wm_ShowLogin, 0,0); 
  Application.Run;
end;

...

unit Unit1;
...
  //const wm_AppStart = wm_User + 121; wm_AppClose = wm_User + 122;

type
  TForm1 = class(TForm)
    ...
  public
      //Показывает Form9 и if (Login) then PostMessage ...
    procedure wmShowLogin (var Msg: TMessage);  message wm_ShowLogin;
      //Продолжить загрузку программы: Form3, Form4, ... 
    procedure wmAppStart (var Msg: TMessage);  message wm_AppStart;
      //Заверщить работу:  DataModule2.ADOConnection1.Connected:=false; Close;
    procedure wmAppClose (var Msg: TMessage);  message wm_AppClose;
  end;
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551420
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AV может возникнуть по разным причинам. Проверяй свои обработчики OnDestroy у Form1,Form9,DataModule2 - может там используются ссылки на неинициализированные Form3..Form8?
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551427
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarych> Переделайте логику запуска вашей программы с помощью асинхронных сообщений.

Я боюсь, этого будет недостаточно. Надо многопоточный
COM-сервер написать, к которому обращаться через сокеты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как прервать запуск программы?
    #39551456
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ряд компонент (ClientDataSet, в частности), не любит, когда их разрушают без вызова Application.Run (сам сталивался в эпоху Delphi 5)
Поэтому с тех пор использую следующий подход:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var
  ConnectResult: Integer;
begin
    Application.Initialize;
    Application.CreateForm(TfMain, fMain);
.....
    with TfConnect.Create(Application) do
       try
         ConnectResult := ShowModal;
       finally
         Free;
      end;
  if ConnectResult <> 1 then
  begin
    Application.ShowMainForm := false;
    PostMessage(fMain.Handle, WM_CLOSE, 0, 0);
  end;
  Application.Run;
end.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как прервать запуск программы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]