在treeview1新建节点是自动标记为红色,并保存数据库(如为0时没有颜色,1时为红色),系统从新启动标记颜色应该还在!
procedure TForm1.ppmiTogColorClick(Sender: TObject);
begin
//设置红色
if TreeView1.Selected <> nil then
begin
TreeView1.Selected.Data := TObject(1);
TreeView1.Invalidate;
end;
end;procedure TForm1.ppmiUntogColorClick(Sender: TObject);
begin
//取消红色
if TreeView1.Selected <> nil then
begin
TreeView1.Selected.Data := nil;
TreeView1.Invalidate;
end;
end;//TreeView1.OnAdvancedCustomDrawItem事件
procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
var PaintImages, DefaultDraw: Boolean);
var
ACanvas:TCanvas;
ARect: TRect;
begin
ACanvas := TreeView1.Canvas;
ARect := Node.DisplayRect(True); if Node.Data <> nil then
ACanvas.Brush.Color := clRed
else if Node.Selected then
ACanvas.Brush.Color := clSkyBlue
else
ACanvas.Brush.Color := TreeView1.Color;
ACanvas.Font.Assign(TreeView1.Font);
ACanvas.FillRect(ARect);
DrawText(ACanvas.Handle, PChar(Node.Text), -1,
ARect, DT_SINGLELINE or DT_VCENTER or DT_SINGLELINE);
end;
procedure TForm1.ppmiTogColorClick(Sender: TObject);
begin
//设置红色
if TreeView1.Selected <> nil then
begin
TreeView1.Selected.Data := TObject(1);
TreeView1.Invalidate;
end;
end;procedure TForm1.ppmiUntogColorClick(Sender: TObject);
begin
//取消红色
if TreeView1.Selected <> nil then
begin
TreeView1.Selected.Data := nil;
TreeView1.Invalidate;
end;
end;//TreeView1.OnAdvancedCustomDrawItem事件
procedure TForm1.TreeView1AdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
var PaintImages, DefaultDraw: Boolean);
var
ACanvas:TCanvas;
ARect: TRect;
begin
ACanvas := TreeView1.Canvas;
ARect := Node.DisplayRect(True); if Node.Data <> nil then
ACanvas.Brush.Color := clRed
else if Node.Selected then
ACanvas.Brush.Color := clSkyBlue
else
ACanvas.Brush.Color := TreeView1.Color;
ACanvas.Font.Assign(TreeView1.Font);
ACanvas.FillRect(ARect);
DrawText(ACanvas.Handle, PChar(Node.Text), -1,
ARect, DT_SINGLELINE or DT_VCENTER or DT_SINGLELINE);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货