![]() |
Standard TListView eigenes TListItem zuweisen - wie?
Ich habe für Testzwecke die Klasse TMyListItem von TListItem abgeleitet.
Zur Laufzeit möchte ich nun eine Instanz von TListView erzeugen, die aber nicht auf TListItem zugreifen soll, sondern auf meine eigene TMyListItem-Klasse. Wie stelle ich das am schlausten an? |
Re: Standard TListView eigenes TListItem zuweisen - wie?
So geht das nicht. Du hast bei TListItem einen Pointer-Property zur Verfügung an das du alles mögliche hängen kannst.
|
Re: Standard TListView eigenes TListItem zuweisen - wie?
Okay, das mit der ListView war nur ein Beispiel. Was mache ich bei Klassen, die nicht über so eine flexible Eigenschaft verfügen?
Aus Deiner Aussage 'So geht das nicht.' entnehme ich, dass ich sämtliche Interna der Klasse anpassen müsste. Jemand eine andere Idee? |
Re: Standard TListView eigenes TListItem zuweisen - wie?
Es gibt zwei einfache Möglichkeiten:
01: Du leitest von TListItems ab, wie jetzt auch. Allerdings musst du dann auch von TListView ableiten. Da sonst deine Klasse nicht genutzt werden kann bzw. wird. Z.B beim hinzufügen. Diese Methoden müsstest du überschreiben. Ebenfalls solltest du das Property Items überschreiben bzw. Anpassen 02: Viel leichter geht das über die Data Eigenschaft. Ich glaube bei der ListView war das ein Pointer. Es kann aber auch ein TObject sein. Dann kannst du einfach eine eigene Klasse erstellen und der Data Eigenschaft des ListItems hinzufügen. Die Klasse muss das schon bereit stellen, sonst stehst du vor einem Problem. Es kommt immer auf dein Vorhaben an. Mit der WinApi lässt sich auch einiges erreichen. Z.B. kann man damit Komponenten zu einem OpenDialog hinzufügen. Meinst du sowas ? |
Re: Standard TListView eigenes TListItem zuweisen - wie?
Zitat:
|
Re: Standard TListView eigenes TListItem zuweisen - wie?
Okay, danke für Eure Antworten. Ich habe keinen konkreten Anwendungsfall dafür; wollte nur wissen, ob das generell möglich ist.
|
Re: Standard TListView eigenes TListItem zuweisen - wie?
Hallo,
bei der Komponente TListView gibt es das Ereignis ![]() ![]() Ach ja: beim TreeView heißt das Ereignis "OnCreateNodeClass". Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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