AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi SpeedButton und OnDblclick funktioniert nicht!
Thema durchsuchen
Ansicht
Themen-Optionen

SpeedButton und OnDblclick funktioniert nicht!

Ein Thema von Framige · begonnen am 19. Mär 2005 · letzter Beitrag vom 20. Mär 2005
Antwort Antwort
Framige

Registriert seit: 4. Mai 2003
Ort: Bad Münstereifel
13 Beiträge
 
Delphi 7 Professional
 
#1

SpeedButton und OnDblclick funktioniert nicht!

  Alt 19. Mär 2005, 21:25
Hi Leute,
irgendwie bin ich zu blöd heute.
Ich habe einen SpeedButton in meiner Anwendung, mit dem ich über OnClick ein Ereignis auslöse.
Soweit so gut.
Wenn ich hier aber über OnDblClick ein Ereignis auslösen will, klappt das nicht.
Ich habe schon alles mögliche versucht. Aber er reagiert einfach auf meinen Doppelclick nicht.
Source:

Procedure TForm2.SpeedButton1DblClick(Sender: TObject);
Begin
showmessage('Klappt.');
end;

Im Objektinspector habe ich SpeedButton1DblClick in OnDblClick eingetragen. Aber es tut sich einfach nichts. Bei OnClick klappt es.
Ich möchte den Button aber gerne mit 2 Funktionen ausstatten.

Was mache ich hier verkehrt???
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#2

Re: SpeedButton und OnDblclick funktioniert nicht!

  Alt 19. Mär 2005, 21:37
Liegt wohl daran, das der erste Klick(von deinem Doppelklick) beim loslassen wieder "vergessen" wird, sieht man ja auch am Button der wieder ausrastet.

Stell mal GroupIndex auf irgendwas ausser 0, AllowAllUp auf false und Down auf true...dann siehst du das es geht.... frag mich nicht warum das so ist.. borland halt

MfG

BTW: Du könntest das ganze aber easy selbst machen, mit nem timer
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#3

Re: SpeedButton und OnDblclick funktioniert nicht!

  Alt 19. Mär 2005, 21:40
Hi,
Bei mir geht das mit dem dblclck auch ned.
Ich habe mir mal eine komplizierte lösung ausgedacht...
Also Eine Global variable BbClick : Integer.

Delphi-Quellcode:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 inc(BbClick);
 if BbClick mod 2 = 0 then showmessage('DbCick');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 
 BbClick := 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 BbClick := 0;
end;
Das interval des Timers auf ca 500 ms setzt und fertig...das ist vieleicht nicht die eleganteste lösung aber sie funktioniert!
Mfg ReDoX
  Mit Zitat antworten Zitat
Framige

Registriert seit: 4. Mai 2003
Ort: Bad Münstereifel
13 Beiträge
 
Delphi 7 Professional
 
#4

Re: SpeedButton und OnDblclick funktioniert nicht!

  Alt 19. Mär 2005, 21:44
Zitat von Pseudemys Nelsoni:
Stell mal GroupIndex auf irgendwas ausser 0, AllowAllUp auf false und Down auf true...dann siehst du das es geht.... frag mich nicht warum das so ist.. borland halt
Ja du hast Recht. Mit den obigen Eigenschaften klappt es.
Äusserst komisch das...

Diese Lösung hat nur den Nachteil, das das Ereignis OnClick ebenfalls aufgerufen wird.

Die Lösung von ReDoX umgeht allerdings auch dieses Problem. Deshalb sollte man die Variante wählen, will man nicht das Onclick Ereignis auch haben.
Im Test hat sich übrigens ein Intervall von 750 bewährt.

Many Thanks
Framige
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: SpeedButton und OnDblclick funktioniert nicht!

  Alt 20. Mär 2005, 01:46
Also das mit dem Timer mag ja meistens funktionieren, aber das Wahre ist es auch nicht. Es könnte ja passieren, dass zwischen dem ersten und dem zweiten Klick des Doppelklick der Timer ausgelöst wird, und dann die globale Variable wieder rückgesetzt wird. Da hätte der Benutzer zwar doppelt geklickt, aber das Programm erkennt das nicht.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: SpeedButton und OnDblclick funktioniert nicht!

  Alt 20. Mär 2005, 12:32
Wie wäre es mit GetTickCount?
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if GetTickCount - Ticks < 500 then
    ShowMessage('Doppelklick');
  Ticks := GetTickCount;
end;
Ich denke, auf QueryPerformanceCounter kann man hier verzichten .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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