PAnsiChar(strInfo),LoadIcon(0, IDI_ASTERISK));
end;
ΠΡΠ°Π²Π΄Π°, Π² ΠΎΠΊΠ½Π΅ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Windows Π₯Π Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠ²Π΅Π΄Π΅Π½ΠΎ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ (ΠΈ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π·Π½Π°ΡΠΊΠ° ΡΠ»Π΅Π²Π° ΠΎΡ ΠΎΠΊΠ½Π°). ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΈΡΠΌΠ΅Π½Π½Π°Ρ ΡΠΌΠ±Π»Π΅ΠΌΠ° Microsoft Windows Π₯Π .
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»Π° ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° (ΠΏΡΠΎΠ΅ΠΊΡ StandartWindows). ΠΠΊΠ½ΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΈΡ. 2.8.
Π ΠΈΡ. 2.8. ΠΠΊΠ½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π°Π·ΠΌΠ΅Ρ ΠΠ₯Π-ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π²Π΅Π½ 22 ΠΠ±Π°ΠΉΡ. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.33 ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π½Π΅ΠΌ, ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΉΠ» StandartWindows. dpr). Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ StdWindows (ΡΠ°ΠΉΠ» StdWindows.pas). Π ΡΡΠΎΠΌ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Π²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ Controls.
...ΠΠΈΡΡΠΈΠ½Π³ 2.33.
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΠΈ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
program StandartWindows;
{$R *.res}
uses
Windows, Messages, CommDlg,
Controls in \'Controls.pas\',
StdWindows in \'StdWindows.pas\
var
hMainWnd: HWND;
hInst: Cardinal;
mess: MSG;
curColor: COLORREF;
font: LOGFONT;
hCurFont: HFONT;
β¦
function RegisterWindow():Boolean;
β¦
begin
hInst := GetModuleHandle(nil);
//Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
if not RegisterWindow() then Exit;
hMainWnd := CreateWindow(
\'MyWindowClass\', //ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π°
\'Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Windows\', //ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°
WS_CAPTION or WS_SYSMENU or WS_CLIPCHILDREN or WS_CLIPSIBLINGS,
CW_USEDEFAULT, //ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° X ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
CW_USEDEFAULT, //ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Y ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
470, 420,
HWND(nil), //ΠΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
HMENU(nil), //ΠΠ΅Ρ ΠΌΠ΅Π½Ρ
hInst,
nil);
if (hMainWnd = HWND(nil)) then Exit;
//ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Controls Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³Π»Π°Π²Π½ΡΠΌ
//ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Controls.hParentWnd := hMainWnd;
Controls.hAppInst := hInst;
//ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ StdWindows Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³Π»Π°Π²Π½ΡΠΌ
//ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
StdWindows.hParentWnd := hMainWnd;
StdWindows.hAppInst := hInst;
//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½
CreateButton(20, 20, 200, 30, 1001, \'ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π°\');
CreateButton(20, 60, 200, 30, 1002, \'Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°\');
CreateButton(20, 100, 200, 30, 1003, \'ΠΡΠ±ΠΎΡ ΡΠ²Π΅ΡΠ°\');
CreateButton(20, 140, 200, 30, 1004, \'ΠΡΠ±ΠΎΡ ΡΡΠΈΡΡΠ°\');
CreateButton(20, 180, 200, 30, 1005, \'ΠΠΊΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ°\');
CreateButton(20, 220, 200, 30, 1006, \'ΠΠΊΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π·Π°ΠΌΠ΅Π½Ρ\');
CreateButton(230, 20, 220, 30, 1010, \'ΠΡΠ±ΠΎΡ ΠΏΠ°ΠΏΠΊΠΈ\');
CreateButton(230, 60, 220, 30, 1011, \'ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ
ΡΠ΅ΡΡΡΡΠ°\');
CreateButton(230, 100, 220, 30, 1012, \'ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ
ΡΠ΅ΡΡΡΡΠ°\');
CreateButton(230, 140, 220, 30, 1013, \'Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ "Π ΠΏΡΠΎ-
Π³ΡΠ°ΠΌΠΌΠ΅"\');
//Π’Π΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
CreateMemo(20, 270, 430, 100, 2001);
ShowWindow(hMainWnd, SW_NORMAL);
//ΠΠ°ΠΏΡΡΠΊ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
while (Longint(GetMessage(mess, 0, 0, 0)) <> 0) do
begin
if (IsDialogMessage(hMainWnd, mess) = False) then
begin
TranslateMessage(mess);
DispatchMessage(mess);
end;
end;
end.
ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ RegisterWindow ΠΎΠΏΡΡΠ΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.4. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π½Π΅Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Ρ StdWindows (ΡΠ°ΠΉΠ» StdWindows. pas).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ API-ΡΡΠ½ΠΊΡΠΈΠΈ IsDialogMessage, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠ½Π°Ρ . ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ Tab.
ΠΠ΅ΡΠ΅Π΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ RegisterWindow (Π½Π° ΠΌΠ΅ΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.33) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ (Π»ΠΈΡΡΠΈΠ½Π³ 2.34).
...ΠΠΈΡΡΠΈΠ½Π³ 2.34.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
function WindowFunc(hWnd:HWND; msg:UINT; wParam:WPARAM;
lParam:LPARAM):LRESULT; stdcall;
var
hOldFont: HFONT;
strBuf: String;
hEditDC: HDC;
begin
case msg of
WM_CLOSE:
if (hWnd = hMainWnd) then PostQuitMessage(0);
WM_CTLCOLOREDIT: //Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Edit ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ
begin
//ΠΠ°Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡ Edit Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ²Π΅Ρ
hEditDC := HDC(wParam);
SetTextColor(hEditDC, curColor);
GetCurrentObject(hEditDC, OBJ_BRUSH);
end;
WM_COMMAND:
if (HIWORD(wParam) = BN_CLICKED) then
begin
//ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°ΡΠ°
case LOWORD(wParam) of
1001: //ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
begin
SetText(2001, \'ΠΡΠΊΡΡΡ ΡΠ°ΠΉΠ»:\' + #13 + #10 +
ShowOpen(\'ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ|*.*||\'));
end;
1002: //Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
begin
SetText(2001, \'ΠΡΡΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ:\' + #13 + #10 +
ShowSave(\'ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ|*.*||\'));
end;
1003: //ΠΡΠ±ΠΎΡ ΡΠ²Π΅ΡΠ°
begin
curColor := ShowChooseColor(curColor);
Str(curColor, strBuf);
SetText(2001, \'ΠΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ²Π΅Ρ:\' + #13 + #10 + strBuf);
end;
1004: //ΠΡΠ±ΠΎΡ ΡΡΠΈΡΡΠ°
begin
if (ShowChooseFont(font) = True) then
begin
//ΠΠ°ΠΌΠ΅Π½Π° ΡΡΠΈΡΡΠ° Π² Edit
hOldFont := HFONT(
SendDlgItemMessage(hMainWnd,2001,WM_GETFONT, 0,0));
hCurFont := CreateFontIndirect(font);
SendDlgItemMessage(hMainWnd, 2001, WM_SETFONT,
Integer(hCurFont),
Integer(True));
SetText(2001, \'Π’Π΅ΠΊΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ
ΡΡΠΈΡΡΠΎΠΌ\');
if (hOldFont <> 0) then DeleteObject(hOldFont);
end;
end;
1010: //ΠΡΠ±ΠΎΡ ΠΏΠ°ΠΏΠΊΠΈ
begin
SetText(2001, \'ΠΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΏΠ°ΠΏΠΊΠ°:\' + #13 + #10 +
ShowChooseFolder());
end;
1011: //ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°
begin
ShowConnection();
end;
1012: //ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ°
begin
ShowDisconnect();
end;
1013: //ΠΠΊΠ½ΠΎ Β«Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅Β»
begin
ShowAbout(\'Standart windows\',
\'ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ \' +
\'ΠΎΠΊΠΎΠ½ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΈΠ· ΡΠΈΡΡΠΎΠ³ΠΎ API-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ\');
end;
end;
end;
else
begin
//ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
WindowFunc := DefWindowProc(hWnd, msg, wParam, lParam);
Exit;
end;
end;
WindowFunc := S_OK; //Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ
end;
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π·Π΄Π΅ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΈΡΡΠ° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΡΡΡΠ²ΠΎΠΊ Π»ΠΈΡΡΠΈΠ½Π³Π° 2.34:
...//ΠΠ°ΠΌΠ΅Π½Π° ΡΡΠΈΡΡΠ° Π² Edit
hOldFont := HFONT(SendDlgItemMessage(hMainWnd,2001,WM_GETFONT, 0,0));
hCurFont := CreateFontIndirect(font);
SendDlgItemMessage(hMainWnd, 2001, WM_SETFONT,
Integer(hCurFont), Integer(True));
SetEditText(2001, \'Π’Π΅ΠΊΡΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ\');
if (hOldFont <> 0) then DeleteObject(hOldFont);
ΠΡΠΎΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. ΠΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ° Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ , Π½Π°Π΄ΠΏΠΈΡΡΡ ΠΈ Ρ. Π΄. Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅Π²Π·ΡΠ°ΡΠ½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΡΠΈΡΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΡΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΠ½Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½ Π΄Π°Π»Π΅Π΅. Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΡΠ΄Π°Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ GDI (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΡΡΠΈΡΡ) ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΠ°Π»ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π»Π°Π΄Π΅ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 65 000 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GDI. Π ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Β«ΡΡΠ΅ΡΠΊΠΈΒ» ΡΠ΅ΡΡΡΡΠΎΠ² GDI ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΏΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ (ΠΏΡΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ), ΠΊΠΎΠ³Π΄Π° Π²Π΄ΡΡΠ³ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΡΡΠ°Π½Π½ΠΎ (Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ).
2.5. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΈΡΡΠ° ΡΠ΅ΠΊΡΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ»Π°ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_SETFONT, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ (HFONT) ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΈΡΡΠ°. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΈΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ) ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.35.
...ΠΠΈΡΡΠΈΠ½Π³ 2.35.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΡΡΠ° ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
//Π¨ΡΠΈΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
font := CreateFont(16, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET,
OUT_CHARACTER_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH, \'Courier new\');
//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ctrl := CreateButton(20, 30, 70, 30, 1001, \'ΠΠ½ΠΎΠΏΠΊΠ° 1\');
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateButton(100, 30, 70, 30, 1002,\'ΠΠ½ΠΎΠΏΠΊΠ° 2\');
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateCheck(210, 30, 180, 20, 2001, \'Π€Π»Π°ΠΆΠΎΠΊ 1\');
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateCheck(210, 60, 180, 20, 2001, \'Π€Π»Π°ΠΆΠΎΠΊ 2\', True);
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateOption(210, 100, 180, 20, 3001, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 1\',
True);
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateOption(210,130,180,20,3002, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 2\',
False, True);
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
ctrl := CreateOption(210, 160, 180, 20, 3003, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 3\',
True);
SendMessage(ctrl, WM_SETFONT, HFONT(font), 1);
//ΠΠ°ΠΏΡΡΠΊ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
while (Longint(GetMessage(mess, 0, 0, 0)) <> 0)
do begin
TranslateMessage(mess);
DispatchMessage(mess);
end;
//Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΡΡΠ°
DeleteObject(font);
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠΈΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 2.9.
Π ΠΈΡ. 2.9. Π¨ΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ
Π‘ΠΏΠΎΡΠΎΠ± Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΠΈΡΡΠ°, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.35, Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ»Ρ ΠΎΠΊΠΎΠ½, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± (Π»ΠΈΡΡΠΈΠ½Π³ 2.36).
...ΠΠΈΡΡΠΈΠ½Π³ 2.36.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΡΡΠ° ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
//Π¨ΡΠΈΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
font := CreateFont(16, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET,
OUT_CHARACTER_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH, \'Courier new\');
//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
CreateButton(20, 30, 70, 30, 1001, \'ΠΠ½ΠΎΠΏΠΊΠ° 1\');
CreateButton(100, 30, 70, 30, 1002,\'ΠΠ½ΠΎΠΏΠΊΠ° 2\');
CreateCheck(210, 30, 180, 20, 2001, \'Π€Π»Π°ΠΆΠΎΠΊ 1\');
CreateCheck(210, 60, 180, 20, 2001, \'Π€Π»Π°ΠΆΠΎΠΊ 2\', True);
CreateOption(210, 100, 180, 20, 3001, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 1\', True);
CreateOption(210, 130, 180, 20, 3002, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 2\', False, True);
CreateOption(210, 160, 180, 20, 3003, \'ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ 3\', True);
//Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΡΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ