![]() |
Inhalte von Stringgrid bleiben unsichtbar
Guten Morgen,
ein Anfänger bittet um einen Tipp: Ich lese Daten aus einer externen Datei (Rechn.Nr., Kundenname, Datum, Betrag) in ein Stringrid ein und will diese zum Nachdruck der Rechnung anbieten. Immer ab Zeile 163 bleiben die Einträge des Stringgrids unsichtbar, die Inhalte sind aber definitiv da - beim Anklicken der leeren Zeile werden die richtigen Werte ausgelesen. Gibt es ein Limit für darstellbare Zeilen eines Stringgrids ? Wo kann ich das erhöhen, wenn überhaupt ? Läuft das Programm außerhalb von Delphi, sind's 182 Zeilen - das legt nahe, daß es sich um ein Speicherauslastungsproblem handelt ... Danke! Stefan Michel |
Re: Inhalte von Stringgrid bleiben unsichtbar
Guten Morgen,
wie befüllst Du denn das StringGrid? Eine Grenze gibt es schon beim StringGrid sie wird durch die Typen von Rows and Cols bestimmt. Grüße Klaus |
Re: Inhalte von Stringgrid bleiben unsichtbar
Moin, Moin,
aber an RowCount scheint's ja nicht zu liegen, die Inhalte sind offenbar vorhanden, werden aber ab einer bestimmten Zeile nur nicht angezeigt. Seltsam. Verwendest du TStringGrid oder eine andere Komponente? |
Re: Inhalte von Stringgrid bleiben unsichtbar
Hallo Klaus,
danke für Deine Antwort. Am Befüllen liegt's nicht, sonst wären die Daten ja nicht auslesbar. Es hapert nur an der Sichtbarkeit. Ich verwende ein ganz einfaches Stringgrid mit 5 cols und einem rowcount, der entsprechend der Datenmenge gesetzt ist. Stefan |
Re: Inhalte von Stringgrid bleiben unsichtbar
um genau zu sein: ein TStrinGrid
|
Re: Inhalte von Stringgrid bleiben unsichtbar
Hast Du denn das Grid auf Defaultdrawing stehen und machst Du irgendwas in den OnDrawCell, das vielleicht Deine Zahlen überschreibt?
Grüße, Messie |
Re: Inhalte von Stringgrid bleiben unsichtbar
Vielleicht eine dumme idee, aber setzt du vielleicht im OnDrawCell die Schriftfarbe irgendwann auf weiß ?
Ansonsten zeig doch mal den Code wie du das befüllst. Gruß Ansgar |
Re: Inhalte von Stringgrid bleiben unsichtbar
nein, das mache ich nicht. ich verwende drawcell nur, um in der spalte betrag eine rechtsbündige ausrichtung zu erreichen - das funktioniert. habe drawcell auch schon weggelassen, um diese fehlerquelle zu beseitigen - trotzdem nur 163 sichtbare zeilen, wenngleich alle linksbündig :x
hallo messie, defaultdrawing ist auf true ... |
Re: Inhalte von Stringgrid bleiben unsichtbar
Na, ich denke auch: Ein bisschen Code wäre wohl jetzt sinnvoll
|
Re: Inhalte von Stringgrid bleiben unsichtbar
bitte schön:
sdat ist eine bereits gefilterte Datei, die nur die relevanten datensätze enthält:
Delphi-Quellcode:
das drawcell sollte nur auf spalte 4 (betrag) wirken, tut es auch. auch wenn ich weglasse, bleibt das problem bestehen ...
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;
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz