8. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Application Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΠΏΠΎΠ»Π΅ Target file extension Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄ΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β RTW. ΠΠ°ΠΆΠΌΠΈΡΠ΅ OK, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Project β Compile Hello_KOMPAS ΠΈΠ»ΠΈ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡ Ctrl+F9). Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ FirstLib Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ ΠΏΡΡΡΠ°Ρ ΠΈ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠ°ΠΉΠ» ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Π·Π²Π°Π½ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Hello_KOMPAS.rtw.
Π§ΡΠΎΠ±Ρ RTW-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Delphi, ΠΌΠΎΠ³Π»Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΠΠΠΠΠ‘, Π² Π½Π΅ΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Π΄Π»Ρ ΡΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ ΡΠ·ΡΠΊΠ° C ΠΈΠ»ΠΈ C++ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π²ΡΡ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ LibraryName ΠΈ LibraryId ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π² ΠΎΠ΄Π½Ρ β unsigned int WINAPI LIBRARYID()):
β’ LibraryEntry β ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ;
β’ LibraryName β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ;
β’ LibraryId β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (ΠΏΠΎΠ·ΠΆΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΌΠ΅Π½Ρ Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΡ.).
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠ½ΡΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ DLL, ΡΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΠΠΠΠΠ‘ ΠΌΠΎΠ³Π»Π° ΠΈΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π» exports ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (Π»ΠΈΡΡΠΈΠ½Π³ 6.8).
ΠΠΈΡΡΠΈΠ½Π³ 6.8. Π’ΡΠΈ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ RTW-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈlibrary Hello_KOMPAS;
uses
SysUtils, Classes, ksTLB;
{$E rtw}
{$R *.res}
function LibraryName: PChar; pascal;
begin
Result := βΠΠ΅ΡΠ²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°β;
end;
function LibraryId: integer; pascal;
begin
Result := 100;
end;
procedure LibraryEntry(command: WORD); pascal;
begin
end;
exports
LibraryName name βLIBRARYNAMEβ,
LibraryId name βLIBRARYIDβ,
LibraryEntry name βLIBRARYENTRYβ;
begin
end.
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊ ΠΠΠΠΠΠ‘. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΎΠΊΠ½Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΠ»ΠΎΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ LibraryName ΠΈΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ β Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ LibraryEntry.
Π‘ΠΎΠ²Π΅Ρ
ΠΡΠ±Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π²Π°ΠΌΠΈ Π½Π° Delphi Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π² ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°Ρ Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΠ΅ΠΉ.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠ°Π·Π΄Π΅Π» uses Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β ksAuto, Π° ΡΠ°ΠΌ ΡΠ°ΠΉΠ» ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (ksAuto.pas) ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ FirstLib\dcu. Π€Π°ΠΉΠ» ksAuto.pas Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ API ΡΠΈΡΡΠ΅ΠΌΡ ΠΠΠΠΠΠ‘ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ SDK\Include ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΠΠΠΠΠ‘-3D.
ΠΠ½ΡΡΡΠΈ ksAuto.pas Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΠΠΠΠΠ‘ API. Π―Π²Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ uses Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ksAuto.pas. ΠΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΡΠ΅ ΡΠ°ΠΉΠ»Π° (Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅): ks2DCOM-TLB.pas, LDefin2D.pas, LibTool.pas ΠΈ LtDefine.pas. ΠΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· SDK\Include Π² ΠΏΠ°ΠΏΠΊΡ FirstLib\dcu Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ±ΡΡΠ²ΠΈΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ kompas ΡΠΈΠΏΠ° KompasObject, Π° Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²Ρ ΠΎΠ΄Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ (Π»ΠΈΡΡΠΈΠ½Π³ 6.9).
ΠΠΈΡΡΠΈΠ½Π³ 6.9. ΠΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡuses
SysUtils, Classes, ksTLB, ksAuto;
{$E rtw}
{$R *.res}
// Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΠΠΠΠΠ‘ API
var kompas : KompasObject;
// ΠΊΠΎΠ΄ ΠΏΡΠΎΠΏΡΡΠ΅Π½
procedure LibraryEntry(command: WORD); pascal;
begin
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° KompasObject
// Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateKompasObject
kompas := KompasObject(CreateKompasObject);
// Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ
if (kompas = nil) then exit;
// Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
kompas.ksMessage(βΠΡΠΈΠ²Π΅Ρ ΠΈΠ· ΠΠΠΠΠΠ‘Π°!β);
// ΠΎΠ±Π½ΡΠ»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ kompas
kompas := nil;
end;
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΅Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (ΡΠΈΡ. 6.23).
Π ΠΈΡ. 6.23. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ»Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Hello_KOMPAS.rtw Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ Examples\ΠΠ»Π°Π²Π° 6\Delphi Programming\FirstLib. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΡΠ΄Π° Π±Ρ Π½ΠΈ Π±ΡΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Ρ Π΄ΠΈΡΠΊΠ°, ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΠΠΠΠΠ‘, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΈ ΠΏΡΡΠΈ (ΡΠΌ. ΡΠΈΡ. 6.22) ΠΈ Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΡΠ±ΠΎΡΠΊΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΈΠ½ΠΈ-Π‘ΠΠΠ Π·ΡΠ±ΡΠ°ΡΡΡ ΠΊΠΎΠ»Π΅Ρ
ΠΠ»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΡΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΌΠΈΠ½ΠΈ-Π‘ΠΠΠ , ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ 3D-ΠΌΠΎΠ΄Π΅Π»Ρ Π·ΡΠ±ΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ° (ΠΊΠ°ΠΊ ΠΏΡΡΠΌΠΎΠ·ΡΠ±ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ ΠΊΠΎΡΠΎΠ·ΡΠ±ΠΎΠ³ΠΎ). Π ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ°ΠΊΠΎΠ²Π°: ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π·Π°Π΄Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·ΡΠ±ΡΠ΅Π², ΡΠΈΡΠΈΠ½Ρ Π·ΡΠ±ΡΠ°ΡΠΎΠ³ΠΎ Π²Π΅Π½ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ³ΠΎΠ» Π½Π°ΠΊΠ»ΠΎΠ½Π° Π·ΡΠ±ΡΠ΅Π² ΠΊΠΎΠ»Π΅ΡΠ°. ΠΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ»Π΅ΡΠ°.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅. Π§ΡΠΎΠ±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΡΠ΅Π±Π΅ Π·Π°Π΄Π°ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π² Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ Gears3D) ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Gears3D.dpr). ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΠΠΠΠΠ‘ (ΡΠΎ Π΅ΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Gears3D\dcu) Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° Gears miniCAD ΠΈ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΡΠ°ΡΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ SDK\Include Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Gears3D\dcu Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², β ksConstTLB.pas. ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΡΠΎΡΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ File β New β Form, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΡΠΌΡ (ΡΠ°Π±Π». 6.8), ΠΎΡΡΠ°Π²ΠΈΠ² ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° 6.8. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΡΠΌΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ Delphi Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» ΠΌΠΎΠ΄ΡΠ»Ρ (unit) Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ GearsForm ΡΠΈΠΏΠ° TGearsForm ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ BuildUnit.pas.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π° ΡΠΎΡΠΌΡ ΠΏΠΎ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΊΠΈ (TLabel) ΠΈ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° (TEdit), Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ (TButton). ΠΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΡΠΌΠ΅Π½Π°.
Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 6.24.
Π ΠΈΡ. 6.24. Π€ΠΎΡΠΌΠ° Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π΅ Π²ΡΠ²ΠΎΠ΄ Π² ΠΎΠΊΠ½Π΅ ΠΠΠΠΠΠ‘. ΠΠ°Π΄Π°ΡΠ°, Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ»ΠΎΠΆΠ½Π°Ρ, Π½ΠΎ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
1. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΠΠΠΠΠ‘.
2. ΠΠ°ΠΏΡΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
3. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
4. ΠΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠΊΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΠΠΠΠΠ‘ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
5. ΠΠ±Π½ΡΠ»ΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (Π»ΠΈΡΡΠΈΠ½Π³ 6.10).
ΠΠΈΡΡΠΈΠ½Π³ 6.10. ΠΡΠ²ΠΎΠ΄ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈprocedure LibraryEntry(command: WORD); pascal;
var GearsForm : TGearsForm;
begin
kompas := KompasObject(CreateKompasObject);
if (kompas = nil) then exit;
// ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΠΠΠΠΠ‘
Application.Handle := kompas.ksGetHWindow;
// Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ
kompas.ksEnableTaskAccess(0);
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
GearsForm := TGearsForm.Create(Application);
GearsForm.ks := kompas;
// Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ Π½Π° ΡΠΊΡΠ°Π½
GearsForm.ShowModal;
// ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ
GearsForm.Free;
// Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΊΠ½Ρ
kompas.ksEnableTaskAccess(1);
Application.Handle := 0;
kompas := nil;
end;
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π΅ΡΡΡ ΠΎΠ΄Π½Π°, Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π΅ΠΏΠΎΠ½ΡΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° β GearsForm.ks := kompas;. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π·Π΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π·ΡΠ±ΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΠΌΡ TGearsForm, ΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² Π½Π΅ΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ KompasObject, ΡΡΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ks ΠΊΠ»Π°ΡΡΠ° TGearsForm. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΡΠΈΠΏΠ° KompasObject) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°Π·Π΄Π΅Π» public ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΠΌΡ. ΠΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ uses ΠΌΠΎΠ΄ΡΠ»Ρ BuildUnit ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ (ΠΌΠΎΠ΄ΡΠ»ΠΈ): ksTLB, ksAuto, ksConstTLB, LDefin3D, LDefin2D ΠΈ math (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΠΠΠΠΠ‘ API, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Delphi).
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Gears3D.rtw ΠΊ ΠΠΠΠΠΠ‘. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΅Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π½ΡΡΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.