ΠΠΈΡΡΠΈΠ½Π³ 2.8.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π°ΠΆΠΊΠ°
function CreateCheck(x, y, width, height, id: Integer;
caption: String; checked: Boolean):HWND;
var
res: HWND;
begin
res :=
CreateWindow(\'BUTTON\', PAnsiChar(caption), WS_CHILD or
WS_VISIBLE or BS_AUTOCHECKBOX or WS_TABSTOP,
x, y, width, height, hParentWnd, HMENU(id),
hAppInst, nil);
if ((res <> 0) and checked) then
SendMessage(res, BM_SETCHECK, BST_CHECKED, 0);
//Π€Π»Π°ΠΆΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
CreateCheck := res;
end;
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ (Π»ΠΈΡΡΠΈΠ½Π³ 2.9) ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΠΎ ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎΠ²ΡΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡ Π½ΠΎΠ²ΡΡ Π³ΡΡΠΏΠΏΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ group ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True.
...ΠΠΈΡΡΠΈΠ½Π³ 2.9.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ
function CreateOption(x, y, width, height, id: Integer;
caption: String; group: Boolean;
checked: Boolean):HWND;
var
res: HWND;
nGroup: Integer;
begin
if (checked) then nGroup := WS_GROUP else nGroup := 0;
res :=
CreateWindow(\'BUTTON\', PAnsiChar(caption), WS_CHILD or
WS_VISIBLE or BS_AUTORADIOBUTTON or nGroup or
WS_TABSTOP, x, y, width, height, hParentWnd,
HMENU(id), hAppInst, nil);
if ((res <> 0) and checked) then
//ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
SendMessage(res, BM_SETCHECK, BST_CHECKED, 0);
CreateOption := res;
end;
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΈ, Π³ΡΡΠΏΠΏΠΈΡΡΡΡΠ΅ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateFrame, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.10.
...ΠΠΈΡΡΠΈΠ½Π³ 2.10.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΊΠΈ
function CreateFrame(x, y, width, height, id: Integer;
caption: String):HWND;
begin
CreateFrame:=
CreateWindow(\'BUTTON\', PAnsiChar(caption), WS_CHILD or
WS_VISIBLE or BS_GROUPBOX, x, y, width, height,
hParentWnd, HMENU(id), hAppInst, nil);
end;
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ (ComboBox), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateCombo ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 2.11.
...ΠΠΈΡΡΠΈΠ½Π³ 2.11.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°
function CreateCombo(x, y, width, height, id: Integer):HWND;
begin
CreateCombo:=
CreateWindow(\'COMBOBOX\', nil, WS_CHILD or WS_VISIBLE or
CBS_DROPDOWN or CBS_AUTOHSCROLL or WS_TABSTOP,
x, y, width, height, hParentWnd,
HMENU(id), hAppInst, nil);
end;
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° (ListBox) Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡyΠ½ΠΊΡΠΈΡCreateList ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 2.12.
...ΠΠΈΡΡΠΈΠ½Π³ 2.12.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°
function CreateList(x, y, width, height, id: Integer):HWND;
begin
CreateList:=
CreateWindowEx(WS_EX_CLIENTEDGE, \'LISTBOX\', nil, WS_CHILD or
WS_VISIBLE or LBS_NOTIFY or WS_BORDER or
WS_TABSTOP, x, y, width, height,
hParentWnd, HMENU(id), hAppInst, nil);
end;
Π€ΡΠ½ΠΊΡΠΈΡ CreateLabel Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.13 ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π½Π°Π΄ΠΏΠΈΡΡ (Label), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°.
...ΠΠΈΡΡΠΈΠ½Π³ 2.13.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π΄ΠΏΠΈΡΠΈ
function CreateLabel(x, y, width, height, id: Integer;
caption: String):HWND;
begin
CreateLabel:=
CreateWindow(\'STATIC\', PAnsiChar(caption), WS_CHILD or
WS_VISIBLE, x, y, width, height, hParentWnd,
HMENU(id), hAppInst, nil);
end;
ΠΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΎΠΉ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateEdit (Π»ΠΈΡΡΠΈΠ½Π³ 2.14).
...ΠΠΈΡΡΠΈΠ½Π³ 2.14.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
function CreateEdit(x, y, width, height, id: Integer;
strInitText: String):HWND;
begin
CreateEdit:=
CreateWindowEx(WS_EX_CLIENTEDGE, \'EDIT\',
PAnsiChar(strInitText), WS_CHILD or
WS_VISIBLE or ES_AUTOHSCROLL or WS_TABSTOP,
x, y, width, height, hParentWnd,
HMENU(id), hAppInst, nil);
end;
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ (Memo) ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° ES_MULTILINE (Π»ΠΈΡΡΠΈΠ½Π³ 2.15).
...ΠΠΈΡΡΠΈΠ½Π³ 2.15.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
function CreateMemo(x, y, width, height, id: Integer;
strInitText: String):HWND;
begin
CreateMemo:=
CreateWindowEx(WS_EX_CLIENTEDGE, \'EDIT\',
PAnsiChar(strInitText),
WS_CHILD or WS_VISIBLE or ES_AUTOVSCROLL or
ES_MULTILINE or WS_TABSTOP,
x, y, width, height, hParentWnd,
HMENU(id), hAppInst, nil);
end;
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡΡ Π½Π° Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ. ΠΠ½ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅Ρ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π΄Π°Π»Π΅Π΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΎΠΊΠ½Π°, ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠΌ ΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠ½ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅, Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ. Π΄.).
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 3. ΠΡ ΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π½Π°ΠΏΠΈΡΠ°Π² Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ°ΠΊ, Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ ΡΠ»Π°ΠΆΠΊΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (Π»ΠΈΡΡΠΈΠ½Π³ 2.16).
...ΠΠΈΡΡΠΈΠ½Π³ 2.16.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π°ΠΆΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌΠΈ
//Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°/ΡΠ½ΡΡΠΈΠ΅ ΡΠ»Π°ΠΆΠΊΠ° (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°/ΡΠ½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ)
procedure SetChecked(id: Integer; checked: BOOL);
var state: Integer;
begin
if (checked) then state := BST_CHECKED
else state := BST_UNCHECKED;
SendDlgItemMessage(hParentWnd, id, BM_SETCHECK, state, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈ ΡΠ»Π°ΠΆΠΎΠΊ
//(ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ)
function GetChecked(id: Integer):BOOL;
begin
if (SendDlgItemMessage(hParentWnd, id, BM_GETCHECK, 0, 0) =
BST_CHECKED)
then GetChecked := True
else GetChecked := False;
end;
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π»ΠΈΡΡΠΈΠ½Π³Π° 2.17 ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ComboBox.
...ΠΠΈΡΡΠΈΠ½Π³ 2.17.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ
//ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ
procedure AddToCombo(id: Integer; str: String);
begin
SendDlgItemMessage(hParentWnd, id, CB_ADDSTRING, 0,
Integer(PAnsiChar(str)));
end;
//Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°
procedure DeleteFromCombo(id: Integer; index: Integer);
begin
SendDlgItemMessage(hParentWnd, id, CB_DELETESTRING, index, 0);
end;
//ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ
procedure SetComboSel(id: Integer; index: Integer);
begin
SendDlgItemMessage(hParentWnd, id, CB_SETCURSEL, index, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (CB_ERR, Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ)
function GetComboSel(id: Integer): Integer;
begin
GetComboSel := SendDlgItemMessage(hParentWnd, id,
CB_GETCURSEL, 0, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ
function GetComboCount(id: Integer): Integer;
begin
GetComboCount := SendDlgItemMessage(hParentWnd, id,
CB_GETCOUNT, 0, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π΅Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ
function GetComboItemText(id: Integer; index: Integer):String;
var buffer: String;
begin
SetLength(buffer,
SendDlgItemMessage(hParentWnd, id, CB_GETLBTEXTLEN,
index, 0)
);
SendDlgItemMessage(hParentWnd, id, CB_GETLBTEXT, index,
Integer(Addr(buffer)));
GetComboItemText := buffer;
end;
Π‘Ρ ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.18 ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ListBox.
...ΠΠΈΡΡΠΈΠ½Π³ 2.18.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠΌ
//ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ
procedure AddToList(id: Integer; str: String);
begin
SendDlgItemMessage(hParentWnd, id, LB_ADDSTRING, 0,
Integer(PAnsiChar(str)));
end;
//Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°
procedure DeleteFromList(id: Integer; index: Integer);
begin
SendDlgItemMessage(hParentWnd, id, LB_DELETESTRING, index, 0);
end;
//ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ
procedure SetListSel(id: Integer; index: Integer);
begin
SendDlgItemMessage(hParentWnd, id, LB_SETCURSEL, index, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (LB_ERR, Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ)
function GetListSel(id: Integer): Integer;
begin
GetListSel := SendDlgItemMessage(hParentWnd, id,
LB_GETCURSEL, 0, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ
function GetListCount(id: Integer): Integer;
begin
GetListCount := SendDlgItemMessage(hParentWnd, id,
LB_GETCOUNT, 0, 0);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π΅Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ
function GetListItemText(id: Integer; index: Integer):String;
var buffer: String;
begin
SetLength(buffer,
SendDlgItemMessage(hParentWnd, id, LB_GETTEXTLEN,
index, 0)
);
SendDlgItemMessage(hParentWnd, id, LB_GETTEXT, index,
Integer(Addr(buffer)));
GetListItemText := buffer;
end;
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π»ΠΈΡΡΠΈΠ½Π³Π° 2.19 Π΄Π°Π΄ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ( Edit ΠΈ Memo).
...ΠΠΈΡΡΠΈΠ½Π³ 2.19.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° (Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Ρ Π½ΡΠ»Ρ)
function GetSelStart(id: Integer): Integer;
var selStart, selEnd: Integer;
begin
SendDlgItemMessage(hParentWnd, id, EM_GETSEL,
Integer(Addr(selStart)),
Integer(Addr(selEnd)));
GetSelStart := selStart;
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠ΅ΠΊΡΡΠ°
function GetSelLength(id: Integer): Integer;
var selStart, selEnd: Integer;
begin
SendDlgItemMessage(hParentWnd, id, EM_GETSEL,
Integer(Addr(selStart)),
Integer(Addr(selEnd)));
GetSelLength := selEnd β selStart;
end;
//ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠ΅ΠΊΡΡΠ° (ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Ρ Π½ΡΠ»Ρ)
procedure SetSel(id: Integer; start, length: Integer);
begin
SendDlgItemMessage(hParentWnd, id, EM_SETSEL, start,
start + length);
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠ΅ΠΊΡΡΠ°
function GetSelText(id: Integer): String;
var allText: String;
begin
allText := GetText(id);
GetSelText := Copy(allText, GetSelStart(id)+1,GetSelLength(id));
end;
//ΠΠ°ΠΌΠ΅Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
procedure ReplaceSelText(id: Integer; newText: String);
begin
SendDlgItemMessage(hParentWnd, id, EM_REPLACESEL,
0, Integer(PAnsiChar(newText)));
end;
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.20 ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
...ΠΠΈΡΡΠΈΠ½Π³ 2.20.
ΠΠ±ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
//Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΊΡΡΠ° ΠΎΠΊΠ½Π°
procedure SetText(id: Integer; str: String);
begin
SetWindowText(GetDlgItem(hParentWnd, id), PAnsiChar(str));
end;
//ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΎΠΊΠ½Π°
function GetText(id: Integer): String;
var buffer: String;
begin
SetLength(buffer, GetWindowTextLength(hParentWnd));
GetWindowText(hParentWnd, PAnsiChar(buffer), Length(buffer));
GetText := buffer;
end;
//ΠΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΡ/Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΠ½Π°
procedure SetEnabled(id: Integer; fEnabled: BOOL);
begin
EnableWindow(GetDlgItem(hParentWnd, id), fEnabled);
end;
Π Π΅Π°ΠΊΡΠΈΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_COMMAND.
...ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_COMMAND ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«ΡΠ°ΠΌΠΎΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΠΈΡ ΡΡΒ» (Owner Dr aw) ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Π²ΠΈΠ΄Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ° Π³ Π»Π°Π²Ρ ΠΌΡ Π΅Π³ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ.