我用下面的语句实现了,可是怎么让选定的这些节点行改变颜色使其醒目呢? [code=Delphi(Pascal)] var node:TdxTreeListNode; i,j:Integer; begin i:=dxTreeList1.SelectedCount; for j := 0 to i-1 do begin node:=dxTreeList1.SelectedNodes[j]; if dxTreeList1.SelectedNodes[j].Strings[0]='0' then dxTreeList1.SelectedNodes[j].Strings[0]:='1' else dxTreeList1.SelectedNodes[j].Strings[0]:='0'; end ; dxTreeList1.Refresh; end;code]
OnCustomDrawCell里面代码如下,效果不慎理想: i:=dxTreeList1.SelectedCount; for j:=0 to 1-1 do begin if ANode =dxTreeList1.SelectedNodes[j] then begin AColor:=$00EEFCFF; afont.Color :=clBlue; end; end;
procedure TForm1.dxTreeList1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: String; var AColor: TColor; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean); begin if ANode.Selected then begin AColor := $00EEFCFF; AFont.Color := clBlue; end; end;
我想做的是:
比如 按住CTRL,然后用鼠标左键选中3-9节点,然后一次性把着选中的这几个节点中column1 中内容都改为AAAA.
大概就是这个意思
标准的只有treeview和listview。。
不用遍历全部节点,Selections属性下的就是你选了的节点
眼神不行了
现在的问题是,我要遍历选中的这些节点来做点什么,而不是遍历所有的节点
有什么办法呢?
[code=Delphi(Pascal)]
var
node:TdxTreeListNode;
i,j:Integer;
begin
i:=dxTreeList1.SelectedCount;
for j := 0 to i-1 do
begin
node:=dxTreeList1.SelectedNodes[j];
if dxTreeList1.SelectedNodes[j].Strings[0]='0' then
dxTreeList1.SelectedNodes[j].Strings[0]:='1'
else
dxTreeList1.SelectedNodes[j].Strings[0]:='0';
end ;
dxTreeList1.Refresh;
end;code]
for j:=0 to 1-1 do
begin
if ANode =dxTreeList1.SelectedNodes[j] then
begin
AColor:=$00EEFCFF;
afont.Color :=clBlue;
end;
end;
procedure TForm1.dxTreeList1CustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
if ANode.Selected then
begin
AColor := $00EEFCFF;
AFont.Color := clBlue;
end;
end;