Π’Π°Π±Π»ΠΈΡΠ° 6.3. Π Π΅ΠΆΠΈΠΌΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π°
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ»Ρ.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡ Π½Π° ΡΡΠΈΠ»ΠΈ Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΡΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ CreatePen. ΠΡΠ»ΠΈ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ExtCreatePen, ΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ nBkMode ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. GDI ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ SetTextColor Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
...SetTextColor(hCurDC, RGB(0, 0, 255));
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°:
...Function SetTextColor(hdc: HDC; crColor: COLORREF): COLORREF;
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°Π΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ°. ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°Π΄Π°Π΅Ρ ΡΠ°ΠΌ ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ²Π΅Ρ, Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ CLRINVALID.
Π¦Π²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ TextOut ΠΈ ExtTextOut, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ Π² ΠΌΠΎΠ½ΠΎΡ ΡΠΎΠΌΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ.
ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Ρ ΡΠ΅Π½ΡΡΠ° Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ.
...TextOut(hCurDC, Width div 2, Height div 2, PAnsiChar(sText), Length(sText));
ΠΠΎ Π΄Π»Ρ Π½Π°Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΡ OnPaint. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π½Π° ΡΠΎΡΠΌΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π΅Π³ΠΎ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°Π²Π½ΡΠΌ 100. Π Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΌΠ΅Π½ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡ ΡΠ³ΠΎΠ» Π΅Π³ΠΎ Π½Π°ΠΊΠ»ΠΎΠ½Π° ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnPaint Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ RePaint (Π»ΠΈΡΡΠΈΠ½Π³ 6.3).
...ΠΠΈΡΡΠΈΠ½Π³ 6.3.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° OnTimer
procedure TfmText.TurnTimerTimer(Sender: TObject);
begin
with LogFontData do
begin
lfEscapement := lfEscapement + 60;
lfOrientation := lfEscapement;
end;
RePaint;
end;
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ LogFontData ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
...LogFontData: LOGFONT;
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° Π΅Π΅ ΠΏΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° Π½Π°ΠΊΠ»ΠΎΠ½ ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΡ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΡΠΌΡ. Π’Π°ΠΌ ΠΆΠ΅ ΠΌΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ΅Ρ (Π»ΠΈΡΡΠΈΠ½Π³ 6.4).
...ΠΠΈΡΡΠΈΠ½Π³ 6.4.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ OnCreate
procedure TfmText.FormCreate(Sender: TObject);
begin
with LogFontData do
begin
lfHeight := 30; // Π²ΡΡΠΎΡΠ° ΡΡΠΈΡΡΠ°
lfWidth := 0; // ΡΡΠ΅Π΄Π½ΡΡ ΡΠΈΡΠΈΠ½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π°
lfEscapement := 0; // Π½Π°ΠΊΠ»ΠΎΠ½ ΡΡΡΠΎΠΊΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈ oX
lfOrientation := 0; // Π½Π°ΠΊΠ»ΠΎΠ½ ΡΠΈΠΌΠ²ΠΎΠ»Π°
// ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈ oX
lfWeight := FW_BOLD; // Π²Π΅Ρ ΡΡΠΈΡΡΠ°
lfItalic := 0;
lfUnderline := 0;
lfStrikeOut := 0;
// ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
lfCharSet := DEFAULT_CHARSET;
lfOutPrecision := OUT_DEFAULT_PRECIS; // ΡΠΎΡΠ½ΠΎΡΡΡ
// Π²ΡΠ²ΠΎΠ΄Π°
lfClipPrecision := CLIP_DEFAULT_PRECIS; // ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅
// Π²ΡΠ²ΠΎΠ΄Π°
lfQuality := PROOF_QUALITY; // ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄Π°
lfPitchAndFamily := VARIABLE_PITCH or FF_DONTCARE;
// ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠΈΡΡΠ°
lfFaceName := \'Arial\ // Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΈΡΡΠ°
end;
TurnTimer.Enabled := True;
end;
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠΈΡ. 6.2.
Π ΠΈΡ. 6.2. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌΒ»
6.8. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΎΠΊΠ½Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎ ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠΏΡΡΡ Π²ΡΠ±Π΅ΡΠ΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ·Π°Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ.
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateCompatibleDC, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ CreateCompatibleBitmap, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ Π²Π°ΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²ΡΠ±ΡΠ°Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ BitBlt ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ½ΠΊΠ° ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΡ Π² ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠΌΠΈ ΡΠΎΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ½ΠΊΠΎΠ². ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ½ΠΊΠ°, Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π² ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ. Π§ΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ BitBlt, ΡΠΊΠ°Π·Π°Π² ΡΠ΅ΠΏΠ΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π° (ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΈ Ρ. Π΄.).
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π Π°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ: OnCreate, OnPaint, OnClose, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Onclick.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ OnCreate (Π»ΠΈΡΡΠΈΠ½Π³ 6.5).
...ΠΠΈΡΡΠΈΠ½Π³ 6.5. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnCreate
procedure TfmCaptureImage.FormCreate(Sender: TObject);
begin
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°
hdcScreen := CreateDC(\'DISPLAY\', nil, nil, nil);
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ
hdcCompatible := CreateCompatibleDC(hdcScreen);
bmpWidth := GetDeviceCaps(hdcScreen, HORZRES);
bmpHeight := GetDeviceCaps(hdcScreen, VERTRES);
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ Π΄Π»Ρ hdcScreen
hbmScreen := CreateCompatibleBitmap(hdcScreen, bmpWidth,
bmpHeight);
if hbmScreen <> 0 then
hOldBitmap := SelectObject(hdcCompatible, hbmScreen)
else
hOldBitmap := 0;
Captured := False;
end;
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π Π°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ CreateDC.
...hdcScreen:= CreateDC(\'DISPLAY\', nil, nil, nil);
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ.
...bmpWidth := GetDeviceCaps(hdcScreen, HORZRES);
bmpHeight := GetDeviceCaps(hdcScreen, VERTRES);
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ Π΄Π»Ρ hdcScreen
hbmScreen := CreateCompatibleBitmap(hdcScreen, bmpWidth, bmpHeight);
ΠΡΠ»ΠΈ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ, ΡΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ Π² ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ΅ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ Π»ΠΈ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΏΠΎΠ»ΡΡ ΡΠΎΡΠΌΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π΅Π΅ ΠΊΠ»Π°ΡΡΠ°.
...hdcScreen, hdcCompatible: HDC;
hbmScreen, hOldBitmap: HBITMAP;
bmpWidth, bmpHeight: Integer;
Captured: LongBool;
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ OnPaint (Π»ΠΈΡΡΠΈΠ½Π³ 6.6).
...ΠΠΈΡΡΠΈΠ½Π³ 6.6.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnPaint
procedure TfmCaptureImage.FormPaint(Sender: TObject);
var
hCurDC: HDC;
begin
if Captured then
begin
hCurDC := GetDC(Handle);
StretchBlt(hCurDC, 0, 0, Width, Height, hdcCompatible,
0, 0, bmpWidth, bmpHeight, SRCCOPY);
ReleaseDC(Handle, hCurDC);
end;
end;
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π΅ΡΡΡ Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ StretchBlt.
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ ΡΠΎΡΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π·Π°Π½ΡΡΡΠ΅ Π½Π°ΠΌΠΈ ΡΠ΅ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ OnClose, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅ (Π»ΠΈΡΡΠΈΠ½Π³ 6.7).
...ΠΠΈΡΡΠΈΠ½Π³ 6.7.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClose
procedure TfmCaptureImage.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
if hOldBitmap <> 0 then
SelectObject(hdcCompatible, hOldBitmap);
//ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ
if hbmScreen <> 0 then
DeleteObject(hbmScreen);
//ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ
if hdcCompatible <> 0 then
DeleteDC(hdcCompatible);
//ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°
if hdcScreen <> 0 then
DeleteDC(hdcScreen);
end;
ΠΠ°ΠΌ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Onclick ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π½Π° Π½Π°ΡΡ ΡΠΎΡΠΌΡ. Π Π½Π΅ΠΌ ΠΌΡ ΠΏΡΡΡΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ (Π»ΠΈΡΡΠΈΠ½Π³ 6.8).
...ΠΠΈΡΡΠΈΠ½Π³ 6.8.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
procedure TfmCaptureImage.btnCaptureClick(Sender: TObject);
var
hdcForm: HDC;
begin
//ΠΏΡΡΡΠ΅ΠΌ Π½Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ
Hide;
//ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°