Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> *Промежуток* между кликами мышки... 
:(
    Опции темы
IDontBelieveInSilence
Дата 22.12.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Здравствуйте.

У меня в видео плеере для мышки есть настройки, для одиночного клика: Пауза(активно), выключить звук, таскать окно; а для двойного щелчка: полный экран(активно), не делать ничего, пауза.
Проблема в том, что скажем... делаешь двойной щелчок желая получить полный экран, а получаешь и паузу и полный экран :-\

Вот как решить эту проблему? Можно ли как-то отследить второй щелчок когда первый уже был сделан? =) Ну или что-нибудь в этом роде...

Заранее благодарен за готовое решение.

Это сообщение отредактировал(а) IDontBelieveInSilence - 22.12.2006, 22:33
PM MAIL   Вверх
Alexeis
Дата 22.12.2006, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Код

procedure TForm1.FormDblClick(Sender: TObject);
begin
 //
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  //
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 //
end;

Порядок возникновения событий таков сначало возникает MouseDown, затем FormClick, затем DblClick. Потому предлагаю после возникновения события FormClick не обрабатывать событие сразу, а запустить таймер примерно на 150-200мс, а в обработчике DblClick установить флаг (булевскую переменную). После события таймера проверить не была ли установлена булевская переменная (из DblClick) , если да, то сбросить ее и закончить выполнение, иначе рассматривать клик как одиночный и выполнить операции одиночного клика.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
IDontBelieveInSilence
Дата 23.12.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 3.11.2006

Репутация: нет
Всего: нет



Ничего не понял. Можно пример?
PM MAIL   Вверх
Alexeis
Дата 23.12.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure FormDblClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
 isDblClick : Boolean = False;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval := 150;
  Timer1.Enabled := False;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if isDblClick
  then
    begin
      Timer1.Enabled := False;
      isDblClick := False;
      Exit;
    end
  else
    begin
      Timer1.Enabled := False;
      ShowMessage('Одинарный клик');
    end;  

end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
  isDblClick := True;
  ShowMessage('Двойной клик');
end;


попробуйте сделать двойной и одинарный клик по форме.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0658 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.