![]() |
array-typ erforderlich
Obwohl ich ein array benütze kommt an gekenntzeichneter Stelle meines Programmcodes der Fehler: Array-typ erforderlich
Delphi-Quellcode:
var
Form1: TForm1; Position: array [1..5,1..28] of string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Zeile_eingabe, Spalte_eingabe: integer; gesucht: string; begin Zeile_eingabe:= strtoint(ed_zeile.text); Spalte_eingabe:= strtoint(ed_spalte.text); gesucht:= Position[Spalte_eingabe,Zeile_eingabe]; //Fehler Memo1.lines.clear; Memo1.lines.add(gesucht); end; procedure TForm1.FormShow(Sender: TObject); var Zeile, Spalte, stringlaenge: integer; Spalteninhalt, Zelleninhalt: string; Daten: tstrings; ZeAnzahl, wo: integer; begin Memo1.lines.clear; Daten := TStringList.Create; Daten.LoadFromFile(extractfilepath(application.exename) +'daten.txt'); ZeAnzahl:= 0; for Zeile := 1 to 28 do begin ZeAnzahl:= ZeAnzahl +1; Spalteninhalt:= Daten.strings[ZeAnzahl]; for Spalte := 1 to 5 do begin Zelleninhalt:= Spalteninhalt; wo:= pos(';', Zelleninhalt); Zelleninhalt:= Copy(Spalteninhalt,1,wo-1); Position[Spalte, Zeile]:= Zelleninhalt; stringlaenge:= Length(Spalteninhalt); Spalteninhalt:= Copy(Spalteninhalt,wo+1,stringlaenge-wo+1); end; end; Daten.free; end; |
Re: array-typ erforderlich
'Position' ist eine Property von TForm...
Edit: um so etwas zu vermeiden, solltest Du Präfixe verwenden. |
Re: array-typ erforderlich
Ja, aber dass kann doch nicht der Fehler sein, wenn Button1 auch in TForm1 liegt.
|
Re: array-typ erforderlich
Sowas kommt von den bösen globalen Variablen und davon, das TCustomForm ein Property Namens "Position" besitzt.
OK, erstmal ist es blöd, wenn es zwei "Werte" mit dem selben Namen gibt, aber hätte man dieses "Position" als private Variable der Form deklariert, dann würde sie noch vor dem "Position" der Form stehen und es wäre dieses Problem nicht aufgetreten. |
Re: array-typ erforderlich
Was hier als "Position" bezeichnet wird ist doch wohl eine "Positionssammlung" oder "Positionsarray" oder "aPositionen" oder was auch immer!
Man kann es nicht oft genug sagen, Leute nehmt vernünftige, sprechende Variablennamen. Gruß K-H Zitat:
K-H |
Re: array-typ erforderlich
Zitat:
|
Re: array-typ erforderlich
Zitat:
Delphi-Quellcode:
und nochmal alles in Kurz:
x := inherited Position;
- "ordentliche" Namen verwenden - so nach wie möglich an der Ebene deklarieren, wo es gebraucht wird (global ist am Weitesten weg) gloable Variablen liegen sozusagen in der aller untersten Deklarations-Ebene PS: TDE zeigt sogar an wo und wie das "Position" deklariert wurde. Dort hätte man mal zuerst nachsehen sollen, als dieses Problem auftrat. |
Re: array-typ erforderlich
Hallo,
Zitat:
Da es sich um ein String-Array handelt, enthält es vermutlich keine Positionen. Ein sprechender Name würde hier tatsächlich sehr zum Verständnis beitragen, weil der Dateiname ("daten.txt") leider auch keinen Aufschluss über den Inhalt gibt. Wir wissen nur, dass die Datei mindestens 29 Zeilen enthalten sollte, sonst kommt es in der FOR-Schleife zu einer Index-Überschreitung. Die erste Zeile der Datei wird offenbar nicht gebraucht. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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