![]() |
AW: Datenbank überschreibt inhalte
Nein! Was Dein Array enthält, sind lediglich Zeiger und keine Daten. Die Objekte musst Du selbst anlegen, das ist nicht so wie bei primitiven Datentypen wie Integer oder Char.
|
AW: Datenbank überschreibt inhalte
hast du nen quellcode für mich?
ich habs so aber auch mal geschaft ((ANDERES PROGRAMM))
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Artikel:=TArtikel.create; Hilf:=edit1.text; Artikel.set_Art_Nr(Hilf); Hilf:=edit2.text; Artikel.set_Art_Bez(Hilf); PHilf:=strtofloat(edit3.text); Artikel.set_Preis(PHilf); AHilf:=strtoint(edit4.text); Artikel.set_Anzahl(AHilf); Pool.Hinzufuegen(Artikel); Pool.Ausgabe(Listbox1); end;
Delphi-Quellcode:
[Edit]und dieses Programm hat funktioniert[/EDIT]
Type TPool = class
inhalt:array[1..100000]of TArtikel; Anzahl:integer; constructor create; procedure Hinzufuegen(x:TArtikel); procedure Ausgabe(x:TListbox); procedure Art_Suche(Art_Nr:string;L:TLabel); procedure Sortieren_Nr(L:TListbox); procedure Sortieren_Bez(L:TListbox); end; implementation constructor TPool.create; begin Anzahl:=0; inherited create; end; procedure TPool.Hinzufuegen(x:TArtikel); begin Anzahl:=Anzahl+1; Inhalt[Anzahl]:=x; end; procedure TPool.Ausgabe(x:TListbox); var Produkt:integer; Hilf1,Hilf2,Hilf3,Hilf4:string; begin x.clear; for Produkt:=1 to Anzahl do begin Hilf1:=inhalt[Produkt].get_Art_Nr; Hilf2:=inhalt[Produkt].get_Art_Bez; Hilf3:=floattostr (inhalt[Produkt].get_Preis); Hilf4:=inttostr (inhalt[Produkt].get_Anzahl); x.items.add(Hilf1+' - '+Hilf2+' - '+Hilf3+' - '+Hilf4) end; end; |
AW: Datenbank überschreibt inhalte
Da hast Du ja auch bei jedem Klick ein neues Objekt erstellt, hier aber nicht. Mal angenommen, Du baust ein Haus und streichst es weiß an. Den Schlüssel legst Du in eine Schachtel. Nun legst Du einen zweiten Schlüssel zu diesem Haus in eine andere Schachtel und streichst das Haus grün. Wenn Du nun den Schlüssel aus der ersten Schachtel nimmst, kannst Du damit das weiße Haus aufschließen?
[edit] Den Quellcode habe ich doch bereits gepostet, statt mit mir zu diskutieren hättest Du den ja einmal ausprobieren können ;) [/edit] |
AW: Datenbank überschreibt inhalte
weil Du hier
Delphi-Quellcode:
ein Objekt übergibst, welches Du vorher erzeugt haben musst.
procedure TPool.Hinzufuegen(x:TArtikel);
begin Anzahl:=Anzahl+1; Inhalt[Anzahl]:=x; end; |
AW: Datenbank überschreibt inhalte
Genau davon rede ich doch die ganze Zeit.
|
AW: Datenbank überschreibt inhalte
ah danke habe einfach vor jeden Block nochmal die zeile
Delphi-Quellcode:
geschrieben jetzt geht es.
Atom:=TAtom.create;
Danke für die Hilfe |
AW: Datenbank überschreibt inhalte
Hoffentlich gibst Du die Objekte aber zum Schluss auch wieder frei.
|
AW: Datenbank überschreibt inhalte
in einer Ausgabe? also so wie ich es jetz mache geht es
Delphi-Quellcode:
Atom:=TAtom.create;
//... Atom.set_Atomname('Natrium'); Atom.set_Atomsymbol('Na'); Atom.set_Atomserie('Erdalkalimetalle'); Atom.set_Atomaussehen('silbrig weiß'); Atom.set_Atomaggregatzustand('Fest'); Atom.set_Atomgefahren1('Leichtentzündlich (F)'); Atom.set_Atomgefahren2('Ätztend (C)'); Atom.set_Atomordnungszahl(11); Atom.set_Atommasse(23); Atom.set_Atomschmelztemperatur(97.72); Atom.set_Atomsiedetemperatur(883); Atom.set_Atomdichte(0.968); Atom.set_AtomEN(0.93); Atom.set_Atomoxidationszahl1(1); Periodensystem.Hinzufuegen(Atom); //... |
AW: Datenbank überschreibt inhalte
z.B. im Destructor von Periodensystem
Delphi-Quellcode:
for i := Low(AA) to High(AA) do if Assigned(AA[i]) then AA[i].free;
|
AW: Datenbank überschreibt inhalte
Oder
Delphi-Quellcode:
FreeAndNil(AA[i]);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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 by Thomas Breitkreuz