![]() |
Delphi-Version: XE2
Fehler im for loop
Hallo,
ich bin neu hier und bin mir gerade nicht sicher, ob das Thema hierhin gehört. Ich programmiere in Lazarus v1.0.4 Ich habe eine Listbox mit bis zu 64 Einträgen und für die Verarbeitung möchte ich jetzt jedem Indexplatz einer Variablen zuweisen.
Delphi-Quellcode:
Beim kompilieren wird allerdings nicht die p*-Variable erkannt (Error: Identifier not found "p")
procedure TForm1.Round_1_CreateClick(Sender: TObject);
var p1, p2, p3, ......, p64 : String; i, j, num_players : Integer; begin num_players := Form1.Playerlist.Items.Count; for i := 1 to num_players do begin; j := i-1; p[i] := Form1.Playerlist.Items.Strings[j]; end; end; Was mache ich falsch? Danke für die Hilfe. |
AW: Fehler im for loop
Mir scheint, Du suchst ein Array.
Delphi-Quellcode:
var
p: array[1..64] of String; |
AW: Fehler im for loop
und sollte die Schleife nicht von 0 bis count -1 laufen?
Delphi-Quellcode:
oder verhält sich lazarus bei Listen da anders?
begin
num_players := Form1.Playerlist.Items.Count; for i := 0 to num_players -1 do begin; j := i-1; p[i] := Form1.Playerlist.Items.Strings[j]; end; end; Das Array sollte dann auch bei 0 starten. Grüße Klaus |
AW: Fehler im for loop
Mit dem Array funktionierts nach kurzem Umbau.
Delphi-Quellcode:
Ich fange nicht bei p0 an, damit ich später nicht durcheinander komme, da p1 = Player 1.
procedure TForm1.Round_1_CreateClick(Sender: TObject);
var i, j : Integer; p : array[1..64] of string; //steht eigentlich in der globalen var begin num_players := Form1.Playerlist.Items.Count; //Items.Count fängt bei 1 an for i := 1 to num_players do begin; j := i-1; p[i] := Form1.Playerlist.Items.Strings[j]; //Items.Strings fängt bei 0 an, daher j := i-1 end; end; Vielen Dank. |
AW: Fehler im for loop
Hallo,
du brauchst keine zusätzliche Variable um eins abzuziehen anstatt:
Delphi-Quellcode:
geht das: (j brauchst nicht mehr)
for i := 1 to num_players do
begin; j := i-1; p[i] := Form1.Playerlist.Items.Strings[j]; //Items.Strings fängt bei 0 an, daher j := i-1 end;
Delphi-Quellcode:
oder das:
for i := 1 to num_players do
begin; p[i] := Form1.Playerlist.Items.Strings[i - 1]; end;
Delphi-Quellcode:
for i := 1 to num_players do
begin; p[i] := Form1.Playerlist.Items.Strings[Pred(i)]; end; |
AW: Fehler im for loop
Oder das
Delphi-Quellcode:
for i := 1 to num_players do
begin; p[i] := Form1.Playerlist.Items.Strings[Dec(i)]; end; |
AW: Fehler im for loop
Zitat:
Delphi-Quellcode:
:mrgreen:
Pred(i)
|
AW: Fehler im for loop
Zitat:
Delphi-Quellcode:
ist eine Procedure und keine Function. Deswegen
Dec
Delphi-Quellcode:
Pred
|
AW: Fehler im for loop
Oder gleich das Array bei 0 anfangen und dann beides mit dem gleichen Index ansprechen :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 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