[Gelöst] Arbeiten mit Frames

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Levario
Beiträge: 101
Registriert: Mo 1. Sep 2014, 14:32
OS, Lazarus, FPC: Windows 10 Pro Laptop (Lazarus 3.0.0 FPC 3.2.2)
CPU-Target: 64 Bit
Wohnort: Deutschland / NRW

[Gelöst] Arbeiten mit Frames

Beitrag von Levario »

Hallo zusammen,

ich bin in meinem Programm einen Frame dynamisch während der Laufzeit ein.

wie hier viewtopic.php?t=11800.

In dem Frame ist eine Datenbank Abfrage mit Zeos diese funktioniert einbanfrei.

Ich möchte nun ein Element einseln speichern und zwar aus einer TFileNameEdit Komponente und in den Inhalt vor auslesen.

Wie spreche ich eine Komponente an die noch gar nicht erzeugt ist? Oder kann ich dies nur zur LAufzeir des Programm machen?

Code: Alles auswählen

strLogo := Form1.Frame1.FileNameEditLogo.Text;
Da die Inhalte während des Compilierens noch nicht existieren kommt es hier zum Fehler: Error: identifier no member "Frame1".
Und Frame1 ist rot markiert.

Wie kann man das umgehen?
Zuletzt geändert von Levario am Mi 4. Mai 2022, 07:38, insgesamt 1-mal geändert.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).

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

Re: Arbeiten mit Frames

Beitrag von af0815 »

Du hast ja bei einem dynamischen Frame ja auch zur Kompilierzeit ein Handle. Dadurch ist dem Compiler bekannt um welches Frame es sich handelt und es damit auch typsicher abfragen.

Code: Alles auswählen

strLogo := Form1.Frame1.FileNameEditLogo.Text;
Das passt schon zur Laufzeit, nur hast du dir irgendwie in der Definition den Zugriff auf das Frame1 verbaut :-) Eventuell als privat oder protected deklariert ?! Es ist natürlich auch gut, abzusichern das das Frame zu dem Zeitpunkt existiert, sonst gibt es eine Exception zu recht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Levario
Beiträge: 101
Registriert: Mo 1. Sep 2014, 14:32
OS, Lazarus, FPC: Windows 10 Pro Laptop (Lazarus 3.0.0 FPC 3.2.2)
CPU-Target: 64 Bit
Wohnort: Deutschland / NRW

Re: Arbeiten mit Frames

Beitrag von Levario »

Vielen Dank für die Antwort ich dene ich finde meinen Fehler teste es morgen nocheinmal. Vielen Dank für die sehr schnelle Antwort!
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).

Benutzeravatar
Levario
Beiträge: 101
Registriert: Mo 1. Sep 2014, 14:32
OS, Lazarus, FPC: Windows 10 Pro Laptop (Lazarus 3.0.0 FPC 3.2.2)
CPU-Target: 64 Bit
Wohnort: Deutschland / NRW

[Gelöst] Re: Arbeiten mit Frames

Beitrag von Levario »

Levario hat geschrieben:
Sa 16. Apr 2022, 23:41
Vielen Dank für die Antwort ich dene ich finde meinen Fehler teste es morgen nocheinmal. Vielen Dank für die sehr schnelle Antwort!
Update 04.05.2022

Code: Alles auswählen

implementation
var
  Frame2 : TFrame2; // Dies hat gefehlt. Er wußte nicht was Frame2 ist.
Das Thema ist damit gelöst. Ab und zu sieht man den Wald vor lauter Bäume nicht :)
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).

Antworten