FindComponent in einem weiterem Frame

Rund um die LCL und andere Komponenten
Antworten
Luckner
Beiträge: 86
Registriert: Sa 18. Jan 2020, 09:56
OS, Lazarus, FPC: Winux (L 2.2.0 FPC 3.2.2)
CPU-Target: Windows 64-Bit

FindComponent in einem weiterem Frame

Beitrag von Luckner »

Möchte gerne Werte aus einem Frame in ein Anderes übergeben mit der FindComponent-Anweisung.

Code: Alles auswählen

Form1.FrameAuftragArtikel1.TComboBox(FindComponent('ComboBoxNummerierung' + IntToStr(i))).Text:= DataModuleArtikel.ZQueryNummerierungNUMMERIERUNG.AsString;
Funktioniert jedoch nich mit dem Fehler: identifiier idents no Member "TCombobox). Kann es sein die FindComponent-Anweisung nur im aktl. Frame funktioniert?

Gruß, Luckner

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1355
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: FindComponent in einem weiterem Frame

Beitrag von fliegermichl »

Der Typecast ist falsch platziert.
Es muss heissen

Code: Alles auswählen

TComboBox(Form1.FrameAuftragArtikel1.FindComponent('ComboBoxNummerierung' + IntToStr(i)))).Text:= DataModuleArtikel.ZQueryNummerierungNUMMERIERUNG.AsString;
Besser wäre aber das Ergebnis von FindComponent zuerst einer Variablen zuzuweisen und zu prüfen, ob ein gültiges Ergebnis geliefert wurde

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6117
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: FindComponent in einem weiterem Frame

Beitrag von af0815 »

Versuche nicht direkt auf eine Komponente auf einen anderen Frame zuzugreifen, sondern das ganze über Properties und Funktionen zu lösen. Damit wird das ganze robuster, wartbarer und wieder verwendbar. Außerdem kann man Frames mit definierten Schnittstellen auch leichter lös gelöst testen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten