Hier wie versprochen der Kram den wir vorhin im Chat besprochen haben. Ich hab noch mal alles was ich an Code vorhin übern Chat gejagt hab zusammengefasst. Aber: untested.
Delphi-Quellcode:
type TMyButton = class(TButton)
private
FWasClicked: boolean;
function GetWasClicked: boolean;
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
public
constructor Create(AOwner: TComponent); override;
property WasClicked: boolean read GetWasClicked write FWasClicked;
end;
.
. Nicht vergessen, beim Createn anstelle von TButton.Create TMyButton.Create aufzurufen!!
.
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
WasClicked := false; // Initialisieren
end;
procedure TMyButton.CNCommand(var Message: TWMCommand);
begin
// Die Methode hier wird immer aufgerufen, wenn Windows eine COMMAND-Botschaft
// an deinen Button sendet
if Message.NotifyCode = BN_CLICKED then // Prüfen ob's die richtige Message ist
WasClicked := true; // Deine Eigenschaft setzen
inherited;
end;
function TMyButton.GetWasClicked: boolean;
begin
Result := FWasClicked;
WasClicked := false; // Wieder resetten
end;
function ButtonClicked(Obj: TMyButton): boolean;
begin
Result := Obj.WasClicked;
end;
.
.
.
end.
Hoffe das funktioniert jetzt alles.