push x { ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ }
push word ptr a2 + 2 { Π΅ΡΠ»ΠΈ 32-Π±ΠΈΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ°Π³Π°Ρ , ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠΉ Β«Π²ΡΡΠΎΠΊΠΎΠΉΒ» (high) ΡΠ°ΡΡΠΈ }
push word ptr a2
push word ptr a1 + 2
push word ptr a1
call func
add sp, 10 { Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡ Π±Π°ΠΉΡΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ func Π½Π΅ Π±ΡΠ»Π° Π²ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ° }
end;
procedure buildolefunction;
var
f: pointer;
reslt: integer;
begin
f := @olefunction;
{ --- }
reslt := callolefunction(f, 'ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉ, ΠΌΠΈΡ', 1000000, 25);
{ --- }
end;
begin
{ --- }
end.
ΠΠ° ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Ρ Π²Π°Ρ. ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ.
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ 'Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ' ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π΅ΡΠ»ΠΈ Ρ Π½Π΅ Ρ ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π°Π»Π΅Π΅?
Nomadic ΡΠΎΠ²Π΅ΡΡΠ΅Ρ:
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΊΠ»ΡΡΠΎΠΌ /UNREGSERVER:
MYSERVER.EXE /UNREGSERVER
ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΡΡΡ ΡΠ°Π·ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΌΠΎΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ OLE.
ΠΠΈΠ³ΡΠ°ΡΠΈΡ
Delphi 2
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ D1/D2
ΠΠ°ΠΊΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² ΡΡΠ΅Π΄Π΅ W31, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² W95 ?
ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠΈΡΠ°ΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° ΠΎΡΠ»ΠΈΡΠΈΠΉ Π² ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΏΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Delphi 1.0 ΠΈ Delphi 2.0, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ :
1. ΡΡΡΠΎΠΊΠΈ Π² Delphi 1.0 Π½Π΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΡΡΡΠΎΠΊΠ°ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π΄Π»ΠΈΠ½Π½ΡΠΌ) Π² Π²Π΅ΡΡΠΈΠΈ 2.0
2. Β«integerΒ» 16-Π±ΠΈΡΠ½ΡΠΉ Π² Delphi 1.0 ΠΈ 32-Π±ΠΈΡΠ½ΡΠΉ Π² 2.0
3. Π·Π°ΠΏΠΈΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² Delphi 1.0, Π½ΠΎ Π½Π΅ Π² Delphi 2.0
β Rick Rogers
Delphi 3
ΠΡΠ΄Π° ΠΈΠ· Delphi 3 Π΄Π΅Π»ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ReportSmith? Π ΠΌΠΎΠΈ Π»ΡΠ±ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ OLE: ole2, oleauto ΠΈ olectl?
ΠΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ
Nomadic ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ:
ΠΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ Π² X:\DELPHI3\LIB\DELPHI2.
ΠΡΠΈΠ±ΠΊΠΈ
Delphi 1
ΠΡΠΈΠ±ΠΊΠ° ΠΌΠ°ΡΠΊΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π±ΡΡΡΡΡΡ ΠΏΠ΅Π½ΡΠΈΡΠΌΠ°Ρ
Delphi 1
ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅. ΠΡΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π±ΡΡΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ . ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ RTL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
Π MASK.PAS, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅
for I := Low(NewKeyState) to High(NewKeyState) do NewKeyState[I] := 0;
ΠΠ°
NewKeyState := KeyState;
β Steve Schafer
PASDBK16.DLL Π²ΡΠ·ΡΠ²Π°Π΅Ρ GPF
Delphi 1
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½Π΅ ΡΠΊΠ°Π·Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄Π° Π΅ΡΠ΅ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠ΅ΠΉ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Delphi? ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ΅Π΄Π΅ ID, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«PASDBK16.DLL caused a GPF at 0002:21e6 Shutdown of delphi is recommendedΒ» (PASDBK16.DLL Π²ΡΠ·Π²Π°Π»ΠΎ GPF ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0002:21e6. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Delphi). ΠΡΠ»ΠΈ Ρ Π·Π°Π²Π΅ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Delphi, ΡΠ½ΠΎΠ²Π° Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΈ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ Β«Application is already running terminate before compilingΒ» (Π Π°Π±ΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΆΠ΅ ΠΏΡΠ΅ΡΠ²Π°Π½Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ).
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° Π½Π°ΡΠ΅Π» Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΡΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΡΡΠΌ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ (output) ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΡΠ΅Π·Π½ΡΡΡ.
β Sjef van der Velde
ΠΡΠΈΠ±ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠ°
Delphi 1
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ΅, ΠΊΡΠΎΠΌΠ΅ dpr, pas ΠΈ dfm-ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡ Π΅Π³ΠΎ. ΠΠΎΡ ΠΎΠΆΠ΅, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ» ΠΈΡΠΏΠΎΡΡΠ΅Π½. Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Ρ ΡΠΌΠΎΠ³ Π΅Π΅ ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
Delphi 2
ΠΡΠΈΠ±ΠΊΠ° ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Delphi 2.01 Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ Β«Stream Read ErrorΒ» (ΠΎΡΠΈΠ±ΠΊΠ° ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°). ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΎΡΠ΄Π΅Π»Π°ΡΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ?
Π£Π΄Π°Π»ΠΈΡΠ΅ DSKβ ΠΈ DSMβ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
β Ralph Friedman
Delphi 5
ΠΡΠΈΠ±ΠΊΠ° Π² ProgressBar
Π ProgressBar ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ BorderWidth. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ΅Π±ΡΡΠ° ΠΈΠ· Inprise Π΄ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Β«Π·Π°ΡΠΈΡΠ° ΠΎΡ Π΄ΡΡΠ°ΠΊΠ°Β». ΠΡΠ»ΠΈ BorderWidth < Int(Heigth*0.3) β Π²ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π²Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π²ΡΡΠΎΡΠΎΠΉ "Π±Π΅Π³ΡΡΠ΅Π³ΠΎ" ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°. ΠΡΠ»ΠΈ (BorderWidth > Int(Heigth*0.3)) and (BorderWidth < Int(Heigth*0.5)) β ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΈΡΡΠ΅Π·Π°Π΅Ρ. Π’ΠΎΠ³Π΄Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½? ΠΡΠΈ BorderWidth = Int(Heigth*0.5) β ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ β "Error. Division by zero". ΠΡΠΈ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ BorderWidth β Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° "Π΄ΡΡΠ°".
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅.
C ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, VS.
DLL
Π Π°Π·Π½ΠΎΠ΅
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ DLL Ρ ΠΎΡΠΊΡΡΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ
Delphi 2
Π’Π΅ΠΌΠ°: Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ DLL Ρ ΠΎΡΠΊΡΡΡΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Object Pascal Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, Π½Π° Π»Π΅ΡΡ, ΡΠ²ΡΠ·Π°ΡΡ DLL Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Modularize-Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΎΠΉ. (ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Π±ΡΠ΄Ρ ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅)
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ DLL ΠΊ EXE ΠΏΠΎΠ»Π΅Π·Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 'plug-in' ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (A/R, A/P, General Ledger ΠΈ Π΄Ρ.) ΠΈΠ»ΠΈ Point of Sale package Ρ Current Stock, FIFO/LIFO Ordering, Vendor Tracking, ΠΈ ΠΏΡ. ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π΄Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ dll, 'Editdll.dll', ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΡΠ°ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ:
Π₯ΠΎΡΠΎΡΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TTable, ΡΠΌΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DLL, BDE API ΠΈ Π·Π½Π°Π½ΠΈΠ΅ BDE hCursor. *WIN API Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π»ΡΠ±ΡΡ DLL.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΡΠΎΡΠΌΠ°, EditForm, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ COUNTRY, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ DBDEMO. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ 'Edit' ΠΈΠ»ΠΈ ΠΏΡΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ ΡΠ΅Π»ΡΠΊΠ΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ (ΡΡΡΠΎΠΊΠ΅), Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π² 'EditDll.dll' ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΡΡΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. Π ΡΡΠΎΠΉ "ΡΠΎΡΠΊΠ΅" DLL ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ (ΠΈ ΡΠ΅ΡΡΠΈΠ΅ΠΉ), Π½ΠΎ ΠΈ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΡ Π² EditForm! ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ³Π»ΡΠ±ΠΈΠΌΡΡ Π² ΠΊΠΎΠ΄ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. (ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΎΡΡΡΠ΄Π° ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π² Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)
ΠΡΠΎΠ΅ΠΊΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ
{ MAINDB.DPR }
program maindb;
uses Forms, mainform in 'mainform.pas' {dbmainform};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TDBMainForm, DBMainForm);
Application.Run;
end.
{ MAINFORM.PAS }
unit mainform;
interface
uses SysUtils, Windows, Messages, Classes, Graphics, Controls, StdCtrls, Forms, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, BDE;
type TDBMainForm = class(TForm)
Table1Name: TStringField;
Table1Capital: TStringField;
Table1Continent: TStringField;
Table1Area: TFloatField;
Table1Population: TFloatField;
DBGrid1: TDBGrid;
DBNavigator: TDBNavigator;
Panel1: TPanel;
DataSource1: TDataSource;
Panel2: TPanel;
Table1: TTable;
EditButton: TButton;
procedure FormCreate(Sender: TObject);
procedure EditButtonClick(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var DBMainForm: TDBMainForm;
implementation
{$R *.DFM}
procedure TDBMainForm.FormCreate(Sender: TObject);
begin
Table1.Open;
end;
// {ΠΠ ΠΠΠΠ§ΠΠΠΠ: DBHandle - Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ & DSHandle - ΠΊΡΡΡΠΎΡ
// ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΡΠ΅Π»Ρ Π²
// Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ DLL Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ,
// ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ API LoadLibrary, GetProcAddress ΠΈ
// FreeLibrary Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠΈΡ ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈ
// Π·Π°ΠΏΡΡΠΊΠ΅. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: }
// Type
// {ΠΠ»Ρ GetProcAddress}