Hallo zusammen,
Ich bin grad am verzweifeln
Ich habe in meinem Aktuellen Programm eine Datenbank (in seperater
Unit) welche instanzen vom Inhalt bei Start des Programmes erzeugt.
Ich habe soeben herrausgefunden (Per showmessage), dass das Programm den ersten Eintrag in der Datenbank überschreibt, und ich so immer die gleiche Augabe erhalte.
Was mich wundert: nachdem ich per doppel/ die Zeile "unsichtbar" gemacht habe welche das eintragen der letzten daten in die Datenbank beinhaltet kam immernoch der gleiche Inhalt
.
Ich würde mich sehr über hilfreiche (und für mich verständliche) Hilfe freuen.
Anbei nun die Quellcodes der entsprechenden Stellen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
Atom:TAtom;
Hilf:real;
begin
//hier steht das folgende noch 2 mal nur das es eingetragen wird!
Atom.set_Atomname('Lithium');
Atom.set_Atomsymbol('Li');
Atom.set_Atomserie('Erdalkalimetalle');
Atom.set_Atomaussehen('XXXX');
Atom.set_Atomaggregatzustand('Fest');
Atom.set_Atomgefahren1('XXXX');
Atom.set_Atomordnungszahl(3);
Atom.set_Atommasse(7);
Atom.set_Atomschmelztemperatur(180);
Atom.set_Atomsiedetemperatur(1372);
Atom.set_Atomdichte(0.534);
Atom.set_AtomEN(1.0);
Atom.set_Atomoxidationszahl1(1);
//Periodensystem.Hinzufuegen(Atom);
showmessage('LI');
end;
Das steh in der Formcreate der Unit1
Delphi-Quellcode:
procedure TForm2.Button26Click(Sender: TObject);
begin
Abkuerzung:=1;
Form3.Trage_ein;
Form3.showmodal;
end;
//...
Das war Unit2
Delphi-Quellcode:
begin
Atomzahl:=unit2.Abkuerzung;
Periodensystem.Ausgabe(Listbox1,Listbox2,Listbox3,Listbox4,Listbox5,Atomzahl);
end;
Das war unit3
Delphi-Quellcode:
constructor TPeriodensystem.create;
begin
Anzahl:=1;
inherited create;
end;
procedure TPeriodensystem.Hinzufuegen(X:TAtom);
var I:integer;
begin
showmessage(inttostr(Anzahl));
if Anzahl=3
then
for I:=1 to 2 do
showmessage(inhalt[1].get_Atomname);
Inhalt[Anzahl]:=x;Anzahl:=Anzahl+1;
end;
Und das die UPeriodensystem.
Ich danke schonmal für die Antworten.