![]() |
Delphi-Version: XE7
Variablen, Prozeduren in mehreren Units
Hallo zusammen,
Ich steh grad ziemlich an..., ist vielleicht auch eine dumme Frage... Ich habe mehrere Units(Forms) Im 1. Form/Unit definiere ich eine Variable die ich auch in Form/Unit3 brauche (in einer procedure) diese procedure will ich aber in Form 1 aufrufen. Bisher habe ich halt immer die benötigten Units in der Uses-clausel bekannt gemacht und konnt so auf Variablen und proceduren zugreifen. Das geht hier ja nicht. Das Programm kompiliert ja nicht da es sich im Kreise dreht Unit1, Unit3, Unit1, Unit3 usw. Wie muss ich das machen dass ich die procedure trotzdem verwenden kann? Danke Seph |
AW: Variablen, Prozeduren in mehreren Units
Auslagern in gemeinsam genutze Unit oder Einmbinden im Implementationsteil
|
AW: Variablen, Prozeduren in mehreren Units
Schlechtes Design würde ich sagen. Wenn man das ganze in Klassen packt, sollte sich das Problem von alleine lösen.
|
AW: Variablen, Prozeduren in mehreren Units
Danke für die schnelle Antwort,
hört sich einfacher an als es ist. An das Auslagern habe ich auch schon gedacht... nur: Die Variable kommt aus Form1(Unit1) aus einem Edittext-Feld und wird via buttonclick gespeichert. Wird dann in Unit3 gebraucht damit in einer procedure eine serverabfrage gemacht werden kann die daten holt, die dann in dieser procedure eine combobox gefüllt werden wenn die procedure aufgerufen wird. die Combobox befindet sich in Form2. Zu erwähnen: Form1 ruft Form2 auf, und kennt Unit3 (da sie ja die procedure auslöst), aber Unit3 soll Form1 kennen... :? die procedure in Unit1 zu implementieren ist blöd, da ich für diese procedure (und weitere) extra diese Unit 3 geschaffen habe. |
AW: Variablen, Prozeduren in mehreren Units
@ Luckie: Deine Antwort erst grad gesehen...
Nun ich programmiere noch nicht so lange in Delphi, habe bis jetzt keine Klassen gebraucht... (Vielleicht zu erwähnen, es handelt sich um eine App, die verschiedenen Forms sollen die Activities darstellen. (Ich dachte in Java hatte ich dieses Problem nicht -aber der Aufbau ist auch anders...)) |
AW: Variablen, Prozeduren in mehreren Units
Dann wäre das doch mal eine Gelegenheit sich damit zu beschäftigen. Dann kann man auch gleich den Code von der Oberfläche trennen.
|
AW: Variablen, Prozeduren in mehreren Units
Hallo,
Zitat:
Erzeuge ein Daten Modul (wie ein weiteres Formular, nur ohne Grafik) Definiere dort eine Variable z.B. Zugangsdaten: string; Binde das Datenmodul in allen Units mittels USES ein, in denen Du die Variable brauchst und schon kannst Du Deinen Wunsch realisieren. Wie Du gelesen hast geibt es da auch noch andere Wege, aber da kann ich Dir nicht weiter helfen (mit denen ärgere ich mich auch noch rum). Gruß Heiko P.S. Kannst mal das hier lesen : ![]() ![]() ![]() ![]() ![]() ![]() |
AW: Variablen, Prozeduren in mehreren Units
Hallo,
als Anfänger würde ich die gemeinsam genutzten Variablen z.B. X erst mal in das Main-Form ins public packen. Das MainForm kann per uses in den Implementation-Teil der anderen Units rein und der Zugriff erfolgt über MainForm.X. MainForm (oder Form1, wie auch immer das Form heisst) ist immer initialisiert, passt also. Der nächste Schritt sind - aus der Variable ein Property machen - aus den Variablen eine Klasse, die im Public des Mainforms ist - Klasse auslagert, Singleton usw. Aber alles der Reihe nach. Heiko |
AW: Variablen, Prozeduren in mehreren Units
Zitat:
Noch andere Möglichkeit: Du verwendest Klassen, in denen du die benötigten Parameter als Properties zur Verfügung stellst. |
AW: Variablen, Prozeduren in mehreren Units
Hast du das so gemacht?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; {...} implementation {$R *.dfm} uses Unit2; end.
Delphi-Quellcode:
Das sollte eigentlich keine Probleme bereiten.
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; {...} implementation {$R *.dfm} uses Unit1; end. |
AW: Variablen, Prozeduren in mehreren Units
An Alle: Danke für die Antworten, werde ich mir alles mal noch zu Gemüte führen und später auch so verwenden. Aber jetzt muss es einfach mal laufen.
@ Kralle: Ja ein Datenmodul habe ich drin, verwende es für die Serverabfrage. Aber jetzt: Danke Popov! -Das war des Rätsels Lösung. :-D:-D:-D |
AW: Variablen, Prozeduren in mehreren Units
Zitat:
|
AW: Variablen, Prozeduren in mehreren Units
Außerdem ist das die schlechteste aller Alternativen, aber das wurde ja bereits zumindest angedeutet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 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