// ympyra.pas // Kirjoittanut Samu Kohtala Delphi kolmosella vuonna 1998 // LuK-tutkielman C++ Builderin ja Delphin yhteiskäyttö esimerkkilistaus // käyttää ympyra.dll tiedoston metodeja unit Ympyra; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; const CYMPYRA = 'YMPYRA.DLL'; // DLL-tiedoston metodien esittely function LoadCircle: Thandle; stdcall; external CYMPYRA; function GetX(hCircle: THANDLE): integer; stdcall; external CYMPYRA; function GetR(hCircle: THANDLE): double; stdcall; external CYMPYRA; procedure SetR(hCircle: THANDLE; newR : double); stdcall; external CYMPYRA; procedure FreeCircle(hCircle: THANDLE); stdcall; external CYMPYRA; implementation {$R *.DFM} // Testaus aliohjelma procedure TForm1.Button1Click(Sender: TObject); var hInst: THandle; i : double; begin // Luokan esiintymän kahva talteen hInst muuttujaan. hInst := LoadCircle; // Käytetään metodeja kahvan avulla. SetR(hInst,20); i := GetR(hInst); label1.Caption := '20 säteisen ympyran ala on noin' + IntToStr(Trunc(i)); // Vapautetaan luokan esiintymä. FreeCircle(hInst); end; end.