AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Label.text im MainFrame aus frame setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Label.text im MainFrame aus frame setzen

Ein Thema von tkhandel · begonnen am 13. Feb 2025 · letzter Beitrag vom 14. Feb 2025
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.919 Beiträge
 
Delphi 12 Athens
 
#1

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 08:39
Ich habe es mit einer Procedure im Formular versucht, mit einer Procedure in Frame1 oder über
eine Variable in Frame1 usw. knallt immer.
Grundregel:
Pack die uses grundsätzlich unter Interface (nicht unter implementation).* Dann merkst du sofort, wenn du nicht nur in einer Richtung zugreifst.
Das Formular sollte nur Frame1 kennen und Frame1 nur Frame2 (und nicht das Formular), aber Frame2 sollte niemals Frame1 oder das Formular kennen.

Mit diesen Grundregeln sollte es leichter fallen, das sauber umzusetzen. Hat Frame2 denn schon das passende Event, das den String als Ergebnis übergeben bekommt?

PS: Was ist falsch daran die Frames nach gebrauch mit Free und nil zu entsorgen?
Daran ist erst einmal nichts falsch, aber das sollte nicht das Element selbst in einer Methode des Elements machen. Das wäre als ob du nicht zuerst aus dem Abbruchhaus (Frame2) rausgehst und dem Bagger (Frame1) Bescheid sagst, dass er anfangen kann, sondern im Haus den Boden unter deinen Füßen selbst zertrümmerst. Denn wenn die Methode beendet ist, wird ja das Objekt, das diese aufgerufen hat, weiterarbeiten wollen. Da wäre es doof, wenn das schon freigegeben ist...

Und die Freigabe kannst du dann auch nicht direkt in dem Event von Frame2 machen, sondern z.B. mit TThread.ForceQueue aus diesem Kontext gelöst.

* Ja, ich weiß, dass es auch Sinn machen kann, das anders zu machen. Aber zur Vermeidung von Kreuzreferenzen ist das nun einmal der effektivste Weg.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
tkhandel

Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
104 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 09:26
Hallo

das mit der Einbindung hatte ich schon gemerkt, lässt sich aber tatsächlich nicht immer vermeiden.

Wenn Frame1 Frame2 aufruft, aber Frame2 Frame1 nicht kennen darf wie kann dann Frame2 etwas an Frame1 übergeben?
Da müsste ich ja wieder eine andere Unit einbinden die eine function oder procedure ausführt die
Frame1.Label1.Text aktualisiert aber diese Unit müsste ja wieder sowohl Frame1 kennen als auch Frame 2
was macht das denn für einen Sinn? das ist doch zirkulär oder ?
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#3

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 09:45
Wenn Frame1 Frame2 aufruft, aber Frame2 Frame1 nicht kennen darf wie kann dann Frame2 etwas an Frame1 übergeben?
Da müsste ich ja wieder eine andere Unit einbinden die eine function oder procedure ausführt die
Frame1.Label1.Text aktualisiert aber diese Unit müsste ja wieder sowohl Frame1 kennen als auch Frame 2
was macht das denn für einen Sinn? das ist doch zirkulär oder ?
Es gibt einen ganzen Koffer voll von Werkzeugen mit denen man solche Abhängigkeiten oder gar zirkuläre Referenzen auflösen kann. (Wäre vielleicht mal eine nette Session für die Foren-Tage...)

In diesem Fall scheint ein Event (z.B. OnTextChange) in Frame2 die simpelste Lösung. Frame1 setzt eine eigene Methode (MyTextChange) als Eventhandler in Frame2 und der ruft bei einer anzuzeigenden Änderung diesen auf. In MyTextChange wird dann Label1.Text zugewiesen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tkhandel

Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
104 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 10:24
Hallo Uwe,

das hört sich nachvollziehbar an. Hast du evtl. ein Beispiel für so einen Eventhandler damit ich sehe wie so was
grundsätzlich richtig implemntiert wird.

DANKE
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#5

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 10:36
So auf die Schnelle zusammengeklickt.
Angehängte Dateien
Dateityp: zip ExampleProject.zip (1,8 KB, 8x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
tkhandel

Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
104 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Label.text im MainFrame aus frame setzen

  Alt 14. Feb 2025, 17:57
Hallo Uwe,

ok das habe ich dann mal so umgesetzt und klappt Super.
DANKE hast mindestens 2 Bier gut

Ich habe eine Datenbank-Anwendung mit rund 150 Forms und setze die jetzt um auf FMX, Frames
statt Forms und das jetzt Firebird statt EasyTable (Embeded) dazu noch die Krönung eine Swissbit TSE auf mobilen Geräten.
Jürgen
  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 05:24 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