![]() |
Sichtbarkeit Werte in StringGridzelle
Hallo liebe Gemeinschaft,
In einer Anwendung benutze ich ein StringGrid und will die erste Spalte in einer For Schleife von Zeile 1 bis Zeile 31 mit Werten füllen. Beim Debugger kann ich im Fenster „Überwachte Ausdrücke“ die eingetragenen Werte sehen. Bei der Vorgehensweise For i:=1 to 31 do Begin StringGrid.cells[0,1]:=IntToString(i); End; erscheinen im Debuggerfenster “überwachte Ausdrücken“ alle Werte von 1 bis 31 nur im StringGrid selbst sind sie nicht sichtbar. Wenn ich die Zeile über die Anweisungen StringGrid.cells[0,0]:=‘1‘ ,StringGrid.cells[0,1]:=‘2‘ bis StringGrid.cells[0,30]:=‘31‘ fülle sind die Werte sichtbar In den Options habe ich die Eigenschaften goEditing und goAlwaysShowEditor auf true gesetzt. Wie ist das Problem der Sichtbarkeit zu lösen. |
AW: Sichtbarkeit Werte in StringGridzelle
Zitat:
|
AW: Sichtbarkeit Werte in StringGridzelle
Danke Sebastian für die Info.
Die falsche Schreibweise von InToString ist ein Übertragungsfehler. Beim Debugger der Anwendungen hätte der Compiler gemeckert. Das Schreiben der Werte in eine Zelle habe ich bewußt zu Testzwecken gemacht, es ist einfacher den Verlauf im Debuggerfenster "Überwachte Ausdrücke" zu verfolgen. Dort kann ich sehen, das die Werte wie erwünscht in die Zelle eingetragen werden, nur in der Zelle selber sind sie nicht sichtbar. Viele Grüße vesila |
AW: Sichtbarkeit Werte in StringGridzelle
Delphi-Quellcode:
das ist immer dieselbe Zelle, unabhängig davon, welchen Wert i gerade hat.
StringGrid.cells[0,1]
|
AW: Sichtbarkeit Werte in StringGridzelle
Danke DeddyH für die Info.
Das Schreiben der Werte in eine Zelle habe ich bewußt zu Testzwecken gemacht, es ist einfacher den Verlauf im Debuggerfenster "Überwachte Ausdrücke" zu verfolgen. Dort kann ich sehen, das die Werte wie erwünscht in die Zelle eingetragen werden, nur in der Zelle selber sind sie nicht sichtbar. Mir geht es um die Sichtbarkeit. Warum sind die eingetragenen Werte nicht in der STringGridzelle sichtbar. Viele Grüße vesila |
AW: Sichtbarkeit Werte in StringGridzelle
Geht das ?(Ich habe es selbst nicht getestet)
Delphi-Quellcode:
Procedure Test;
var Grid:tStringGrid; aRow, aCol:integer; Begin Grid := tStringGrid.Create(Application.Mainform); Grid.parent := Application.Mainform; Grid.Align := AlClient; Grid.Rowcount := 50; Grid.Colcount := 50; Grid.Visible := true; For aRow := 0 to Grid.Rowcount-1 do For aCol := 0 to Grid.Colcount-1 do Grid.Cells[aCol,aRow] := inttoStr(aCol)+','+inttostr(aRow); Application.Processmessages; end; |
AW: Sichtbarkeit Werte in StringGridzelle
Dein Code wird nur in der ersten Zelle (0,1) den Wert "31" anzeigen, sonst nichts. Das ist der letzte Wert deiner FOR Schlaufe, bei der du bei jedem Druchlauf die erste Zelle (0,1) überschreibst. Wie schon geschrieben, müsste es StringGrid.cells[0,i]:=IntToString(i) heissen.
Folgendes funktioniert wie es soll:
Delphi-Quellcode:
var
i: integer; begin StringGrid1.RowCount := 32; // 32 Zeilen, da du erst ab der 2. abfüllst. Die erste Zeile wäre 0. for i := 1 to 31 do // ab der 2. Zeile werden die folgenden 31 Zeilen der ersten Spalte abgefüllt begin StringGrid1.cells[0,i]:=IntToStr(i); end; end; |
AW: Sichtbarkeit Werte in StringGridzelle
vesila möchte in der Zelle [0,1] den jeweiligen Wert von i sehen. Das da immer in die gleiche Zelle geschrieben wird ist bekann und gewollt, um beim Debuggen dort sehen zu können, ob jeweils der entsprechende Wert erscheint.
Die insgesamt 32 Werte sind beim Debuggen aber ausnahmslos nicht zu sehen. Es müsste aber beobachtet werden können, dass sich der Wert von Zelle [0,1] 32mal ändert. Dem ist aber nicht so. Nur der Wert in den überwachten Ausdrücken ändert sich. Sprich: Bei i = 31 steht in den überwachten Ausdrücken für die Zelle [0,1] der Wert 31. Aber dieser Wert ist im Stringgrid in der Anzeige nicht sichtbar. Es gibt also einen Unterschied zwischen dem überwachten Ausdruck für Zelle [0,1] und der Anzeige im Grid. Die Frage ist: Warum? |
AW: Sichtbarkeit Werte in StringGridzelle
Sehe das Problem nicht wirklich, da das bei mir problemlos funktioniert, auch wenn ich Cells[0,1] abfülle und abfrage. Da steht bei jedem Durchlauf der Wert von i drin, wie es zu erwarten ist. Der Breakpoint habe ich auf dem "end" der For-Schlaufe und seheh dann jeweils den aktuellen Wert von i in Cell[0,1].
Leider ist sein OP recht unklar und verwirrend. Mir ist auf jeden Fall noch nicht klar was sein Problem denn nun genau ist. |
AW: Sichtbarkeit Werte in StringGridzelle
Zitat:
Anstatt in der Schleife die Variable
Delphi-Quellcode:
zu nutzen, wurde eine statische
i
Delphi-Quellcode:
verwendet.
1
Was jetzt so wer daran ist, diesen Fehler bei sich zu beheben .... keine Ahnung, es wurde ja nichts weiter zu gesagt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 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