![]() |
Probleme beim abrufen von arrays
hey ich bin ein blutiger Anfänger und hoffe ihr könnt mir helfen. Ich soll eine Art Miniatur-Datenbank programmieren.
Hier mal alles auf einem Blick
Delphi-Quellcode:
type tperson=
record Vorname: string; Name : string; Alter : integer; end; var person: array [1..100]of tperson; procedure TForm1.Button1Click(Sender:TObject); var i:integer; begin for i:= 1 to 100 do begin if person[i].Vorname= '' then begin person[i].Vorname:= edit1.text; person[i].Name:= edit2.Text; person[i].Alter:= strtoint(edit3.Text); exit end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin edit1.text:=''; edit2.text:=''; edit3.text:=''; end; procedure TForm1.Button3Click(Sender: TObject); var i:integer; begin for i:= 1 to 100 do begin if edit4.Text = person[i].Name then exit; edit2.Text:= person[i].Name; edit1.Text:= person[i].Vorname; edit3.Text:= inttostr(person[i].Alter); edit4.Text:= ''; end; end; end. Mein Problem ist, das wenn ich in der letzten Procedure einen Namen eingebe, damit das Programm die dazu gehörige Person findet, zeigt er mir entweder die letzte auf einen Array gespeicherte Person an oder nur Nullen. Wr echt nett wenn ihr mir helfen könntet:) |
AW: Probleme beim abrufen von arrays
Zitat:
|
AW: Probleme beim abrufen von arrays
Hallo cello und herzlich willkommen :dp:
Wie bereits erwähnt ist es sehr ratsam, wenn du deinen Quellcode mit
Code:
formatieren würdest. Ist einfach übersichtlicher :)
[delphi][/delphi]
Delphi-Quellcode:
Das Array wird durchlaufen und springt, sobald der Datensatz gefunden wurde, durch das exit noch vor dem Füllen der Felder aus der Prozedur. Weiterhin wird Edit4 beim ersten Eintrag schon wieder zurück gesetzt, so dass die Bedingung gar nicht mehr vorhanden ist. Eigentlich sollte das so aussehen:
procedure TForm1.Button3Click(Sender: TObject);
var i:integer; begin for i:= 1 to 100 do begin if edit4.Text = person[i].Name then exit; edit2.Text:= person[i].Name; edit1.Text:= person[i].Vorname; edit3.Text:= inttostr(person[i].Alter); edit4.Text:= ''; end; end;
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var i:integer; begin for i:= 1 to 100 do begin if edit4.Text = person[i].Name then begin edit2.Text:= person[i].Name; edit1.Text:= person[i].Vorname; edit3.Text:= inttostr(person[i].Alter); edit4.Text:= ''; end; end; end; |
AW: Probleme beim abrufen von arrays
Erstmal danke sehr :) musste es dank Internet Problemen am Handy eingeben und das hat sich geweigert da auch nur Ansatzweise den Knopf zu Drucken und wie die Bezeichnung ist die dahinter steht wusste ich leider nicht...
|
AW: Probleme beim abrufen von arrays
Zitat:
Es funktioniert nicht |
AW: Probleme beim abrufen von arrays
Zitat:
Was geht nicht? Wenn dann mit einen break:
Delphi-Quellcode:
Wenn der Name, der im Edit4 eingegeben wurde, gefunden wurde, dann werden die 3 Edits beschrieben und Edit4 geleert.
procedure TForm1.Button3Click(Sender: TObject);
var i:integer; begin for i:= 1 to 100 do begin if edit4.Text = person[i].Name then begin edit2.Text:= person[i].Name; edit1.Text:= person[i].Vorname; edit3.Text:= inttostr(person[i].Alter); edit4.Text:= ''; break; end; end; end; Die Schleife läuft aber weiter. Ist dann der Name des nachfolgenden Array-Eintrags auch leer (also nil), dann wird aus diesem Array-Element gelesen. [Edit] "exit" gegen "break" getauscht - ist richtiger bei Schleifen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 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