![]() |
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: |
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.
|
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:
der Aufruf aus Form1
TForm2 = class(TForm)
//deine Komponenten private FListWert : string; procedure SetListWert(wert:string); public property ListWert read FListWert; end; implementation //
Code:
Über die Eigenschaft ModalResult von TButton kannst du den Rückgabewert der Funktion SowModal bestimmen//programm davor if Form2.showModal = mrOk than //Programm wartet hier bis Form2 geschlossen wird List.Add(Form2.ListWert); //programm danach 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 |
Re: Daten übergabe
Delphi-Quellcode:
[Fehler] erstellen.pas(67): Eigenschaft 'ListWert' existiert nicht in Basisklasse
|
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
|
Re: Daten übergabe
Hast Du im Forum nachgeschaut???
Ich habe nämlich das selbe schon gefragt!! Schaus Dir doch einfach an... Gruß Mitchl |
Re: Daten übergabe
Meinst du den Beitrag hier:
![]() 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: |
Re: Daten übergabe
|
Re: Daten übergabe
oh man, das geht zwar ohne probleme, aber den code zu verstehen . . . :)
danke dir! gruß pump :angel: |
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 13:00 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