Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prozeduren aus Unit1 aus Unit2 Starten. (https://www.delphipraxis.net/81089-prozeduren-aus-unit1-aus-unit2-starten.html)

elk 20. Nov 2006 21:00


Prozeduren aus Unit1 aus Unit2 Starten.
 
Hi,

Ich hab Form1 und Fomr2 (dementsprechend auch unit 1 und 2),

Ich möchte aus Form1 per button Form2 starten.

Das geht super indem ich in unit1 unter "uses" unit2 eintrage.

Jetzt gebe ich in Form2 was ein und rechne damit in unit2 durch die gegend.
Wenn ich fertig bin soll die Prozedur"xy" aus Unit1 gestartet werden

( die holt sich dann den Wert mit dem ich gerechnet hab und macht in Unit1 weiter)


---------

So dachte ich mir das ... doch wie bekomme ich die prozedur aus Unit1 aus Unit2 heraus gestartet?
-einfach Unit1.xy; hinschreiben geht ja net, weil der Unit 1 ja nicht kennt.
-Unit1 in uses bei Unit2 eintragen geht ja auch net.

Was nun?

___
hab schon kreftig gegoogled aber nix gefunden :(

Matze 20. Nov 2006 21:05

Re: Prozeduren aus Unit1 aus Unit2 Starten.
 
Wenn du es im Implementationabschnitt machst, geht es in den meisten Fällen:

Delphi-Quellcode:
implementation

  uses
    Unit1;

mkinzler 20. Nov 2006 21:06

Re: Prozeduren aus Unit1 aus Unit2 Starten.
 
Wenn du es unbedingt so machen willst, mußt du Unit1 in Implementation-Teil der Unit2 einzubinden.

elk 21. Nov 2006 08:45

Re: Prozeduren aus Unit1 aus Unit2 Starten.
 
Ok - das Funktioniert.

"Wenn du es unbedingt so machen willst,"

Kann ich denn eine Form 2 ohne eine unit 2 aufrufen --- oder wie würdest du das denn machen
wenn eine 2. Form erscheinen soll - da tippt man was ein und dann soll sie bei klick auf ok wieder verschwinden?

Der_Unwissende 21. Nov 2006 08:56

Re: Prozeduren aus Unit1 aus Unit2 Starten.
 
Zitat:

Zitat von elk
Kann ich denn eine Form 2 ohne eine unit 2 aufrufen --- oder wie würdest du das denn machen
wenn eine 2. Form erscheinen soll - da tippt man was ein und dann soll sie bei klick auf ok wieder verschwinden?

Hi,
also erstmal ist es immer ganz schlechter Stil, wenn du die Units über Kreuz einbindest. Das geht immer anders (sauber halt). Ein Formular sollte immer nur die Anzeige beinhalten, alles was mit Daten gemacht wird kannst du leicht in eine eigene Unit (ohne Formular) einfügen. Diese kann dann in jedem Formular eingebunden werden. Während sich das Design deiner Formulare häufig ändert, ist dies bei der Logik (was mit den Daten passiert) eher selten der Fall, du profitierst also von der Trennung.

Was das schließen angeht, so kannst du in der Behandlung des Button-Click einfach ein self.Close einfügen, dann wird das geöffnete Formular geschlossen. Schließen heißt dabei nur, dass es nicht mehr sichtbar ist, die Daten bleiben vollständig erhalten. Die kann Form1 (dass ja Form2 kennt) in Ruhe auslesen und verarbeiten. Du kannst zudem das Form2 modal anzeigen (ShowModal), das heißt dass du erst das Form2 schließen musst, bevor du wieder mit Form1 arbeiten kannst.

Gruß der Unwissende


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