Как выделить некоторые строчки TTreeView бледным (аналогично Ctrl+X в проводнике)?
uses
..., CommCtrl;
// Способ первый procedure SetNodeState( node: TTreeNode; Flags: Integer );
var
tvi: TTVItem;
begin
FillChar( tvi, SizeOf( tvi ), 0 );
tvi.hItem := node.ItemID;
tvi.mask := TVIF_STATE;
tvi.stateMask := TVIS_CUT;
tvi.state := Flags;
TreeView_SetItem( node.Handle, tvi );
end; |
procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// Выделяем бледным if ( ssCtrl in Shift ) then
if ( Key = Ord( 'X' ) ) or ( Key = Ord( 'x' ) ) then
SetNodeState( ( Sender as TTreeView ).Selected, TVIS_CUT );
// Снимаем выделение if Key = VK_ESCAPE then
SetNodeState( ( Sender as TTreeView ).Selected, 0 );
end; |
Способ второй
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.Item[0].Cut := true; // false
end; |