![]() |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
danke!!!
ich habs jetzt mal beides und zwar so:
Delphi-Quellcode:
Wenn ich nun jedoch einen MyButton erzeuge und auf diese klicke, passiert nix!public property Actiongroup: TActionGroup read factiongroup write fActionGroup; constructor Create(); procedure Clicked(Sender:TObject); procedure Click();override; published ... procedure TAdvActionGlowButton.Click; begin inherited; showmessage('CLICKED'); end; constructor TAdvActionGlowButton.Create; begin self.onClick := Clicked; end; Muß ich noch irgendwas verknüpfen??? |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
Hi winx,
Du solltest es am besten so machen, wie Muetze es vorgeschlagen hat. Fange die WM_COMMAND (CN_COMMAND ?) und überprüfe auf BN_CLICKED und führe dann eine Methode aus. Dann bleibt das OnClick Ereignis unangetastet, was mit Sicherheit im Sinne des Benutzers und auch in deinem Sinne sein dürfte. Gruß Neutral General |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
Hi,
das Problem mit dem Objektinspektor wäre mir erstmals egal, da ich die Buttons dynamisch erzeuge. Was mich wundert, ist, dass es nicht funktioniert, wenn ich im Konstruktor das onClick Ereigniss neu zuweise: constructor TAdvActionGlowButton.Create; begin self.onClick := Clicked; end; will das jetzt irgendwie verstehen :-) |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
Hi,
also, ich bin etwas verwirrt. Eigentlich so verwirrt, dass ich es schnell mal ausprobiert habe. Wo ist das Problem? Procedure Click vererben und alles ist gut. Klicke ich im folgenden Bsp. auf den Button, dann kommt mein Hallo. Das OnClick muss dabei nicht vergewaltigt werden.
Delphi-Quellcode:
Gruß oki
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMyButton = class(TButton) public procedure Click; override; end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private public Button2 : TMyButton; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Button2 := TMyButton.Create(self); Button2.parent := self; Button2.top := 50; Button2.Left := 50; end; { TMyButton } procedure TmyButton.Click; begin inherited; MessageDlg('Hallo', mtInformation, [mbOK], 0); end; end. |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
Also ich hab bei einem Panel (das macht aber keinen unterschied) die proceduren DoMouseDown und DoMouseUp überschrieben.
Hab als erstes inherited gemacht und dan meine eigenen Funktionen eingebaut. Es funkt super :mrgreen: :zwinker: |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
Viele Wege führen nach Rom.
Man sollte nur nich Published-Events auf eigene Proceduren der Klasse umleiten. Die sind eben mal dafür gedacht, dass der Benutzer der Klasse auf Ereignisse reagieren kann. Die Klasse selbst arbeitet ja mit ihren Methoden. Dafür gibt es ja nun mal die Vererbung. Gruß oki |
Re: Eigene Kompo von TButton ableiten? Wie OnClick realisier
bei mir jetzt auch, hab nur das inherited im Konstruktor vergessen ich volldepp
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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