Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Doppelklick und Hotkey (https://www.delphipraxis.net/168972-doppelklick-und-hotkey.html)

beanbear6 20. Jun 2012 23:27

Doppelklick und Hotkey
 
Hallo,
ich muss auf einem Speedbutton mit Doppelklick und z.B. Strg+B reagieren.
Hab das nun mit ActionList versucht, das Ereignis reagiert aber nur
auf OnExecute, also auf Klick und nicht auf Doppelklick. Gibt es eine
Möglichkeit, auf einem Speedbutton mit Doppelklick und auch mit STRG+B
zu reagieren? Ich möchte nicht die gleiche Procedure zweimal schreiben
müssen - bläst das Programm ja unnötig auf. Bin noch bissl frisch mit Delphi,
drum such ich hier nach Hilfe.
Vielen Dank für jeden Tip.
Gruß beanbear

himitsu 21. Jun 2012 00:20

AW: Doppelklick und Hotkey
 
Du kannst an eine Methode an mehrere Ereignisse hängen.

Geh mal zum Doppelklick des SpeedButton und trag dort die selbe Methode ein, wie auch schon am Execute hängt. :zwinker:
Und selbst wenn die beiden Methoden nicht kompatibel wären (unterschiedliche Parametersignatur), könnte man immernoch eine eigene Prozedur erstellen und diese in beiden Ereignissen aufrufen.

beanbear6 21. Jun 2012 06:18

AW: Doppelklick und Hotkey
 
Hi,
wenn ich Dich richtig verstehe, dann wär das so wie ich gemacht hab:

Speedbutton mit Caption: "Zurück", dazu ne ActionList.

In der ActionList neue Aktion mit der Caption des Speedbuttons eingetragen
dazu den ShortCut STRG+B eingetragen.

Dann hab ich in der Action1 im OnExecute z.B. Farbe der Form1
auf rot gesetzt (zum Test)

Und im OnDblClick des Speedbuttons das Ereignis Action1Execute.

Ergebnis: Das funktioniert nicht.. :-(

Der ShortCut STRG+B reagiert, aber nicht der Doppelklick auf den Speedbt.
Was mach ich hier falsch?
Gruß beanbear

Bummi 21. Jun 2012 06:42

AW: Doppelklick und Hotkey
 
Wenn Du Dir in Buttons anschaust wie bei Speedbutton WM_LBUTTONDBLCLK implementiert ist, siehst Du warum dies nur unter bestimmten Umständen funktioniert.
Gegf. die Klasse überschreiben ... und anders implementieren.

beanbear6 21. Jun 2012 11:34

AW: Doppelklick und Hotkey
 
Hi Bummi,
da ich wie bereits gepostet noch nicht so fit
bin in Delphi kann ich mit Deinem Posting leider
nichts anfangen... (is aber nicht böse gemeint) :-)
Gruß beanbear

Bummi 21. Jun 2012 12:00

AW: Doppelklick und Hotkey
 
Delphi-Quellcode:
type
  TSpeedbutton=Class(Buttons.TSpeedButton)
        procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;
  End;


  TForm5 = class(TForm)
    SpeedButton1: TSpeedButton;
    procedure SpeedButton1DblClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.SpeedButton1DblClick(Sender: TObject);
begin
  Showmessage('Hallo')
end;

{ TSpeedbutton }

procedure TSpeedbutton.WMLButtonDblClk(var Message: TWMLButtonDblClk);
begin
  if Assigned(OnDBLClick) then OnDBLClick(Self)

end;

beanbear6 22. Jun 2012 12:18

AW: Doppelklick und Hotkey
 
Hallo Bummi,
habs hingekriegt. Vielen Dank Dir!!!
Gruß Reiner

Bummi 22. Jun 2012 14:02

AW: Doppelklick und Hotkey
 
:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 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