//ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ
WriteLn('<ΠΠΠ’Π http-equiv="Content-Type" ' +
'content="text/html; charset=windows-1251">');
WriteLn('</HEAD>');
WriteLn('<BODY>');
WriteLn('<H1><CENTER>ΠΡΠΎ ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ</CENTER>'
+'</Π1>'); //Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΆΠΈΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ
WriteLn('</BODY>');
WriteLn('</HTML>');
end.
ΠΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π΅ΠΌΡ ΠΈΠΌΡ cgi_test.cgi. ΠΡΠΎΡ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "ΠΠ΅ΡΠ²ΡΠΉ cgi-ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π° Delphi" ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅: "ΠΡΠΎ ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ".
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Web-ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΡΠ΅Π½Π°ΡΠΈΡ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .html ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ:
<HTML>
<HEAD>
<Π’IΠ’LE>ΠΠ΅ΡΠ²ΡΠΉ cgi-ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π° Delphi</TITLE>
</HEAD>
<BODY>
<FORM method="POST" action="cgi/cgi_test.cgi" method="POST">
<input type="submit" value= "ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ">
</FORM>
<Ρ><b>Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Ρ Π½Π° Π½ΠΈΡ
ΡΡΡΠ»ΠΊΡ: </b><a href="cgi/cgi_test.cgi">ΡΡΡΠ»ΠΊΠ° Π½Π° cgi-ΡΡΠ΅Π½Π°ΡΠΈΠΉ</Π°>
</BODY>
</HTML>
ΠΡΠΎ ΡΠΎΡΠΌΠ° Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅Ρ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ (ΡΠΈΡ. 19.2).
Π ΠΈΡ. 19.2. Web-ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° CGI-ΡΡΠ΅Π½Π°ΡΠΈΡ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ CGI ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Web-ΡΠ΅ΡΠ²Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Apache). ΠΡΠΊΡΡΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Web-ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΌΡΡΡΡ Π½Π° ΡΡΡΠ»ΠΊΠ΅.
Π ΠΎΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ "ΠΡΠΎ ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ" (ΡΠΈΡ. 19.3).
Π ΠΈΡ. 19.3. Π‘ΡΡΠ°Π½ΠΈΡΠ°, Π²ΡΠ΄Π°Π½Π½Π°Ρ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ cgi_test.cgi
β ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ Chapter_19.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
ΠΠΎΠ΄Ρ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠΎΠ΄Ρ ΠΊΠ»Π°Π²ΠΈΡ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌ ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ord ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π». Π.1.
Π’Π°Π±Π»ΠΈΡΠ° Π.1. ΠΠΎΠ΄Ρ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ
ΠΠ»Π°Π²ΠΈΡΠ° ΠΠΎΠ΄ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΠΎΠ΄ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° Π€ΡΠ½ΠΊΡΠΈΡ ord Π°, Π 65 $41 ord('A') b, B 66 $42 ord('Π') Ρ, Π‘ 67 $43 ord('Π‘') d, D 68 $44 ord('D') Π΅, Π 69 $45 ord('E') f, F 70 $46 ord('F') g, G 71 $47 ord ('G') h, H 72 $48 ord('H') i, I 73 $49 ord('I') j, J 74 $4Π ord('J') k, K 75 $4Π ord('K') l, L 76 $4Π‘ ord('L') m, M 77 $4D ord ('M' ) n, N 78 $4Π ord('N') o, O 79 $4F ord('O') p, P 80 $50 ord('P') q, Q 81 $51 ord('Q') r, R 82 $52 ord('R') s, S 83 $53 ord('S') t,T 84 $54 ord('T') u, U 85 $55 ord('U') v, V 86 $56 ord('V') w, W 87 $57 ord('W') x, X 88 $58 ord('X') y, Y 89 $59 ord('Y') z, Z 90 $5Π ord('Z') 0 96 $60 VK_NUMPAD0 1 97 $61 VK_NUMPAD1 2 98 $62 VK_NUMPAD2 3 99 $63 VK_NUMPAD3 4 100 $64 VK_NUMPAD4 5 101 $65 VK_NUMPAD5 6 102 $66 VK_NUMPAD6 7 103 $67 VK_NUMPAD7 8 104 $68 VK_NUMPAD8 9 105 $69 VK_NUMPAD9 * 106 $6Π VK_MULTIPLY + 107 $6Π VK_ADD - 109 $6D VK_SUBTRACT . 110 $6Π VK_DECIMAL / 111 $6F VK_DIVIDE F1 112 $70 VK_F1 F2 113 $71 VK_F2 F3 114 $72 VK_F3 F4 115 $73 VK_F4 F5 116 $74 VK_F5 F6 117 $75 VK_F6 F7 118 $76 VK_F7 F8 119 $77 VK_F8 F9 120 $78 VK_F9 F10 121 $79 VK_F10 ΠΏΡΠΎΠ±Π΅Π» 32 $20 VK_SPACE Backspace 8 $8 VK_BACK Tab 9 $9 VK_TAB Enter 13 $0D VK_RETURN Shift 16 $10 VK_SHIFT Ctrl 17 $11 VK_CONTROL Alt 18 $12 VK_MENU CapsLock 20 $14 VK_CAPITALE Esc 27 $1Π VK_ESCAPE Insert 45 $2D VK_INSERT PageUp 33 $21 VK_PRIOR PageDown 34 $22 VK_NEXT End 35 $23 VK_END Home 36 $24 VK_HOME β 37 $25 VK_LEFT β 38 $26 VK_UP β 39 $27 VK_RIGHT β 40 $28 VK_DOWN Delete 46 $2Π VK_DELETE PrintScreen 44 $2Π‘ VK_SNAPSHOT ScrollLock 145 $91 VK_SCROLL Pause 19 $13 VK_PAUSE Numlock 144 $90 VK_NUMLOCKΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π
Kylix β Delphi Π΄Π»Ρ Linux
Π 2001 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Borland International, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π²ΡΠ°Ρ Delphi, Π²ΡΠΏΡΡΡΠΈΠ»Π° ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Kylix, Kylixβ ΡΡΠΎ ΡΡΠ΅Π΄Π° Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Linux. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΎΠ½Π° ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠ³ΠΎ Delphi, Π° ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Kylix ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠ°Π΄ΠΎΠ²Π°ΡΡ β ΡΡΠΎ Object Pascal. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Kylix β ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ Delphi, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΠ‘ Linux. ΠΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ Borland ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° Kylix: Kylix Desktop Developer ΠΈ Kylix Server Developer. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Kylix Server Developer.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· Delphi Π² Kylix (ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, Π΅ΡΠ»ΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΠ‘ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ WinApi). Π‘ΡΠΎΠΈΡ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Delphi Π² Kylix. ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² Delphi ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² VCL. ΠΠ»Ρ Kylix ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ CLX (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ). ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΎΠ½ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΠΈ Π² VCL ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² CLX.
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΠΌ. Π Delphi ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ *.dfm, Π° Π² Kylix β *.xfm. ΠΡΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠΎΠ±ΡΡ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ², ΠΏΡΠΎΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ {$R .dfm} Π½Π° {$R .xfm}.
Π Kylix, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Delphi, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ BDE ΠΈ ADO. ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ActiveX, COM ΠΈ CORBA. ΠΠ΅Π²Π·ΠΈΡΠ°Ρ Π½Π° Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈ Π°ΡΠΏΠ΅ΠΊΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Delphi, Kylix ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΎΡ ΠΊΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅Ρ Π½Π° Delphi, ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Kylix Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΠΉ.