
09.01.2015, 00:38
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,106
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Добавить в TV чекбоксы:
Код:
interface
type
TTreeView = class(ComCtrls.TTreeView)
end;
TForm1 = class(TForm)
...
implementation
procedure TTreeView.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or TVS_CHECKBOXES;
end;
Получить список в Мемо:
Код:
function TreeNodeChecked(n:TTreenode):Boolean;
Const
TVIS_CHECKED = $2000;
var
Item: TTVItem;
begin
Item.mask := TVIF_STATE or TVIF_HANDLE;
Item.hItem := n.ItemId;
if Bool(SendMessage(n.Handle, TVM_GETITEM, 0, lParam(@Item))) then
Result := (Item.State and TVIS_CHECKED) = TVIS_CHECKED
else
Result := false;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Memo1.Lines.Clear;
for i := 0 to TreeView1.Items.Count - 1 do
begin
if (TreeView1.Items[i].Count = 0) And (TreenodeChecked(TreeView1.Items[i])) then
Memo1.Lines.Add(TreeView1.Items[i].Text);
end;
end;
|