Package Komponente als Singleton

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
charlytango
Beiträge: 1198
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

Package Komponente als Singleton

Beitrag von charlytango »

Meine tabbed GUI Komponente auf Basis JVTabBar funktioniert mittlerweile recht verlässlich (bis auf einige Schönheitsfehler)

Sie ist soweit gediehen dass sie alle *.lfm los geworden ist und nun als Objekt abgeleitet von TPanel vorliegt.
Alle nötigen grafischen Elemente werden im Code erzeugt. Der nächste Schritt wäre es, daraus ein Package bzw eine Komponente zu machen. (obwohl mir davon abgeraten wurde, ist der Ehrgeiz auch ein Miskerl gg)

Nun zu meiner Frage:
Ich habe es in größeren Datenbankprojekten schätzen gelernt mittels Singleton jederzeit einfachen Zugriff auf wichtige Programmkomponenten zu haben (ZB DB-Verbindung, GUI, Settings etc)

--> ist es möglich eine Lazarus-Komponente zu erstellen die auch gleichzeitig ein Singleton Objekt ist?

Sonst wäre es für mich fast sinnvoller beim Objekt zu bleiben, daraus einfach ein Package zu machen und auf die "Bequemlichkeit" zu verzichten ein Icon/Panel auf ein Formular zu kleben.

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

Re: Package Komponente als Singleton

Beitrag von fliegermichl »

Ich bin mir nicht sicher, ob ich verstanden habe, was genau dein Ziel ist.
Aber das Package verwendet ja auch nur Units und wenn eine dieser Units ein Singleton Objekt exportiert, dann ist das doch immer dann der Fall, wenn das Package verwendet wird.

Wie gesagt, vielleicht habe ich das Ziel nicht verstanden.

charlytango
Beiträge: 1198
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: Package Komponente als Singleton

Beitrag von charlytango »

möglicherweise liegts an mir -- ich versuche es mit einem Beispiel:

ZB meine Datenbankanbindung habe ich nicht in einem Datenmodul sondern in einer Unit als Objekt mit Singleton abgebildet.
Das hat für mich den Vorteil dass ich mich nicht um Objektverwaltung kümmern muss. Unit einbinden und Singleton abrufen -- und ich bekomme immer die korrekte Datenbankverbindung.

Das gleiche mache ich auch mit meiner aktuellen GUI und auch der neuen. Wenn ich irgendwie auf die GUI zugreifen muss, gibt mir der Singleton sofort das Objekt.

Jetzt denke ich einfach, dass diese Funktionalität einfach einen Vorteil hat.
Es wäre vielleicht auch fein wenn das eine Komponente auch könnte.

Antworten