Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 17:25   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
FreeAndNil(ClassForm); сделает то же самое что и Free.
Я не про это. А вот это не надо, модальные по другому закрываются
Цитата:
В обработчике OnClose у формы стоит Action := caFree
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

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

---------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    lLib: THandle;
    CreateModalForm: procedure;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
  lLib:=LoadLibrary('Project2.dll');
  @CreateModalForm:=GetProcAddress(lLib,'CreateModalForm');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeLibrary(lLib);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateModalForm;
end;

end.

---------------------------------------------

library Project2;

uses
  SysUtils,
  Classes,
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}


procedure CreateModalForm;
begin
  with TForm2.Create(nil) do begin
    ShowModal;
    Free;
  end;
end;

exports
  CreateModalForm;

begin
end.

---------------------------------------------

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  ModalResult:=mrOk;
end;

end.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.04.2014 в 19:12.
Аватар вне форума Ответить с цитированием
Старый 16.04.2014, 07:31   #12
5cek
Форумчанин
 
Регистрация: 04.07.2013
Сообщений: 118
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
DLL а также Exe это не только твой код (твои формы) но и куча другого
Application, Screen, Mouse (навскидку)
и DLL.Аpplication<>Exe.Application
и DLL не имеет кода аналогичного Application.Run
и BPL не предлагать.


например
спасибо за ссылку, почитаю)
5cek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д. 8Observer8 Qt и кроссплатформенное программирование С/С++ 12 25.06.2015 03:18
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. Человек_Борща Общие вопросы Delphi 0 15.07.2012 14:01
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36