bitte schön:
sdat ist eine bereits gefilterte Datei, die nur die relevanten datensätze enthält:
Delphi-Quellcode:
suchliste.RowCount := pred(filesize(sdat));
for f := 0 to pred(suchliste.rowcount) do suchliste.rowheights[f] := 20;
suchliste.ColWidths[0] := 40;
suchliste.ColWidths[1] := 45;
suchliste.ColWidths[2] := 240;
suchliste.ColWidths[3] := 100;
suchliste.ColWidths[4] := 100;
for f := 0 to pred(filesize(sdat)) do begin
read(sdat,spuff);
str(f,t);
suchliste.Cells[0,f] := s;
suchliste.Cells[1,f] := spuff.num,4,'0');
suchliste.Cells[2,f] := spuff.kun;
suchliste.Cells[3,f] := spuff.dat;
suchliste.Cells[4,f] := spuff.bet;
end;
suchliste.row := 0;
das drawcell sollte nur auf spalte 4 (betrag) wirken, tut es auch. auch wenn ich weglasse, bleibt das problem bestehen ...
Delphi-Quellcode:
procedure TForm2.SuchlisteDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var s: string;
begin
if acol = 4 then begin
s := Suchliste.Cells[ACol, ARow]; {Text der Zelle holen}
Suchliste.Canvas.FillRect(Rect); {Zelle leer überzeichnen}
DrawText(Suchliste.Canvas.Handle, PChar(s), Length(s), Rect, DT_SINGLELINE or DT_right or
DT_VCENTER); {Text zentriert zeichnen}
end;
end;