Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Doppelclick bei Actions verhindern (https://www.delphipraxis.net/186804-doppelclick-bei-actions-verhindern.html)

Thomas Feichtner 1. Okt 2015 11:56

Doppelclick bei Actions verhindern
 
Hallo,

wie kann ich verhindern, dass der Anwender auf einen Menüpunkt (Action) einen doppelclick macht?

Zoot 1. Okt 2015 12:11

AW: Doppelclick bei Actions verhindern
 
Die Maus wegnehmen?

Sir Rufo 1. Okt 2015 12:25

AW: Doppelclick bei Actions verhindern
 
Zitat:

Zitat von Zoot (Beitrag 1317391)
Die Maus wegnehmen?

So hart? Man kann es doch erst mal mit Hypnose versuchen (beim Anwender und der Maus) :mrgreen:

Sherlock 1. Okt 2015 12:34

AW: Doppelclick bei Actions verhindern
 
Das geht doch gar nicht :gruebel: Das Menü geht schon beim ersten Click zu.

Sherlock

Uwe Raabe 1. Okt 2015 12:35

AW: Doppelclick bei Actions verhindern
 
Mehr Rum reichen? 8-)

Perlsau 1. Okt 2015 13:03

AW: Doppelclick bei Actions verhindern
 
Zitat:

Zitat von Thomas Feichtner (Beitrag 1317389)
Hallo, wie kann ich verhindern, dass der Anwender auf einen Menüpunkt (Action) einen doppelclick macht?

... oder anders ausgedrückt: Was ist der Hintergrund deiner Frage? Wieso möchtest du etwas vermeiden, was sowieso niemals eintritt – weil der zweite Klick auf denselben Menüpunkt das Menü wieder schließt?

baumina 1. Okt 2015 13:15

AW: Doppelclick bei Actions verhindern
 
Beim Klick auf einen Hauptmenü-Eintrag ohne Untermenü geht da gar nix zu. :stupid:

Thomas Feichtner 5. Okt 2015 08:09

AW: Doppelclick bei Actions verhindern
 
Hallo!

Ich hätte mal folgendes probiert:
Eine Ableitung der ActionList und mich reingehängt.
Das funktioniert aber nur so lange in einem OnExecute nicht wieder eine andere Action aufgerufen wird.


Delphi-Quellcode:
unit myActionList;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ActnList, IniFiles, Stdctrls, Menus;

type
  TmyActionList = class(TActionList)
  private
    { Private-Deklarationen }
    oAction: TCustomAction;
    FOnExecuteAction: TNotifyEvent;
    procedure OnActionExecute(Sender: TObject);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    function ExecuteAction(Action: TBasicAction): Boolean; override;
  published
    { Published-Deklarationen }
  end;

var
  oCallBackToMemLog : TCallBackEventToMemLog;

implementation

constructor TmyActionList.Create(AOwner: TComponent);
begin
  inherited;
  oAction := nil;
end;

function TmyActionList.ExecuteAction(Action: TBasicAction): Boolean;
begin
  if Action is TCustomAction then begin
    FOnExecuteAction := TCustomAction(Action).OnExecute;
    TCustomAction(Action).OnExecute := OnActionExecute;
    oAction := TCustomAction(Action);
    oAction.Enabled := False;
  end;
end;

procedure TmyActionList.OnActionExecute(Sender: TObject);
begin
  if Assigned(FOnExecuteAction) then begin
    FOnExecuteAction(Self);
  end;
  oAction.Enabled := True;
  TCustomAction(oAction).OnExecute := FOnExecuteAction;
end;

end.

baumina 5. Okt 2015 09:42

AW: Doppelclick bei Actions verhindern
 
... und gestern war Sonntag.

Kannst du mal bitte erklären was du warum machen willst und wobei du nun Probleme hast?

Thomas Feichtner 5. Okt 2015 10:04

AW: Doppelclick bei Actions verhindern
 
Ich habe im Hauptformular von DevExpress die TdxNavBar.
Bei den einzelnen Items hängt überall eine Action dahiner.
Nun möchte ich einen Doppelclick des Anwenders verhindern.
Wie soll es funktionieren?
Beim Click wird die Action disabled und anschlißend wieder enabled.
Nun möchte ich das nicht bei jedem OnClick ausführen sondern global verhindern -> Daher meine Ableitung der Actionlist.
Das funktioniert soweit auch. Jedoch wenn ich innerhalb eines OnExcute eine andere Action aufrufe komme ich nicht mehr auf die erste Action zurück.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.
Seite 1 von 2  1 2      

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