
Lange Zeit ist's her, dass ich ein Problem hatte, nun bin ich wieder da. Und zwar mit ewas, was ich einfach nicht verstehe.
Ich wollte in einem record, welches folgendermaßen deklariert ist:
Code: Alles auswählen
TCharData = record
Categ: array of string;
Data: array of string;
Check: array of integer;
Dann habe ich folgende Prozedur zum Schreiben von Daten:
Code: Alles auswählen
procedure TForm1.DataSave;
var CharData: TCharData;
x: integer;
begin
if Button1.Caption='Speichern' then
begin
x:=ListView1.ItemIndex;
end
else if Button1.Caption='Hinzufügen' then
begin
SetLength(CharData.Categ, 1); //nur als Test eingebaut, damit überhaupt etwas in die Arrays geschrieben wird
SetLength(CharData.Data, 1);
SetLength(CharData.Check, 1);
ShowMessage('CharData.Categ länge: '+IntToStr(Length(CharData.Categ))); //Überprüfung
x:=length(CharData.Categ)-1;
end
CharData.Categ[x]:=Edit3.Text;
CharData.Data[x]:=Edit4.Text;
CharData.Check[x]:=RadioGroup1.ItemIndex;
end;
Das ist aber nicht das Problem, sondern viel eher diese Prozedur:
Das Abrufen der Daten:
Code: Alles auswählen
procedure TForm1.DataLoad;
var CharData: TCharData;
x, i, n, z: integer;
begin
x:=-1;
n:=0;
repeat
x:=x+1;
ShowMessage(IntToStr(length(CharData.Categ))); //Nochmaliges Überprüfen, welche Infos jetzt drinnen sind -> FEHLER
ShowMessage(IntToStr(ListView1.ItemIndex));
ShowMessage(CharData.Categ[0]);
until (CharData.Categ[x]=ListView1.Items.Item[ListView1.ItemIndex].Caption)
or (x=length(CharData.Categ)-1);
if CharData.Categ[x]<>ListView1.Items.Item[ListView1.ItemIndex].Caption then
begin
ShowMessage('Eintrag nicht in Datenbibliothek vorhanden!');
end
else
begin
/////////////Ab hier Code uninteressant, da eh noch nicht prüfbar gewesen/////////////////////////////
Edit3.Text:=CharData.Categ[x];
RadioGroup1.ItemIndex:=CharData.Check[x];
for z:=0 to RadioGroup1.Items.Count-1 do
begin
RadioGroup1.Items[z]:='';
end;
for i:=1 to length(CharData.Data[x]) do
begin
if CharData.Data[x][i]=',' then
begin
n:=n+1;
end
else if (CharData.Data[x][i]=' ') and (CharData.Data[x][i-1]=',') then
begin
end
else
begin
RadioGroup1.Items[n]:=RadioGroup1.Items[n]+CharData.Data[x][i];
end;
end;
end;
end;
Danke für alle Hinweise und LG

ConcAPPtLab