Przykład z książki:
Pokażemy teraz, jak ?zamknąć? w bibliotece DLL utworzony w Delphi formularz, przeznaczony do wyświetlenia w sposób modalny. Formularz stanie się dzięki temu dostępny dla dowolnego 32-bitowego środowiska programowania w Windows, na przykład C++Buildera, Visual Basica itp. Formularz ten zawiera komponent TCalendar. Aplikacja, wywołując importowaną z biblioteki funkcję ShowCalendar(), powoduje modalne wyświetlenie formularza ? użytkownik ma wówczas możliwość wyboru konkretnej daty, która po zamknięciu formularza zwracana jest jako wynik wspomnianej funkcji.
Wydruk 6.3. Moduł źródłowy formularza wyświetlanego w sposób modalny
unit DLLFrm;
Kopiuj
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Grids, Calendar;
type
TDLLForm = class(TForm)
calDllCalendar: TCalendar;
procedure calDllCalendarDblClick(Sender: TObject);
end;
function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime; StdCall;
implementation
{$R *.DFM}
function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime;
var
DLLForm: TDllForm;
begin
Application.Handle := AHandle;
DLLForm := TDLLForm.Create(Application);
try
DLLForm.Caption := ACaption;
DLLForm.ShowModal;
Result := DLLForm.calDLLCalendar.CalendarDate;
finally
DLLForm.Free;
end;
end;
procedure TDLLForm.calDllCalendarDblClick(Sender: TObject);
begin
Close;
end;
end.