procedure TfMain.TvUsrCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
aa,zsdTitle:string;
zsdID,msl:integer;
begin
aa:=fLogin.edtUsrId.Text;
case tvusr.Selected.SelectedIndex of
3:
begin
zsdTitle:=TvUsr.Selected.Text;
with DM.qTopic do
begin
DM.qTopic.Close;
DM.qTopic.SQL.Clear;
DM.qTopic.sql.Add('select * from topic');
DM.qTopic.sql.Add(' where topicTitle='''+zsdTitle+'''');
DM.qTopic.Open;
zsdID:=DM.qTopic.Fieldbyname('topicID').AsInteger;
end;
with DM.qMaster DO
begin
DM.qMaster.Close;
DM.qMaster.Sql.Clear;
DM.qMaster.SQL.add(
'select * from master where topicID='+inttostr(zsdId)+' and stuID='''+aa+'''');
DM.qMaster.Open;
msl:=strtoint(DM.qMaster.fieldbyname('mslevel').AsString);
case msl of
1:
begin
font.Color:=clRed;
end;
2:
begin
font.Color:=clBlue;
end;
end;
end;
end;
end;end;
这段代码是想实现第三级子目录根据数字库字段‘mslevel’掌握程度不同,指定的标题显示不同颜色字体,但却是整个目录都变色了。新手上道,麻烦指点啊
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
aa,zsdTitle:string;
zsdID,msl:integer;
begin
aa:=fLogin.edtUsrId.Text;
case tvusr.Selected.SelectedIndex of
3:
begin
zsdTitle:=TvUsr.Selected.Text;
with DM.qTopic do
begin
DM.qTopic.Close;
DM.qTopic.SQL.Clear;
DM.qTopic.sql.Add('select * from topic');
DM.qTopic.sql.Add(' where topicTitle='''+zsdTitle+'''');
DM.qTopic.Open;
zsdID:=DM.qTopic.Fieldbyname('topicID').AsInteger;
end;
with DM.qMaster DO
begin
DM.qMaster.Close;
DM.qMaster.Sql.Clear;
DM.qMaster.SQL.add(
'select * from master where topicID='+inttostr(zsdId)+' and stuID='''+aa+'''');
DM.qMaster.Open;
msl:=strtoint(DM.qMaster.fieldbyname('mslevel').AsString);
case msl of
1:
begin
font.Color:=clRed;
end;
2:
begin
font.Color:=clBlue;
end;
end;
end;
end;
end;end;
这段代码是想实现第三级子目录根据数字库字段‘mslevel’掌握程度不同,指定的标题显示不同颜色字体,但却是整个目录都变色了。新手上道,麻烦指点啊
if Node.Level = 2 then
begin
Sender.Canvas.Font.Color := clBlue
end;