![]() |
Klasse um etwas ergänzen
Hallo,
ich habe eine Funktion, die als Parameter ein TControl erwartet, um dann etwas damit zu machen.
Delphi-Quellcode:
Jetzt denke ich mir, dass es zweckmäßiger ist, das als Methode eines Objekts zu haben. Allerdings sollte das bei jedem Control auf meiner Form funktionieren:
procedure ControlFadeIn(Control: TControl);
Delphi-Quellcode:
Meine Idee war, diese:
Panel.FadeIn;
GroupBox.FadeIn; usw
Delphi-Quellcode:
Hat nicht wirklich den gewünschten Effekt, d.h. keinen, der Aufruf von Panel.FadeIn wird als undefinierter Bezeichner angekreidet.
TControl = class(Controls.TControl)
published procedure FadeIn; end; Gibt es einen Weg, wie ich die Klasse TControl um meine Methode ergänzen kann, sodass alle Nachfahren auch diese Methode haben? Class Hacks sind keine Option! Viele Grüße, Benjamin |
Re: Klasse um etwas ergänzen
Hallo Benjamin,
Zitat:
Delphi-Quellcode:
Danach verfügen alle TControl-Nachfolger über die neue Methode.
type
TControlHelper = class helper for TControl public procedure FadeIn; end; procedure TControlHelper.FadeIn; begin ShowMessage ('Hello from ' + ClassName); end; Hier noch ein interessanter ![]() Gruß Hawkeye [edit=Phoenix]Url korrigiert. Die hatte sich wohl geändert. Mfg, Phoenix[/edit] |
Re: Klasse um etwas ergänzen
Boah das ist ja eine wunderschöne Lösung! Genau so habe ich mir das Vorgestellt :firejump:
Danke! Nur die IDE macht das nicht so toll, sobald ich for schreibe will er mir hier eine Schleife andrehen. Egal, trotzdem geil. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 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