[Gelöst] Frames und Datenaustausch über Frames und einem übergeordneten Form

Rund um die LCL und andere Komponenten
Antworten
Helios
Lazarusforum e. V.
Beiträge: 93
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.0 Windows 10 64Bit / Lazarus 2.0.12 Debian 11 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

[Gelöst] Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von Helios »

Hallo Forianer,
ich habe hier nochmal ein spezielleres Problem bei dem ich über einen Button im Frame die Texte der Comboboxen einer übergeordneten Form (besser von den jeweiligen Sheets) abfragen möchte. Es gab hier schon ähnliche Beiträge dazu aber zu meinem Fall jetzt, sehe ich wohl den Baum vor lauter Wäldern nicht. Ich tue mich auch noch schwer das Property Konstrukt zu durchdringen und richtig umzusetzen, welches häufig zur Anwendung kommt (aber wie genau geht das hier?). Ich brauche hier nochmal einen Tipp bzw. eine beispielhafte Umsetzung in diesem speziellen Fall um das zu begreifen.
Vielen Dank im voraus und Gruß
Helios
Dateianhänge
SimpleFrameApp.zip
(139.77 KiB) 8-mal heruntergeladen
Zuletzt geändert von Helios am Mi 20. Jul 2022, 12:55, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5196
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von af0815 »

Grundlegend funktioniert die Kommunikation nach "oben" über Callbacks. Sprich ganz normale Events. Also so zB ein Button Click zur Laufzeit programmiert wird. So hat bei mir halt ein Frame etliche OnXXX EventHandler.

Es ist noch nicht die Logik von dir im geänderten Beispiel implementiert, aber ich habe einmal die CallBacks eingefügt.
Dateianhänge
SimpleFrameAppV2.zip
(71.2 KiB) 16-mal heruntergeladen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Helios
Lazarusforum e. V.
Beiträge: 93
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.0 Windows 10 64Bit / Lazarus 2.0.12 Debian 11 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von Helios »

Hallo af0815,
vielen Dank für Deine schnelle Antwort!!! Ich habe das Beispiel nochmal schnell angepasst, so das es nun das tut was ich gerne wollte. Nun muss ich das auch noch (möglichst;-) inhaltlich voll verstehen.
Beim Testen ist mir aufgefallen, dass die Prozedurvariable Info:String nirgendwo explizit über ein Info := ... gesetzt wird. Es ist sozusagen nur der Platzhalter für das "Memo1.Text" beim Aufruf des "DoInfo(Sender, Memo1.Text);" später. Ist das so einigermaßen korrekt verstanden? Irgendwie erscheint mir das immer noch mystisch, obwohl der Code nun fertig und funktional vor mir liegt. War ich da irgendwie vorschnell mit meinen Streichungen/Kommentierungen in der Version 3 oder passt das so auch allgemein? Ich muss unbedingt nochmal das CallBack Konzept über Prozeduren und Properties anschauen. Da fehlt mir einfach immer noch der klare Durchblick und das ist wirklich ein schönes/wichtiges Programmierparadigma, dass man vollständig beherrschen muss (aus meiner Sicht)..
Erneut, vielen, vielen Dank!
Gruß
Helios
Dateianhänge
SimpleFrameAppV3.zip
(139.76 KiB) 21-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5196
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von af0815 »

Gerade die Callbacks sind das Geheimnis. Zwar nicht wirklich, nur muss man sich das einmal langsam einprägen. Ich habe auch ein wenig gebraucht um es zu verstehen. Nachdem ich Frames extensiv dynamisch einsetze war bei mir die Notwendigkeit da.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Helios
Lazarusforum e. V.
Beiträge: 93
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.0 Windows 10 64Bit / Lazarus 2.0.12 Debian 11 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: [Gelöst] Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von Helios »

Hallo af0815
scheint wohl, da muss jeder irgendwann mal durch die Lernkurve durch. Bei mir hat es wohl etwas länger gedauert.
Besten Dank nochmal und Gruß
Helios

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5196
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: [Gelöst] Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von af0815 »

Helios hat geschrieben:
Mi 20. Jul 2022, 12:57
scheint wohl, da muss jeder irgendwann mal durch die Lernkurve durch. Bei mir hat es wohl etwas länger gedauert.
Wenn ich das mit mir vergleich :-) Warst du wesentlich schneller, ich habe mir die Sourcen von Lazarus angesehen und versucht zu verstehen, wie das alles funktioniert. Lazarus selbst und auch einige der Pakete ist eine gute Quelle an Informationen, wenn man weis, nach was man sucht 8)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1095
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: [Gelöst] Frames und Datenaustausch über Frames und einem übergeordneten Form

Beitrag von fliegermichl »

Ein schönes Beispiel für Callbacks ist TComponent.FreeNotification.

Wenn eine Komponente Verweise auf andere Komponenten enthält. Wie z.B. ein TLabel hat eine Eigenschaft FocusControl der man ein beliebiges Control aus dem Formular zuweisen kann. Wenn dann der Hotkey der Labelcaption gedrückt wird, springt der Eingabefokus auf das angegebene Control.

Wird das zu fokusierende Control jetzt aber gelöscht, wird das Label automatisch darüber in Kenntniss gesetzt und löscht den Verweis auf Focuscontrol um Zugriffsverletzungen zu vermeiden.

Antworten