AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Kopie einer Instanz

Ein Thema von stoermi · begonnen am 29. Dez 2004 · letzter Beitrag vom 29. Dez 2004
 
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Kopie einer Instanz

  Alt 29. Dez 2004, 16:18
Hallo!
Ich habe ein Problem mit einer Instanz einer eigenen Klasse.
Hier die Unit, in der das Problem auftritt...

Delphi-Quellcode:
unit buchungAnlegen;

interface

uses
...

type
  TBuchungAnlegenForm = class(TForm)
...
  end;

var
  BuchungAnlegenForm: TBuchungAnlegenForm;

implementation

{$R *.dfm}


procedure TBuchungAnlegenForm.KndEinfBtnClick(Sender: TObject);
begin
  if KundeAngebenForm.ShowModal = mrOK then
  begin
    edName.Text := KundeAngebenForm.neuerKunde.name;
    edVName.Text := KundeAngebenForm.neuerKunde.vorname;
    edStr.Text := KundeAngebenForm.neuerKunde.strasse;
    edHnr.Text := KundeAngebenForm.neuerKunde.hausnummer;
    edPlz.Text := KundeAngebenForm.neuerKunde.plz;
    edOrt.Text := KundeAngebenForm.neuerKunde.ort;
    [b]aktKunde := KundeAngebenForm.neuerKunde;
    KundeAngebenForm.neuerKunde.Free;[/b]
    BuchAufnBtn.Enabled := True;
  end;
end;

procedure TBuchungAnlegenForm.BuchAufnBtnClick(Sender: TObject);
var umb: Shortint;
    rab: Single;
    s: ShortString;
begin
  s := cbRabatt.Items[cbRabatt.ItemIndex];
  Delete(s, Length(s), 1); //Prozentzeichen entfernen
  rab := StrToFloat(s) / 100; //in Gleitkomma umrechnen und durch 100 teilen
  umb := cbBuch.ItemIndex;

  with BuchungTab do
  begin
    Active := True;
    Append;
    FieldByName('Kunde').AsInteger := [b]aktKunde.id[/b];
    FieldByName('Zimmer').AsString := aktZimmer;
    FieldByName('Anreise').AsDateTime := aktDatum;
    FieldByName('Abreise').AsDateTime := dtpAbreise.Date;
    FieldByName('Rabatt').AsFloat := rab;
    FieldByName('Umbuch').AsInteger := umb;
    Post;
    Active := False;
  end;

  FBuchung := TBuchung.Create(aktZimmer, aktKunde, aktDatum, dtpAbreise.Date, umb, rab);

...

end;

end.
In der ersten Procedure werden Edits mit den Werten der Instanz gefüllt. Das klappt super.
Dann wird die Instanz in eine Formular-eigene Instanz kopiert und die Instanz des fremden Formulars gelöscht.

Wenn ich dann jedoch in der zweiten Prozedure auf diese neue Instanz zugriefen möchte, sind die Daten weg!

Hängt das damit zusammen, dass ich mit xInst := gForm.yInst keine richtige Kopie erstelle? Ich habe das irgend wo mal gelesen, dass man nur die Adresse kopiert, und wenn man das dann free-setzt, ist es weg.

Wie macht man das dann??? Ist wahrscheinlich eine dumme Frage, aber ich bin halt dummer Anfänger! Und gefunden hab ich dazu irgedwie nix!
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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