Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Daten an Formular übergeben und zurücbekommen (https://www.delphipraxis.net/29471-daten-formular-uebergeben-und-zuruecbekommen.html)

Fischli80 9. Sep 2004 13:50


Daten an Formular übergeben und zurücbekommen
 
Schönen guten Tag!

Ich habe folgendes (Anfänger?) Problem.

Ich möchte gerne ein Formular dazu benutzen die Daten eines Record Datentyps
zu editieren. Dazu ist es halt nötig die Daten von verschiedenen Punkten des
Programmes an das Edit-Formular zu übergeben. Wenn ich in diesem auf "Okay"
gehe bzw. das Fenster nach positivem Ende schließe, soll der geänderte Datentyp
an die Stelle des Programmes zurückgegeben werden von der der Aufruf kam.

Wie löse ich das am besten? Ich vermute, dass ich noch nich objektorientiert
genug denke :-)

MrSpock 9. Sep 2004 21:24

Re: Daten an Formular übergeben und zurücbekommen
 
Hallo Fischli,

die anderen Teile des Programmes können doch auf das Edit-Feld des Formulars einfach zugreifen. Oder habe ich hier nicht verstanden, was du wirklich willst?

SirThornberry 9. Sep 2004 22:02

Re: Daten an Formular übergeben und zurücbekommen
 
eigentlich recht simpel die Lösung. Im Prinzip funktioniert das ganze wie bei einem Öffnendialog auch. Folgendes ist ein abgespeckter Beispielsource für das Editform.
Delphi-Quellcode:
[...]
type
  TYourRecord = record
    Entry1: String;
    Entry2: String;
  end;
  PYourRecord = ^TYourRecord;

  TEditForm = class(Form)
  [...]
  private
    FYourRecord: PYourRecord;
  public
    function Execute(var YourRecord: TYourRecord): Boolean;
  end;

function TEditForm.Execute(var YourRecord: TYourRecord): Boolean;
begin
  FYourRecord := @YourRecord;
  result := ShowModal = mrOk;
end;

procedure TEditForm.OKButtonClick(Sender: TObject);
begin
  FYourRecord^.Entry1 := Edit1.Text;
  FYourRecord^.Entry2 := Edit2.Text;
  modalresult := mrOK;
end;

function TEditForm.AbbrechenButtonClick(Sender: TObject);
begin
  modalresult := mrCancel;
end;
der Aufruf lautet dann ganze einfach
Delphi-Quellcode:
if EditForm.Execute(MeinZuEditierenderRecord) then
   showMessage('Erfolgreich')
else
   showMessage('Nicht editiert');


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz