![]() |
Re: Compiler erkennt TControl.PopupMenu nicht
Naja wenn Du es inline in der Methode machst...
Delphi-Quellcode:
Alternativ könnte man doch die Eigenschaft über RTTI versuchen abzugreifen...
procedure WhatEver;
type TControlAccess = class(TControl) public property PopupMenu: ....; end; var Control: TControl; begin TControlAccess(Control).PopupMenu := ...; end; Viele Grüße |
Re: Compiler erkennt TControl.PopupMenu nicht
Zitat:
Zitat:
Delphi-Quellcode:
ist die komplette Typdefinition - keine Member, Property-Redeklarationen oder sonstwas.
type
THACK_Control = class(TControl); Jetzt hast du eine Klasse in der aktuellen Unit - und innerhalb einer Unit beschränkt protected den Zugriff nicht - im Gegensatz zu "strict protected". D.h das Member PopupMenu von THACK_Control ist in der aktuellen Unit de facto public. Und wegen der einfach gestrickten Definition von THACK_Control ist ein TControl auch (fast :mrgreen:) ein THACK_Control, also geht auch der Cast i.O. Zitat:
|
Re: Compiler erkennt TControl.PopupMenu nicht
Zitat:
Delphi-Quellcode:
oder
type
THACK_Control = class(TControl);
Delphi-Quellcode:
schreibst, macht null Unterschied.
type
THACK_Control = class(TControl) public property PopupMenu; end; Zitat:
|
Re: Compiler erkennt TControl.PopupMenu nicht
Ja an das mit den "class friends" innerhalb einer Unit habe ich nicht gedacht, da sind unsere Lösungen natürlich völlig equivalent. :)
Also ich würde wohl bei dem selben Vorhaben wohl auch nicht RTTI nehmen, wollte das aber auch nicht ungenannt lassen... ;) |
Re: Compiler erkennt TControl.PopupMenu nicht
Hallo,
friend class, stimmt ;) Netter Trick. Kenne mich mit Delphi nicht so aus ;) Heiko |
Re: Compiler erkennt TControl.PopupMenu nicht
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 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