Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert (https://www.delphipraxis.net/158145-2-form-verknuepfen-so-dass-form2-beim-schliessen-form1-aendert.html)

Mike_ 7. Feb 2011 15:11

Delphi-Version: 7

2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Edit:\
Formname war anders als Dateiname der .pas, daher konnte ich nicht drauf zugreifen... erledigt.

Edit2:\
Auf Wunsch den Beitrag wiederhergestellt:


___

Es ging darum, von Form1 auf Form2 zu kommen und Daten nach dem schließen an Form1 zurück zu übertragen.

Das funktionierte nicht und das Problem bestand darin, dass ich nicht der Form1 Unit2 als Uses mitgeben konnte UND GLEICHZEITIG Form2 die Unit1 in der Uses Klausel.

Daher konnte ich nur entweder von Form1 auf Form2 springen oder etwas von Form2 in Form1 schreiben (Aber kam erst gar nicht zu dieser Form).

Der größte "Denkfehler" war, dass ich den Namen der Unit nahm anstatt den Namen der Form. (Siehe oben)

DeddyH 7. Feb 2011 15:12

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Schau mal hier: http://forum.delphi-treff.de/showthr...its-umschiffen

hans ditter 7. Feb 2011 15:16

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
also, du kannst ja auch noch eine weiter uses-Klausel einführen. Die ist dann nur weiter unten angesiedelt. Da gibt's dann auch kein Problem mit dieser Doppelverlinkung...
Delphi-Quellcode:
interface

{...}

uses Unit1;

implementation
(ungetestet)
Wie gesagt, ungetestet, aber so in etwas müsste das auch gehen...

LG, hans ditter

DeddyH 7. Feb 2011 15:17

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Das hatte ich im verlinkten Thread auch erwähnt, allerdings auch, dass das nicht gerade schön ist.

[edit] Und wenn schon so, dann aber die uses-Klausel hinter das "implementation" ;) [/edit]

hans ditter 7. Feb 2011 15:23

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Zitat:

Zitat von DeddyH (Beitrag 1080119)
Das hatte ich im verlinkten Thread auch erwähnt, allerdings auch, dass das nicht gerade schön ist.

[edit] Und wenn schon so, dann aber die uses-Klausel hinter das "implementation" ;) [/edit]

ups :oops: ... nächstes Mal doch ein bisschen lesen... hab nur wenig Zeit, muss gleich schon wieder los, deshalb. Naja, aber es ginge auf jeden Fall so. ;)

Klaus01 7. Feb 2011 15:25

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
...
nachdem die Form2 nach showModal wieder geschlossen ist
kannst Du z.b. mit Form2.getData Deine Daten aus der Form2 abholen.
getData ist dann als public Methode in der Form2 zu definieren.

Nachtrag:
Obwohl man die Datenhaltung in einer Form auch überdenken sollte.

Grüße
Klaus

p80286 7. Feb 2011 15:26

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Und warum nicht so:
Delphi-Quellcode:
...
form2.ShowModal;
wert1:=form2.Wert1;
...
Gruß
K-H

Mike_ 7. Feb 2011 15:33

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Zitat:

Zitat von p80286 (Beitrag 1080123)
Und warum nicht so:
Delphi-Quellcode:
...
form2.ShowModal;
wert1:=form2.Wert1;
...
Gruß
K-H

Das ist mehr als "Basiswissen", funktionierte bei mir jedoch nicht.

Grund: Siehe Edit im ersten Post.

Ich hatte nicht beachtet dass das Programm einen anderen Namen hat als der Unitspeichername... daher konnte er es nicht finden... :?

SirThornberry 7. Feb 2011 16:33

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Zitat:

Zitat von Mike_ (Beitrag 1080128)
Grund: Siehe Edit im ersten Post.

Wärest du bitte so nett den Ausgangspost wiederherzustellen? Ansonsten machst du alle nachfolgenden Beiträge wertlos.

David Martens 10. Feb 2011 15:32

AW: 2 Form verknüpfen, so dass Form2 beim Schließen Form1 ändert
 
Das sollte recht einfach sein.

in einer Unit (abc.pas):

Delphi-Quellcode:
type
  TGrundForm = class(TForm)
  // alle benötigte Variablen hier erstellen und ggf. als Property abgeben
Form2 davon ableiten: TForm2 = class(TGrundForm) und beim OnFormClose die nötigen Variablen setzen.

Im uses teil der Form1 unit abc mit angeben. OnClose Event von Form2 abfangen und dort nach TGrundForm casten und die gesetzten Properties auslesen.

Damit umgehst du zirkuläre Abhänigkeiten. Du kannst natürlich auch alles in einer Unit packen, dann mußt du Form2 nur manuell anzeigen.

Viel Spaß

David


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