![]() |
TWinControl und OnEnter-Event
Hallo alle zusammen,
ich hätte da gern mal ein Problem und zwar: Ich möchte einer Reihe von Komponenten unterschiedlicher Typen (TEdit, TButton, ...) per Code ein OnEnter Event zuweisen. Laut Hilfe so das alles TWinControls. TWinControl hat laut Hilfe auch ein OnEnter-Event. Folgender Code
Delphi-Quellcode:
funktioniert nicht:
for i := 0 to self.ControlCount-1 do
if (self.Controls[i] is TWinControl) then (Controls[i] as TWinControl).OnEnter := AdaptMenuOnEnter; Fehler: Undeclared identifier Wer kann mir helfen. Wenn das nicht so geht müsste ich alle durchprüfen, ob TEdit oder TButton etc. Geronimo |
Re: TWinControl und OnEnter-Event
Das Ereignis "OnEnter" ist in TWinControl nicht published, sondern protected. Das heißt, das erst in den abgeleiteten Komponenten festgelegt wird, ob es sichtbar sein soll.
Gruß, Daddy |
Re: TWinControl und OnEnter-Event
...
schade! Aber Danke für die Aufklärung! Geronimo |
Re: TWinControl und OnEnter-Event
Hallo Geronimo,
versuche es so:
Delphi-Quellcode:
Durch die Vereinbarung des Typs TWinControlAccess verschaffst du dir in der Unit Zugang zu den protected Methoden und Eigenschaften.
type
TWinControlAccess = class (TWinControl); for i := 0 to self.ControlCount-1 do if (self.Controls[i] is TWinControl) then TWinControlAccess(Controls[i]).OnEnter := AdaptMenuOnEnter; Gruß Hawkeye |
Re: TWinControl und OnEnter-Event
Hallo,
da das Ereignis schon da ist, und nur als protected markiert ist, kannst Du einen "dreckigen" Trick verwenden und einfach hart auf eine Klasse casten, in der es published ist, z. B. ein TButton:
Delphi-Quellcode:
Das funktioniert deshalb, weil das Ereignis ja nur die Sichtbarkeit ändert (also die Attribute), aber nicht die Position im Speicher. Sauber ist natürlich was anderes...
for i := 0 to ControlCount - 1 do
if (Controls[i] is TWinControl) then TButton(Controls[i]).OnEnter := AdaptMenuOnEnter; Gruß xaromz |
Re: TWinControl und OnEnter-Event
@ Hawkeye219: TWinControlAccess funzt super. Danke. Ich sehe ihr seid
mit allen Delphi-Wassern gewaschen! @ xaromz: Die "dreckige" Variante führt zu vielen Abfragen von Typen, da ich viele davon verwende. Dank an alle! Geronimo |
Re: TWinControl und OnEnter-Event
Hallo,
Zitat:
Gruß xaromz |
Re: TWinControl und OnEnter-Event
Zitat:
Habe jetzt deine Variante mal getestet. Sie funktioniert auch und tut das, was ich wollte, allen TWinControls das Event aufdrücken (wenn auch unelegant). Gruß Geronimo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 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 by Thomas Breitkreuz