Delphi: заметки программиста. Часть 1

Листинг 10. Текст вызывающей программы

unit TestMainU; 
  
interface 
  
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,    StdCtrls; 
  
type 
  TTestMain = class(TForm) 
    Button1: TButton; 
    Button2: TButton; 
    Button3: TButton; 
    Label1: TLabel; 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
      procedure Button3Click(Sender: TObject);  
  private 
    { Private declarations } 
  public 
    { Public declarations } 
   // Следующая процедура обрабатывает сообщение WM_USER, 
   // которое посылает форма из DLL в момент своего закрытия 
   procedure WMUser(var Msg: TMessage);  message    WM_USER; 
 end; 
  
var 
  TestMain: TTestMain; 
  
implementation 
  
{$R *.DFM} 
  
function ShowModalForm: Integer; External 'DLLWithForm'; 
procedure ShowForm(Appl, Form: THandle); External 'DLLWithForm';  
procedure FreeForm; External 'DLLWithForm'; 
  
procedure TTestMain.Button1Click(Sender: TObject); 
// Модальный вызов 
begin 
  Button2.Enabled := False; 
  label1.Caption := 'ModalResult = '+IntToStr(ShowModalForm); 
  label1.Show;   // Показываем результат вызова 
  Button2.Enabled := True 
end; 
  
procedure TTestMain.Button2Click(Sender: TObject); 
// Немодальный вызов 
begin 
  Button1.Enabled := False; 
  Button2.Enabled := False; 
  Button3.Enabled := True; 
  label1.Hide; 
  ShowForm(Application.Handle, Self.Handle); 
end; 
  
procedure TTestMain.Button3Click(Sender: TObject); 
// Закрыть форму 
begin 
  FreeForm; 
  Button1.Enabled := True; 
  Button2.Enabled := True; 
  Button3.Enabled := False; 
end; 
  
procedure TTestMain.WMUser(var Msg: TMessage); 
// Сообщение из формы DLL о ее закрытии 
begin 
  Button3.Click 
end; 
  
end. 

возврат

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует