![]() |
Delphi-Version: 5
TStringgrid zählt nur bis 10
Hallo zusammen,
ich bin neu was das programmieren angeht und versuche heute ein Programm zu schreiben, dass in einem Stringgrid das 75 Col und 10 Rows hat diese von 1 bis 750 zu befüllen. Mein Problem ist jetzt, dass wen ich das Programm ausführe, zählt er in der 1 Zeile nur bis 10 und nicht bis 75. Woran liegt das?
Delphi-Quellcode:
Danke schon mal im voraus für die Antworten.
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i, J, z : Integer; begin z:=0; with StringGrid1 do for I := 1 to ColCount - 1 do for J:= 1 to RowCount - 1 do begin if Cells[j,i] = '' then begin inc(z); Stringgrid1.Cells[j,i] := IntToStr(z); end; end; end; end. Grüße Basti |
AW: TStringgrid zählt nur bis 10
Hallo,
ich sehe im Code keine 10 ?? Das muss du dem StringGrid schon sagen. procedure TForm1.FormCreate(Sender: TObject); var i, J, z : Integer; begin z:=0; StringGrid1.ColCount:= 75; StringGrid1.RowCount:= 10; with StringGrid1 do Und ausserdem: for I := 1 to ColCount - 1 do Die Zählung begibt bei 0, nicht bei 1. |
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
hallo,
vielleicht funktioniert dies -
Delphi-Quellcode:
'Delphi Hilfe'
var
i, j, z: Integer; begin z := 0; with StringGrid1 do begin for i := 0 to StringGrid1.RowCount - 1 do for j := 0 to stringgrid1.ColCount - 1 do begin if Cells[j, i] = '' then begin inc(z); Stringgrid1.Cells[j, i] := IntToStr(z); end; end; end; end; property Cells[ACol, ARow: Integer]: Gruß |
AW: TStringgrid zählt nur bis 10
Hallo,
das habe ich ja sogar übersehen if Cells[j,i] Cells[Col,Row] und nicht umgekehrt. |
AW: TStringgrid zählt nur bis 10
Kleine Anmerkung meinerseits: Nirgends erwähnt der TE, dass die Zahl nur eingetragen werden soll wenn die Zelle(n) leer ist/sind. Falls das zutrifft würde ich die IF-Abfrage komplett streichen - oder übersehe ich da was?!?
|
AW: TStringgrid zählt nur bis 10
Hallo,
ja, das if Cells[i, j] = '' (gleich mal die Parameter richtig vertauscht) ist etwas komisch, zumal im FormCreate nichts im Grid stehen sollte. |
AW: TStringgrid zählt nur bis 10
Ok danke das klappt jetzt soweit.
Wen ich das jetzt rückwärts machen will. Also ich starte von unten und gehe nach oben funktioniert es nicht was mach ich falsch.
Code:
procedure TForm1.Button1Click(Sender: TObject);
var i, j, z: Integer; begin z := 750; with StringGrid1 do begin for i := 750 to StringGrid1.RowCount - 1 do for j := 750 to stringgrid1.ColCount - 1 do begin if Cells[j, i] = '' then begin z := (z-1); Stringgrid1.Cells[j, i] := IntToStr(z); end; end; end; end; |
AW: TStringgrid zählt nur bis 10
Halllo,
Zitat:
die for Schleifen sagen aber was anderes. das hier ist ganz nüztlich ![]() Gruß |
AW: TStringgrid zählt nur bis 10
Zitat:
Aber ich find den Fehler nicht warum mir nichts reingeschrieben wird wen ich den Knopf drücke
Code:
procedure TForm1.Button1Click(Sender: TObject);
var i, J, z : Integer; begin z := 751; with StringGrid1 do begin for i := 750 downto 1 do for J := 750 downto 1do begin if Cells[J,i] = '' then begin z := (z)-1; Stringgrid1.Cells[J, i] := IntToStr(z); end; end; end; end; |
AW: TStringgrid zählt nur bis 10
Stelle doch das Projekt mal als zip rein dann können wir es uns anschauen.
Du scheinst wieder was falsch gemacht zu haben. Vermutlich musst du von 749 bis 0 runterzählen. Außerdem gehen deine beiden Schleifen jetzt von 750 aus... |
AW: TStringgrid zählt nur bis 10
hallo,
Die 750 können nicht stimmen. Lieber so machen.
Delphi-Quellcode:
Gruß
for i := StringGrid1.RowCount-1 downto 0 do
for J := StringGrid1.ColCount-1 downto 0 do |
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
Hallo,
beschäftige dich mal mit F5, F7 und F8. Dazu gibt es in Google schöne Videos. |
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
Hm klappt immer noch nicht.
kann mir jemand einen Hint geben was genau ich falsch mache
Code:
procedure TForm1.Button1Click(Sender: TObject);
var i, J, z : Integer; begin z := 751; with StringGrid1 do begin for i := 1 downto Stringgrid1.Rowcount -1 do for J := 1 downto Stringgrid1.ColCount -1 do begin z := (z)-1; Stringgrid1.Cells[J, i] := IntToStr(z); end; end; end; |
AW: TStringgrid zählt nur bis 10
Zitat:
Mit dem Debugger und F8 hättest du das sofort gefunden. |
AW: TStringgrid zählt nur bis 10
Hallo,
Debuggen. Ja. F5 auf die z:= 751-Zeile. Dann mit F8 loslegen. Deine .-Cells-Zele wird wahrscheinlich nie angesprungen. |
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
Zitat:
|
AW: TStringgrid zählt nur bis 10
Danke euch allen hat geklappt.:-D:-D
Gruss Basti |
AW: TStringgrid zählt nur bis 10
Moin...:P
Zitat:
Debuggen funktioniert? aktueller Code? :wink: |
AW: TStringgrid zählt nur bis 10
Jap hat funktioniert. Aber hab jetzt neue Probleme.:-D
|
AW: TStringgrid zählt nur bis 10
Zitat:
Denn wenn irgendwann jemand ein gleiches/ähnliches Problem hat, die SuFu benutzete und hier dann zwar sein Problem, aber keine Lösung findet, dann freut er sich bestimmt. :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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