Auch wenn das Thema schon drei Monate alt ist, möchte ich dennoch hier posten, denn meine Frage passt thematisch gut in diesen Thread.
Ich arbeite noch an meiner Komponente
TWechselButton und versuche nun, die Events hinzubekommen. Dazu habe ich hier in der
DP diesen Thread gefunden, und auch versucht meine Events nach diesem Schema hier zu programmieren.
Leider tut sich überhauptnichts.
Wenn ich in einem fertigen Test-Programm auf meine Komponente klicke, wird weder die Aktion ausgeführt, die ich zur Entwicklungszeit in die Ereignisbehandlungsroutine "OnMouseDown" geschreiben habe, noch die automatische Wertzuweisung, die ich versucht habe in die Komponente zu implementieren.
Aber vieleicht sollte ich das an ein wenig Code deutlich machen:
Delphi-Quellcode:
type
Wechselbutton = class(TCustomControl)
private
FOnMouseDown :TNotifyEvent;
protected
Procedure DoChange; dynamic;
public
published
Property OnMouseDown: TNotifyEvent read FOnMouseDown write FOnMouseDown;
end;
implementation
Procedure Wechselbutton.DoChange;
begin
if Assigned(FOnMouseDown) then
Begin
FOnMouseDown(self);
b_MouseDown := True; //Bei jedem OnMouseDown soll b_MouseDown auf TRUE gesetzt werden!
End;
end;
Mein Ziel ist nun folgendes: Wenn auf die Komponente geklickt wird, soll
OnMouseDown die Variable "b_MouseDown" auf True gesetzt, und die Komponente neu gezeichnet werden.
OnMouseUp soll es dann umgekehrt gemacht werden.
An beiden Methoden soll der Entwickler aber nicht mehr dran rumfummeln müssen (muss er bei TButton ja auch nicht), das heisst, die Methoden sollten in der Komponente aufgerufen werden.
Zusätzlich soll der Entwickler, natürlich wie gewohnt über den Objektinspektor, Ereignisse meiner Komponente behandeln können.
Ich denke mal, in der Prozedur DoChange steckt irgendwo der Wurm drin.
Könnt ihr mir sagen, wo?
MfG,
hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.