Zitat:
Kann mir jemand das mal für Pascal übersetzen. Ich bekomme das nicht hin
Ich habe das gemacht, funktioniert jedoch nicht, da das ereignis nirgends ausgelöst wird.
Bist du dir sicher, dass du weißt was du und vor allem was der designer da für dich macht?
Hast du irgendwo in meinem Code in Feld gesehen? (Soviel C# sollte man schon erwarten können
)
Nein. Warum _sollte_ eigentlich klar sein: Ich will den Event des Vorgängers nur mit einem Attribute versehen.
Ihn also durchschleifen, nicht verstecken! Da er nicht virtuell deklariert ist, musste ich ihn verpacken und, wie gesagt, alle Zugriffe auf Click des Vorgängers durchreichen.
Das hier könnte gehen:
Delphi-Quellcode:
ClickableTextBox = class(Textbox)
public
Browsable(true)]
property Click;
end;
Geht es nicht, bräuchte man eine 1:1 Umsetzung meines C# Codes zu D.Net:
Delphi-Quellcode:
ClickableTextBox = class(Textbox)
private
procedure add_Click(value : EventHandler);
procedure remove_Click(value : EventHandler);
public
Browsable(true)]
property Click : EventHandler add add_Click remove remove_Click; reintroduce;
end;
...
procedure ClickableTextBox.add_Click(value : EventHandler);
begin
include(inherited Click, value);
end;
procedure ClickableTextBox.remove_Click(value : EventHandler);
begin
exclude(inherited Click, value);
end;
Es kann sein, dass der Compiler am reintroduce abkackt. (habe keinen D.Net compiler und es auch ewig nicht angefast)
Wenn er es nicht kapiert, nimm es einfach weg.
Zu meiner Frage oben: Das war keine rocket science und auch keine architektonische Meisterleistung. Es scheiterte schon am Deklarieren eines einzigen Events...