AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language C# Eigene Ereignisse implementieren für Delphi .NET und C#
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Ereignisse implementieren für Delphi .NET und C#

Offene Frage von "JayK"
Ein Thema von JayK · begonnen am 11. Jun 2005 · letzter Beitrag vom 12. Jun 2005
Antwort Antwort
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#1

Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 09:43
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)

Schonmal Danke im voraus,
JayK

[edit=alcaeus]Personality gesetzt. Mfg, alcaeus[/edit]
nil
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#2

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 09:50
Das Stichwort sind Delegates.
Hier hats eine kleine Erklärung dazu.
Auch Robert_G hat in diesem Thread ein Beispiel dafür gebracht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 10:11
oder hier:

http://search.microsoft.com/search/r...de-de&qu=Event

raik

Edit: wobei Roberts wirrer Code übersichtlicher ist
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 10:14
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...
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#5

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 11:51
Zitat von Robert_G:
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...
War ja nur ein Beispiel...

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;
nil
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 11. Jun 2005, 11:57
Zitat von JayK:
Geht das für Delphi .NET (ich meine damit die .NET VCL) nicht auch
Falls du damit mich meintest, sorry. Dazu musst du einen anderen fragen...

Edit: Bin ich mal nicht so, auch wenn du D.Net benutzt...
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.
  Mit Zitat antworten Zitat
JayK

Registriert seit: 1. Mai 2005
49 Beiträge
 
#7

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 12. Jun 2005, 10:12
Zitat von Robert_G:
Zitat von JayK:
Geht das für Delphi .NET (ich meine damit die .NET VCL) nicht auch
Falls du damit mich meintest, sorry. Dazu musst du einen anderen fragen...

Edit: Bin ich mal nicht so, auch wenn du D.Net benutzt...
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.
Um ehrlich zu sein:
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 )
nil
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Eigene Ereignisse implementieren für Delphi .NET und C#

  Alt 12. Jun 2005, 10:17
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.
  Mit Zitat antworten Zitat
12. Jun 2005, 10:58
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.
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz