AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Zwischen dynamischen Forms kommunizieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zwischen dynamischen Forms kommunizieren

Ein Thema von rocksoft · begonnen am 15. Feb 2014 · letzter Beitrag vom 17. Feb 2014
Antwort Antwort
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#1

AW: Zwischen dynamischen Forms kommunizieren

  Alt 15. Feb 2014, 23:05
Hallo,

ich kann aus dem Quellcode nicht erschließen was Du eigentlich erreichen möchtest (vermutlich nur so ein Testballon).

Aber: Dass Deine Vorgehensweise "in die Hose gehen muss" ist schon klar - oder?. Mit PCForm := aForm.Create (TabSheet); - die Prüfung if Assigned(aForm) then ist eigentlich unnötig wie ein Kropf - erstellst Du zwar jeweils eine Instanz von TForm2 bzw. TForm3, aber der Compiler stellt Dir doch da keine automatische Zuordnung PCForm zur Variable Form2 bzw. Form3 her (das müsstest Du schon selbst übernehmen); dementsprechend bleiben diese beiden Variablen nun mal nicht initialisiert - und damit muss es beim Zugriff auch scheppern.

Vielleicht erklärst Du erst mal was Du eigentlich vor hast und letztlich erreichen möchtest; gekoppelt an die Frage: "Wie könnte man das dann elegant lösen?"

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von rocksoft
rocksoft

Registriert seit: 7. Mär 2003
54 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Zwischen dynamischen Forms kommunizieren

  Alt 16. Feb 2014, 06:15
Hallo Volker,

ja der quellcode ist nur ein test, da ich einige VLC benutze, würde es bei viele nicht laufen.

der Zweck an sich, ist es wenn man die Form3 bearbeitet und möchtet man gerne die werte aus der Form2.Edit1.Text auslesen, oder auf die Form2 springen und den focus auf ein bestimmten Feld setzen, z.B wenn man ein neuen Datensatz anlegt, das der focus zur der KND-Nr springt.

Was ich erreichen will?
Ich möchte eine application machen wo alle Forms in ein Pagecontrol(Tabsheets) zu sehen sind und bei bedarf auf ein bestimmten Tabsheets springen und auf ein bestimmten edit den focus setzen.

Wie du schon sagst
"Wie könnte man das dann elegant lösen?" oder was muss ich machen das einer Zuordnung stat findet?
Robert
--
mfg Robert
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Zwischen dynamischen Forms kommunizieren

  Alt 16. Feb 2014, 06:46
Dafür benötigst du doch keine weiteren Forms, das kannst du alles in einem einzigen Formular erledigen. Platziere deine Eingabe-Formulare (nicht Forms, sondern die zu einem Formular angeordneten Eingabefelder) jeweils auf verschiedenen Tabsheets und gut ist. Wozu eigene Forms, die dann sowieso in Tabsheets eingebettet sein sollen?

Davon abgesehen stellt es einen äußerst schlechten Programmierstil dar, wenn man Daten aus Editfeldern anderer Forms auslesen muß, um gewisse Berechnungen beginnen zu können. Daten sollten zentral verwaltet werden, so daß sie von allen benötigten Forms aus erreichbar sind.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Zwischen dynamischen Forms kommunizieren

  Alt 16. Feb 2014, 10:12
Es macht durchaus Sinn mit mehreren Formularen zu arbeiten, gerade dann, wenn die Anzahl der TabSheets dynamisch sein kann, oder es sonst zu komplex werden würde (Monster-Formular).

Allerdings sollte man niemals von aussen auf die konkreten Elemente zugreifen um ein bestimmtes Verhalten zu bekommen.

Wenn das Formular x in die Grundstellung soll, dann erstellt man dort eine Methode Grundstellung die von aussen aufgerufen wird. Das Formular selber, weiß wie es diese Grundstellung zu erledigen hat.

Auf die Daten greift man auch nicht direkt zu, sondern entweder über Properties oder über ein ein entsprechendes Datenobjekt, was die Daten der Form beinhaltet. Änderungen in der form gehen in das Datenobjekt und Änderungen am Datenobjekt werden in der Form angezeigt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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