已经再现了,不好意思,我找到一个更好的方法
只要一个CustomDrawCell这个事件,其他的事件都不要,
DataSetBroker2 也不需要了
procedure TMainForm.DataGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
begin
if ANode.HasChildren then
begin
lstr := StringUtils.Copy(AText, StringUtils.Pos(':', AText) + 2, 10);
AText := Sysutils.IntToStr(ANode.Index+1)+': '+ StringUtils.Copy(AText, StringUtils.Pos(':', AText) + 2, 10);
end;
end; |