![]() |
nicht instanziiertes Frame zur Laufzeit finden
HAllo liebe DelphiNutzerGemeinde 8)
Folgende Frage hab ich heute an Euch: Wie kann ich ein Frame, welches zwar als Klasse vorhanden ist, aber noch nicht instanziiert ist während der Laufzeit finden? Geht das überhaupt? Mir geht es nämlich um folgende Übung: ich schreib jetzt an der Grundausstattung für ein Programm, welches später einfach über das einhängen von Frames erweiterbar sein soll, ich will aber am eigentlichen Programm nix mehr verändern müssen, da es sein kann, daß später jemand anderes ein Frame hinzufügt, welches aber vom Programm aus gefunden werden soll. Sieht also wie eine Art Plug-in - allerdings quelltextseitig aus. WÜrde mich zwar freuen, wenn ich das einfach àla Winamp (u.a.) schaffen könnte, indem ich einfach ne DLL in ein bestimmtes Verzeichniss schreibe und das Programm die dann automatisch einbindet, aber dazu fehlt mir glaube ich auch noch eine gehörige Portion Programmiererfahrung. Wenn allerdings dazu Jemand ne Art Tutorial oder Hinweis hat, kann er das auch posten, nich?! Vilen Dank! -c- |
Re: nicht instanziiertes Frame zur Laufzeit finden
Hallo,
Schau dir mal das UIL-Plugin System an. Die Version 5 ist Opensource --> ![]() Ich bin damit ganz gut zurechtgekommen. Das dürfte dir helfen. grüße, daniel |
Re: nicht instanziiertes Frame zur Laufzeit finden
Klingt erstmal nicht schlecht, aber wie gesagt, zum jetzigen Zeitpunkt muß es ao gehen, dass noch direkt in den Quellcode geschrieben wird, was uns wieder zurück zur eigentlichen Frage bringt. Irgendwelche Ideen?
-c- |
Re: nicht instanziiertes Frame zur Laufzeit finden
siehe Code-Library:
![]() Dies geht auch für Frames. :mrgreen: |
Re: nicht instanziiertes Frame zur Laufzeit finden
Hm, jaja, is shon ok, erzeugen kann ich's ja und per 'uses' in den code einfügen könnte ich aber auch noch verkraften. Es geht mir ja darum, dass ich wie zum Bleistift mit Application.Components[i] schon instanziierte Komponenten finde, auch noch nicht instanziierte finden kann wie z.B. ein frame, dass noch nicht mit Create erzeugt wurde, was aber theoretisch möglich wäre, da es ja im Programm enthallten ist.
-c- |
Re: nicht instanziiertes Frame zur Laufzeit finden
Moin!
Du könntest dir eine Liste mit einer Metaklasse (vom Typ Class Of TFrame) aufbauen und damit das ganze bewerkstelligen. In dem Initialization Teil der Unit die eine Frame definiert, fügst du einfach die Frame in die Liste ein. Ein Beispiel für ein solches Vorgehen findest du bei den StringAdaptern in der XML Library auf meiner HP. MfG Muetze1 |
Re: nicht instanziiertes Frame zur Laufzeit finden
Tut mir Leid, ich werde aus deiner Frage nicht schlau.
Ist eine nicht instanziierte Komponente für dich einfach eine Klasse oder eine noch nicht zugewiesene Variable? |
Re: nicht instanziiertes Frame zur Laufzeit finden
Zitat:
Dann hättest du Zugriff auf alle registrierten Klassen und könntest deine Frames ausfiltern. Leider ist das Objekt nicht im Interface-Abschnitt veröffentlicht. :cry: Es bebleibt dir also nichts anderes übrig, als deine Frameklassen selbst in einer selbstgebauten Liste nach dem Vorbild von ClassList anzumelden. Später kannst du diese Liste durchsehen und findest so alle registrierten Frameklassen. Mit der Frameklasse kannst du dann eine (oder mehrere) Instanz(en) erzeugen und dynamisch in ein Formular einbetten. |
Re: nicht instanziiertes Frame zur Laufzeit finden
@sanchez
Na mit nicht instanziierte Komponente meinte ich z.B. ein Frame, das zwar im Projekt enthalten ist, aber es wurde eben noch keine Instanz gebildet. @shmia & @muetze Ja, dann muß ich wohl oder übel die Frames doch mittels einer Liste verwalten. erstmal danke so weit! -c- |
Re: nicht instanziiertes Frame zur Laufzeit finden
Also eine Klasse
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz