Click vs. dblClick

0

Czołem
robie coś na ksztłt Thumba(dynamicznie tworzonego) TPanel na nim TjvImage a pod nimi TjvLinkLabel , i teraz mam problem z tym ,że jak klikne na cokolwiek z tych trzech to zmieniam kolor Panela i Labela, takie ot sobie zaznaczenie, a jak 2xklik to powinien wchodzic do katalogu/piętro wyżej/obrazek na full screen.
Tylko ze teraz nie moge od razu wyciągnac dblclicka, musze najpierw zaznaczyc a potem dopiero działa dblklick, a dla labela działą oba tak jak powinny. Nie wiem wpisałem to poźniej w onMouseDown ale tez to co wyzej?
mam tak:

procedure ThumbMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssDouble in Shift then
  begin
  //...jakies funkcje do dblklika
  end
else
  begin
  //...zaznaczanie ify dla panel/label
  if (Sender is TjvImage) then
    ThumbMouseDown((TjvImage(Sender).Parent as TPanel),Button,Shift,x,y);//i cos takiego dla img
  end; 

moze to przez ta rekurencje?
dzięki za wszelkie uwagi

0

dzięki za wszelkie uwagi

Hmmm... Ciężki orzech. Bo zauważ, że gdy wykonujesz dbClick, to się po prostu wykonuje zwykłe click, tylko, że 2 razy.
Hmmm... Tzn. najpierw wykonuje się onClick, a potem onDblClick

0

jedyny sposob jaki wymyslilem to uzycie timera .. wlaczanie przy onclick i czekajacego na kolejne klikniecie potem wylaczanie

0

a możesz pokazać jakis swoj kod?
ja zrobiłem tak i jakos mi nie działa :( co nie tak?

procedure Click(Sender : TObject);
begin
if timer1.enabled then
  begin
  //...procedurka dla dbklika
  end
else
  begin
  timer1.enabled := true; //timer na 1000
  //...procedurka dla klika
  end;
end;

a dla timera dalem interval na 1000 i zdazenie timer1.enabled := false;
jak na moja banie to powino działac, a nie bardzo (robiłem to tylko dla panela i nie poszło to dalej nie sprawdzałem)
hilfe? z góry dzienx

1 użytkowników online, w tym zalogowanych: 0, gości: 1