![]() |
Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Hallo,
in der Unit Vcl.StdCtrls gibt es die Klasse TComboBoxStrings. Ich muss eine Unterklasse dieser Klasse in meiner eigenen Unit erstellen. Jedoch ist TComboBoxStrings nur im implementation-Abschnitt deklariert. Dadurch ist diese Klasse nicht in anderen Units nutzbar. Wie bekomme ich es trotzdem hin? So soll es in meiner Unit aussehen:
Code:
So sieht es in der Vcl.StdCtrls aus:
TMyComboBoxStrings = class(TComboBoxStrings)
Code:
implementation
... TComboBoxStrings = class(TCustomComboBoxStrings) ... |
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
.. und wenn Du die Klasse "TCustomComboBoxStrings" verwendest?
Delphi-Quellcode:
Grüße
TMyComboBoxStrings = class(TCustomComboBoxStrings)
Klaus |
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Zitat:
|
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Wenn du die erweiterte Funktionalität von TComboBoxStrings nicht nachbilden willst, musst du dir wohl eine andere Herangehensweise überlegen. An die private Klasse kommst du jedenfalls für eine Ableitung nicht heran. Geh doch einfach einen Schritt zurück und beschreibe, was du mit dieser Ableitung erreichen willst.
|
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Zitat:
|
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Zitat:
Delphi-Quellcode:
Message an die Combobox sendet, könntest du auch eine Ableitung von TCombobox erstellen, in der du diese Message abfängst. Damit kannst du aber nicht das bisherige Verhalten beeinflussen, wie es mit einer abgeleiteten Methode möglich wäre.
WM_SETREDRAW
Wenn du das nicht willst, kommt logischerweise als Nächstes die Frage: Warum möchtest du auf SetUpdateState reagieren? |
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Mit WM_SETREDRAW klappt es danke!
|
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Nachteil von der Nutzung von WM_SETREDRAW ist aber folgender:
Wenn nicht Combobox.Items.EndUpdate diese Message versendet, sondern eine andere Quelle, wird mein Code auch ausgeführt. Das ist dann zu häufig. |
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Zitat:
|
AW: Wie Unterklasse erstellen, wenn Oberklasse nicht in anderen Units nutzbar?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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