Zugriff auf "ComboBox" aus 2.ter Unit ...

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
aebding
Beiträge: 15
Registriert: Mo 5. Okt 2009, 00:08

Zugriff auf "ComboBox" aus 2.ter Unit ...

Beitrag von aebding »

Hallo ...
Ich benötige einen Denkanstoß zu folgendem Thema ...
Versuche gerade mein Programm zu verkleinern bzw. übersichtlicher zu gestalten.
Ich verwenden in verschieden "Formularen" immer wieder "CombBox'en" vom gleichen "Typ" die mit unterschiedlichen Inhalten gefüllt werden.
z.B. "Anrede" -> Frau / -> Herr / -> Firma
Es handelt sich natürlich um größere Datenmengen, die bei verschiedenen Formularen je nach Situation auch unterschiedlich sein können.
Wie kann ich aus der 1.ten "Unit" auf die "ComboBox" im "Formular" der 2.ten "Unit" zugreifen und dies befüllen ?

Bin für jede Idee dankbar !

Vielen Dank

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6217
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: Zugriff auf "ComboBox" aus 2.ter Unit ...

Beitrag von af0815 »

Ein erzeugtes Formular ist über ist über die Variable in der es gespeichert ist erreichbar. Bei den automatisch erzeugten Formularen ist das zB Form1. Da muss man das Form nur in die uses Klausel aufnehmen und kann dann auf die Eigenschaften und Objekte des anderen Formular zugreifen.
Man muss nur aufpassen das das andere Form existiert, sonst gibt es einen Zugriffsfehler.

BTW, grössere Datenmengen fangen bei mir erst ab einer Million an :D
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Zugriff auf "ComboBox" aus 2.ter Unit ...

Beitrag von theo »

af0815 hat geschrieben:
Do 21. Mär 2024, 06:24
Da muss man das Form nur in die uses Klausel aufnehmen
Man muss die Unit in die "uses" übernehmen.
Wenn Form2 in Unit2 deklariert ist, muss man "uses Unit2" schreiben, gerne auch im "Implementation" Teil (Circular unit reference).

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 338
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: Zugriff auf "ComboBox" aus 2.ter Unit ...

Beitrag von Niesi »

Als einfaches Beispiel ...


TwoForms.7z
(158.71 KiB) 98-mal heruntergeladen
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Zugriff auf "ComboBox" aus 2.ter Unit ...

Beitrag von charlytango »

aebding hat geschrieben:
Mi 20. Mär 2024, 22:58
Ich benötige einen Denkanstoß zu folgendem Thema ...
Versuche gerade mein Programm zu verkleinern bzw. übersichtlicher zu gestalten.
Für mehr als grobe Vermutungen brauchts mehr Informationen.
Was bedeutes für dich "Programm verkleinern" ? oder "übersichtlicher gestalten"?

Ist damit die Programmgröße zur Laufzeit (also der dabei verbrauchte Speicher) gemeint oder die Größe deines SourceCodes?
Was soll übersichtlicher werden? Dein Sourcecode oder irgend etwas anderes?
Interessant zu wissen ist auch für welches Zielsystem du programmierst.
Welche Programmstrategie benutzt du? Lässt du dir von Lazarus alle Formulare automatisch erzeugen oder machst du das bei Bedarf im Code?

Die Funktionen/Prozeduren zum Befüllen von diversen Comboboxen mit Daten aus unterschiedlichen Kategorien (zb Anrede, MwSt-Satz, Kommunikationsarten etc etc) kannst du zB in eine eigene Unit (die auch ein Datenmodul sein kann um Daten gleich vorzuhalten) legen die du im betroffenen Formular und der uses Klausel einbindest. Dann hast du alle derartigen Funktionen an einer Stelle im Code.
Im OnCreate Event wirfst du das dann an.
aebding hat geschrieben:
Mi 20. Mär 2024, 22:58
Es handelt sich natürlich um größere Datenmengen, die bei verschiedenen Formularen je nach Situation auch unterschiedlich sein können
"größere Datenmengen" -- was immer das für dich bedeuten mag -- haben IMHO in einer ComboBox ohnehin nichts verloren.
Alles was über so 10 bis 20 Items hinausgeht würde ich nur in Ausnahmefällen als gutes Design bezeichnen.

... ich fürchte es gibt keine einfache Antwort für ein komplexes Problem ;-)

Antworten