AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Doppelklick "warten"

Ein Thema von TheReaper · begonnen am 2. Apr 2005 · letzter Beitrag vom 4. Apr 2005
Antwort Antwort
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#1

Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:05
Hallo!

In einer ListView hab ich mehrere Einträge. Bei einem Click soll mit dem Eintrag was gemacht werden und bei einem Doppelklick etwas anderes. Mein Problem ist, dass wenn man einen Doppelklick macht auch der OnClick Code ausgeführt wird. Das will ich aber nicht. Also entweder ein Klick, oder Doppelt. Kann man da irgendwie auf den Doppelklick "warten"?

Also ungefähr so:

Procedure TForm1.ListView1Click(Sender: TObject);
begin

auf dblClick warten
if kein dblClick then ...

end;
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

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

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:11
AFAIK wird bei einem Doppelklick auch immer das OnClick-Ereignis ausgelöst und erst danach onDblClick.

Irgendwo gab es aber in der DP schon mal das selbe Problem/ selbe Frage. Ich weiß zwar nicht, ob damals eine Lösung gefunden wurde, aber du kannst ja mal die Forumssuche starten und nachschauen.

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
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:13
Hab ich schon durchsucht aber nichts gefunden. Sonst hätt ich ja auch nicht ein neuen thread gestartet.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

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

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:22
Man könnte das OnClick-Ereignis auch kurzfristig "abstellen":
Delphi-Quellcode:
ListView1.Onclick:= nil;
//hier jetzt irgendwas machen...

//wieder zuweisen:
Listview1.OnClick:= ListView1Click;
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 malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:25
Du kannst das OnDblClick ja "per Hand" machen. Also mit Timer Zeit prüfen, die seit dem Click vergangen ist. Wenn innerhalb von eienr halben Sekunde (oder anderen Abständen) kein zweiter Click passiert ist, wird OnClick ausgelöst, sonst OnDblClick
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

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

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:30
Also kommt nur mir das so vor, oder geht es anderen auch so, dass sie meinen genau diesen Vorschlag (Timer) zum selben Thema aber in einem anderen Thread schon gelesen zu haben?
Wie gesagt, das Thema wurde definitiv schon einmal in der DP besprochen. Nur leider wieß ich nicht mehr, wie der Thread hieß.

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 Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#7

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:39
Hallo,

hilft Dir das weiter?
TMClick123 v 1.0
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Auf Doppelklick "warten"

  Alt 2. Apr 2005, 23:40
Moin Reaper,

probier's mal hiermit:

Delphi-Quellcode:
var
  Form1: TForm1;
  dwDblClickTime : DWORD;
  fProcessingDblClick : boolean;

implementation

{$R *.DFM}

procedure TForm1.ListView1DblClick(Sender: TObject);
begin
  fProcessingDblClick := true;
  Label2.Caption := 'DoubleClick';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := 'Reset';
  Label2.Caption := 'Reset';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  dwDblClickTime := GetDoubleClickTime;
  fProcessingDblClick := false;
end;

procedure TForm1.ListView1Click(Sender: TObject);

var
  dwDelay : DWORD;

begin
 dwDelay := GetTickCount;
 While (GetTickCount-dwDelay) < dwDblClickTime do Application.ProcessMessages;
 if fProcessingDblClick then begin
   fProcessingDblClick := false;
   exit;
 end;
 Label1.Caption := 'Click';
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Auf Doppelklick "warten"

  Alt 4. Apr 2005, 13:26
@Christian:
Das Funktioniert Perfekt!
Is ja eigentlich ganz einfach. Hätte ich auch ein drauf kommen können.
Danke sehr!
  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:54 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