![]() |
existierende TImageList in einem anderen TForm benutzen
Hallo #,
ich habe hier eine FarbenTImageList auf einem Form. Die bentze ich in einem ListView. Ich möchte diese TImageList in einem anderen Form auch benutzen, ohne sie zu kopieren. Das Form mit der existierenden TImageList ist nicht offen !. Wie gehe ich da am besten vor. Mit fällt ein Frame ein, in dem ich zur Design-Time die TImageList reinpacke, und den ich dann in beiden Forms benutze. Wäre das ein Weg ? Danke Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Ja. Sind mehrere der Formulare gleichzeitig sichtbar? Wenn nicht könntet du einfach den Parent umswitchen
|
Re: existierende TImageList in einem anderen TForm benutzen
du kannst doch einfach auf die ImageList der anderen Form zugreifen?
bzw. wie wilst'n die Liste da drüben verwenden? |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
Das Form mit der existierenden TImageList ist nicht offen. Die TImageList soll in einer anderen ListView (ImageIndex) benutzt werden. Mein Problem ist, dass noch ein paar Images dazukommen. Zur Zeit ändere ich das (zur Designzeit) in einem Form und kopiere die TImageList dann zum anderen Form. Das muss anders gehen. Die Images verbraten zwar kaum Platz, aber das gefällt mir überhaupt nicht (DRY). Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Einfach die Unit der Form mit der Imagelist in den uses der zweiten Form aufnehmen und die Imagelist mit dem Formnamen davor referenzieren.
|
Re: existierende TImageList in einem anderen TForm benutzen
Zitat:
|
Re: existierende TImageList in einem anderen TForm benutzen
Imageliste auf ein gemeinsam genutztes Datenmodul auslagern.
Datenmodule müssen nicht zwangsweise nur für TQuery & Co. verwendet werden. |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
nicht instanziert. Hm, TDataModule habsch noch nie benutzt ... ;) Mal ausprobieren. Danke Edit: Natürlich packe ich meine Queries nicht auf ein Form, dafür habe ich eigenständige DB-Klasen. Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Zitat:
Wieso (in diesem Zusammenhang) ein DatenModul? :? Ich würde die ImageList auf das automatisch erzeugte und ständig im Speicher verfügbare Hauptformular placieren. Allen dynamisch erzeugten Formularen übergebe ich (sofern sinnvoll) den Zeiger auf die ImageList und kann die Images dann im dyn. Form nutzen. |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
interessante Frage ... Das DatenModul ist besser, weil das Hauptform dann nicht zugemüllt wird. Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Aha, also im Sinne eines separaten Containers?!
|
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
ja. Man könnte ja auch unterschiedliche TDataModule benutzen (DB-Zugriff, Images) Langsam komme ich auf den Trichter ... Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
wenn Du ein Datamodul verwendest, hast du Zugriff von allen Forms, die darauf zugreifen. D.h. die Imageliste des Datamoduls steht z.B. im OI zur Auswahl zur Verfügung, ist doch praktisch. Wenn du die Hauptform verwendest, müßtest du die Imagelist jedesmal per code einbinden? Finde ich auch übersichtlicher, wenn man nicht überlegen muß, wo denn nun die imagelist herkommt, habe ich die nun in der Hauptform hinterlegt oder doch woanders ;-) Gruß Frank |
Re: existierende TImageList in einem anderen TForm benutzen
Jetzt bin ich neugierig geworden (hatte von TDataModule noch nie etwas gehört) und habe das gleich mal ausprobiert:
1. DatenModul erzeugt 2. ImageList drauf 3. noch'n Timer dazu 3. DatenModul in beliebiges Formular eingebunden Wie erwartet, habe ich im Quellcode des Formulars jetzt Zugriff auf ImageList und Timer des DatenModuls. Ok, das ist aber noch recht unspektakulär. Komfortabel wäre nun, wie im vorherigen Post von Frank beschrieben, die ImageList und den Timer auch im OI zu finden. Dort kann ich sie aber nun irgendwie gar nicht entdecken. Mache ich was falsch, funktioniert das mit Delphi 7 nicht, oder ... |
Re: existierende TImageList in einem anderen TForm benutzen
geh mal in den Source Code vom DataModule und drück F12 das sollte helfen, wenn ich dein Problem richtig gedeutet habe :wink:
|
Re: existierende TImageList in einem anderen TForm benutzen
Danke! Umschalten Formular/Unit war es aber nicht - es war meine eigene Dummheit :oops:
Im OI wird natürlich nur etwas aus dem Datenmodul angezeigt, wenn ich einer auf dem nutzenden Formular befindlichen Komponente z.B. ein Image zuweisen will. Und dort wird die Imagelist des Datemmoduls auch tatsächlich zur Auswahl angeboten - es funktioniert also. Prima - das ist 'ne komfortable Sache! :hi: |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
ich bin es noch mal. Also bei mir funktioniert die Auswahl im OI nicht. Ich muss die ImageList per Code zuweisen. Ausserdem musste ich die ImageList selber in der dpr erzeugen. Ist aber OK. Woran kann das liegen, dass der OI die ImageList nicht anzeigt ? Die DataModule-Unit steht unter uses im interface. Ich benutze D6. Heiko |
Re: existierende TImageList in einem anderen TForm benutzen
Im OI werden nur doch Sachen angezeigt, die auch im zugehörigen Modul/Container (z.B. TForm) enthalten sind? :gruebel:
|
Re: existierende TImageList in einem anderen TForm benutzen
Also ich hab das grad probiert, geht auch mit D6:
- neues Projekt - ein neues Datamodule - imagelist drauf - alles speichern - Datamoduleunit in uses der Form aufnehmen - popupmenu zum testen auf die Form, dann kann ich dort unter images die Imagelist des Datamodules auswählen geht auch mit D6:-) Gruß Frank |
Re: existierende TImageList in einem anderen TForm benutzen
Hallo,
mit einem neuen Projekt geht es bei mir auch, nur das alte will nicht ;( Naja, verschieben wir aufs Wochenende ... Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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