![]() |
Eigene Ereignisse implementieren für Delphi .NET und C#
Hallo,
mein Problem ist folgendes: Ich möchte neue Ereignisse in .NET Kompos haben, zum Bleistift OnVisibleChange oder so. Wie krieg ich das mit .NET (keine Windows-Messages) hin, dass dieses Ereignis auch immer ausgelöst wird, wenn die property Visible geändert wird? Und wenn irgendwer dann noch Zeit hat, würde ich gerne noch wissen, wie das unter C# geht. Jaaaaaaaaaa, ich habe die Suche benutzt, aber nich so richtig was gefunden, was mir weiterhilft... (meistens immer nur für Win32) :twisted: Schonmal Danke im voraus, JayK [edit=alcaeus]Personality gesetzt. Mfg, alcaeus[/edit] |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Das Stichwort sind Delegates.
![]() Auch Robert_G hat in ![]() |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
oder hier:
![]() raik Edit: wobei Roberts wirrer Code :mrgreen: übersichtlicher ist |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Control hat doch bereits einen Event names VisibleChanged...
und so wie es sich für Events in .Net gehört gibt es eine virtual protected method OnVisibleChanged, die kannst du überschreiben um darauf zu reagieren... |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Zitat:
Geht das für Delphi .NET (ich meine damit die .NET VCL) nicht auch:
Delphi-Quellcode:
TMeineKomponente = class(TBasisKomponente)
private fVisible: Boolean; procedure SetVisible(AValue: Boolean); published property Visible: Boolean read fVisible write SetVisible; property OnVisibleChange: TNotifyEvent; end; implementation procedure TMeineKomponente.SetVisble(AValue: Boolean); begin inherited; OnVisibleChange // weiß jetzt nicht, sowas wie execute oder so... ? fVisible := AValue; end; |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Zitat:
Edit: Bin ich mal nicht so, auch wenn du D.Net benutzt... :zwinker: Einen Setter einer property sollte man nur dann private deklarieren, wenn man es für inkonsistent hält, dass ichn ein Nachfahre überschreiben kann. Genau das gleiche gilt für die Methoden, mit denen du den Event feuerst. Ansonsten müsste man im Nachfahren mit dem Event hantieren anstatt die betreffende Methode überschreiben zu können. laso mach einfach eine virtual protected Emthode draus. ;) |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Zitat:
Ich soll die Setter-Prozedur als protected und virtual deklarieren? Und das Event wohl auch... (das auf jeden Fall wenn ich nachdenke) Oder wie jetzt? Mal ganz nebenbei: Was heißt feuern? Aufrufen? (So viele fragen auf einmal :roteyes: ) |
Re: Eigene Ereignisse implementieren für Delphi .NET und C#
Deine Benneungen und Verwendungen sind NICHT .Net-Like.
Dein Event sollte VisibleChanged heißen. Du solltest eine virtual protected Methode haben, die OnVisibleChanged heißt. Diese feuert den Event und führst du im Setter aus. |
DP-Maintenance
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ich schiebs mal in die Delphi-Language-Sparte. Irgendwie gehoert C# auch dazu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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