Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Daten übergabe (https://www.delphipraxis.net/69028-daten-uebergabe.html)

Pump3r 9. Mai 2006 12:44


Daten übergabe
 
Hi!

Ich habe Form1 und Form2
in Form1 habe ich eine Liste und einen Button.
Ich drücke diesen Button und Form2 wird aufgerufen.
In Form2 gibt es auch einen Button, wenn ich diesen drücke, soll es in Form1 in die Liste einen Eintrag machen.
Aber das geht doch nicht oder? Ich kann die Units ja in den uses nicht überkreuzen oder?




Gruß Pump :angel:

mkinzler 9. Mai 2006 12:47

Re: Daten übergabe
 
Sollte man nicht, wenn du aber Unit ein im Implementation-Teil von Unit2 einbindest solte es gehen. Besser wäre aber nu in eine Richtung einzubinden und die daten dann von Form1 holen zu lassen.

Neon-chan 9. Mai 2006 13:15

Re: Daten übergabe
 
Gibt 2 Möglichkeiten das zu lösen:

1. schnell aber nicht so elegant: Du gibst Form2 die benötigten Werte als property (read only am besten) und liest diese propertys aus

Form 2 Eigenschaften

Code:
  TForm2 = class(TForm)
    //deine Komponenten
  private
    FListWert : string;
    procedure SetListWert(wert:string);
  public
    property ListWert read FListWert;
  end;

implementation
//
der Aufruf aus Form1

Code:

//programm davor

if Form2.showModal = mrOk than
  //Programm wartet hier bis Form2 geschlossen wird
  List.Add(Form2.ListWert);


//programm danach
Über die Eigenschaft ModalResult von TButton kannst du den Rückgabewert der Funktion SowModal bestimmen


2. eleganter aber schwerer zu programmieren wenn man es noch nicht gemacht hast: du lässt Form2 ein Event auslösen wenn die Werte eingetragen werden sollen und übergibst so die Werte


Eingebunden wird jeweils nur die Uses Form2 in Form1 nicht andersrum

Pump3r 9. Mai 2006 14:20

Re: Daten übergabe
 
Delphi-Quellcode:
[Fehler] erstellen.pas(67): Eigenschaft 'ListWert' existiert nicht in Basisklasse

Neon-chan 9. Mai 2006 15:02

Re: Daten übergabe
 
Den Wert musst du ja auch erstellen..oben steht doch als erster code die Deklaration der TForm2 Klasse..du erstellst dir n neues Formular, ziehst dir zusammen was du brauchst und gibst dem dann noch die property dazu (s. Codebeispiel) dann fügst die Unit des Formulares in die uses deiner Mainunit ein und dort erstellst dir ne Instanz von der Klasse TForm2 und rufst diese auf (wo du sie halt brauchst)
Code:
myForm2.ShowModal

Mitchl55 9. Mai 2006 15:57

Re: Daten übergabe
 
Hast Du im Forum nachgeschaut???

Ich habe nämlich das selbe schon gefragt!!

Schaus Dir doch einfach an...

Gruß

Mitchl

Pump3r 10. Mai 2006 08:02

Re: Daten übergabe
 
Meinst du den Beitrag hier: http://www.delphipraxis.net/internal...ghlight=mitchl ?

Naja das ist aber eigentlich nicht das selbe, wie ich was von form 1 in 2 übergeben kann, weiß ich. :)

Hab nur Probleme mit dem "andersrum"..



Gruß Pump, :angel:

Sharky 10. Mai 2006 08:20

Re: Daten übergabe
 
Hai Pump3r,

Du kannst dir ja einmal mein Beispiel aus diesem Posting ansehen.

Pump3r 10. Mai 2006 08:39

Re: Daten übergabe
 
oh man, das geht zwar ohne probleme, aber den code zu verstehen . . . :)
danke dir!


gruß pump :angel:

Sharky 10. Mai 2006 09:10

Re: Daten übergabe
 
Eigentlich ist es ganz einfach.

Die Form1 hat eine Methode procedure WMCOPYDATA(var msg: TWMCopyData); message WM_COPYDATA;.
Diese wird ausgeführt wenn an das Fenster (Handel) mit SendMessage() eine WM_Copydata Nachricht gesendet wird.
In CopyDataStruct steht dann der Record der übergeben wird und seine Länge.

Das ist eingetlich schon alles.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 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