Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: Peter, DEMBEL, YURIY  
Назначить действие по 2 щелчку левой кнопкой мыши
wikslДата: Пт, 02 Сентября 2011, 11:02 | Сообщение # 1
Участник
Подскажите, плиз как сделать так, чтобы по двойному щелчку по рисунку левой кнолпкой мыши происходило одно действие, а по одинарному другое. Если это возможно без использования счетчика.

Вик

Сообщение отредактировано
wiksl - Пт, 02 Сентября 2011, 11:07
 
СообщениеПодскажите, плиз как сделать так, чтобы по двойному щелчку по рисунку левой кнолпкой мыши происходило одно действие, а по одинарному другое. Если это возможно без использования счетчика.

Автор - wiksl
Дата добавления - 02 Сентября 2011 в 11:02
AlienДата: Пт, 02 Сентября 2011, 12:35 | Сообщение # 2
wiksl, В NB не предусмотрен даблклик почему-то :(
Я например сделал так, самый извращенский способ наверное :)
Прикрепления: dbclick.rar (1.7 Kb)
 
Сообщениеwiksl, В NB не предусмотрен даблклик почему-то :(
Я например сделал так, самый извращенский способ наверное :)

Автор - Alien
Дата добавления - 02 Сентября 2011 в 12:35
ВадимДата: Пт, 02 Сентября 2011, 13:35 | Сообщение # 3
Генератор идей
wiksl, можно сделать реакцию и на двойной и на тройной и т.д. клик.
Временем старта таймера можем регулировать "скорость двойного щелчка".

Артём опередил :). Но выложу и свой пример, реализован - одинарный/двойной/тройной клик.

Quote (Alien)
самый извращенский способ наверное

А почему извращенский? Работает же, и гибко. Можно даже настраивать "чувствительность" к скорости кликов. Хотя, конечно же, проще было бы, если бы разрабы добавили в события вкладку Double Click...

Добавлено (02 Сентябрь 2011, 13:35)
---------------------------------------------
wiksl, в моем примере только путь к своей картинке надо указать (в свойствах объекта Picture1).

Прикрепления: DoubleClickToPi.rar (2.1 Kb)


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщениеwiksl, можно сделать реакцию и на двойной и на тройной и т.д. клик.
Временем старта таймера можем регулировать "скорость двойного щелчка".

Артём опередил :). Но выложу и свой пример, реализован - одинарный/двойной/тройной клик.

Quote (Alien)
самый извращенский способ наверное

А почему извращенский? Работает же, и гибко. Можно даже настраивать "чувствительность" к скорости кликов. Хотя, конечно же, проще было бы, если бы разрабы добавили в события вкладку Double Click...

Добавлено (02 Сентябрь 2011, 13:35)
---------------------------------------------
wiksl, в моем примере только путь к своей картинке надо указать (в свойствах объекта Picture1).


Автор - Вадим
Дата добавления - 02 Сентября 2011 в 13:35
AlienДата: Пт, 02 Сентября 2011, 13:51 | Сообщение # 4
Quote (Вадим)
А почему извращенский?

Задержка есть при выполнении.
 
Сообщение
Quote (Вадим)
А почему извращенский?

Задержка есть при выполнении.

Автор - Alien
Дата добавления - 02 Сентября 2011 в 13:51
ВадимДата: Пт, 02 Сентября 2011, 13:57 | Сообщение # 5
Генератор идей
Quote (Alien)
Задержка есть при выполнении.

Задержка и в винде есть, просто надо выбрать сходное время старта таймера и все дела. Я секунду выставил конечно с запасом... В винде скорость двойного щелчка тоже регулируется.

А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта? Чтобы и скорость двойного щелчка была глобальная - т.е. установленная в системе пользователя; либо (опционально) настраивалась локально в проекте.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alien)
Задержка есть при выполнении.

Задержка и в винде есть, просто надо выбрать сходное время старта таймера и все дела. Я секунду выставил конечно с запасом... В винде скорость двойного щелчка тоже регулируется.

А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта? Чтобы и скорость двойного щелчка была глобальная - т.е. установленная в системе пользователя; либо (опционально) настраивалась локально в проекте.

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 13:57
AlienДата: Пт, 02 Сентября 2011, 14:02 | Сообщение # 6
Вадим, скорость щелчка, но не время после которого выполняются действия.
В винде действия выполняется мгновенно после второго щелчка, а в нашем случае после второго щелчка идет ещё задержка, а потом выполнение действия.
Quote (Вадим)
А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта?

Это уже вряд ли.
 
СообщениеВадим, скорость щелчка, но не время после которого выполняются действия.
В винде действия выполняется мгновенно после второго щелчка, а в нашем случае после второго щелчка идет ещё задержка, а потом выполнение действия.
Quote (Вадим)
А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта?

Это уже вряд ли.

Автор - Alien
Дата добавления - 02 Сентября 2011 в 14:02
ВадимДата: Пт, 02 Сентября 2011, 14:23 | Сообщение # 7
Генератор идей
Quote (Alien)
скорость щелчка, но не время после которого выполняются действия.

А, вот ты о чем. Понятно. Но, в принципе, задержка вполне терпимая, мне кажется.

Quote (Alien)
Это уже вряд ли.

Жаль, конечно. Был бы полезный универсальный плаг...
Есть принципиальные ограничения для реализации подобного плагина?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alien)
скорость щелчка, но не время после которого выполняются действия.

А, вот ты о чем. Понятно. Но, в принципе, задержка вполне терпимая, мне кажется.

Quote (Alien)
Это уже вряд ли.

Жаль, конечно. Был бы полезный универсальный плаг...
Есть принципиальные ограничения для реализации подобного плагина?

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 14:23
ГарикДата: Пт, 02 Сентября 2011, 14:59 | Сообщение # 8
Системную скорость двойного клика определить то не проблема
Существует функция API GetDoubleClickTime, но
Quote (Вадим)
А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта?

Тут скорей всего не выйдет, хотя...
 
СообщениеСистемную скорость двойного клика определить то не проблема
Существует функция API GetDoubleClickTime, но
Quote (Вадим)
А возможен плаг, с помощью которого можно назначить событие Double Click для любого объекта?

Тут скорей всего не выйдет, хотя...

Автор - Гарик
Дата добавления - 02 Сентября 2011 в 14:59
AlienДата: Пт, 02 Сентября 2011, 15:08 | Сообщение # 9
Quote (Вадим)
Есть принципиальные ограничения для реализации подобного плагина?

Я даже ни разу не пробовал манипулировать объектами в NB, но думаю что не получится.
В принципе можно отлавливать глобальное событие, а там искать координаты по которым ты кликнул (по кнопке или нет)
 
Сообщение
Quote (Вадим)
Есть принципиальные ограничения для реализации подобного плагина?

Я даже ни разу не пробовал манипулировать объектами в NB, но думаю что не получится.
В принципе можно отлавливать глобальное событие, а там искать координаты по которым ты кликнул (по кнопке или нет)

Автор - Alien
Дата добавления - 02 Сентября 2011 в 15:08
ВадимДата: Пт, 02 Сентября 2011, 15:11 | Сообщение # 10
Генератор идей
Quote (Гарик)
Тут скорей всего не выйдет, хотя...

Вот это "хотя..." звучит оптимистично! Не будем терять надежду :D .

Вообще говоря, если по-максимуму, то хорошо бы иметь плаг, который может навешивать все стандартные мышиные события (ну, хотя бы, просто три кнопки и двойной щелчок) на любой объект NB (на тот же Text, или TextEntry, например).

Добавлено (02 Сентябрь 2011, 15:11)
---------------------------------------------

Quote (Alien)
Я даже ни разу не пробовал манипулировать объектами в NB

Петр как-то говорил о том, что доступ к объектам пока не описан в SDK. Я тогда написал в неософт, что хорошо бы для плагиностроителей дать такой доступ к объектам. За предложение как всегда вежливо поблагодарили, но что реально сделано в этом направлении я не знаю.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Гарик)
Тут скорей всего не выйдет, хотя...

Вот это "хотя..." звучит оптимистично! Не будем терять надежду :D .

Вообще говоря, если по-максимуму, то хорошо бы иметь плаг, который может навешивать все стандартные мышиные события (ну, хотя бы, просто три кнопки и двойной щелчок) на любой объект NB (на тот же Text, или TextEntry, например).

Добавлено (02 Сентябрь 2011, 15:11)
---------------------------------------------

Quote (Alien)
Я даже ни разу не пробовал манипулировать объектами в NB

Петр как-то говорил о том, что доступ к объектам пока не описан в SDK. Я тогда написал в неософт, что хорошо бы для плагиностроителей дать такой доступ к объектам. За предложение как всегда вежливо поблагодарили, но что реально сделано в этом направлении я не знаю.

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 15:11
AlienДата: Пт, 02 Сентября 2011, 15:20 | Сообщение # 11
Quote (Вадим)
мышиные события (ну, хотя бы, просто три кнопки и двойной щелчок) на любой объект NB (на тот же Text, или TextEntry, например).

Вот глобальным событием двойного клик можно определить куда ты кликнул думаю :) Или не удобно?
 
Сообщение
Quote (Вадим)
мышиные события (ну, хотя бы, просто три кнопки и двойной щелчок) на любой объект NB (на тот же Text, или TextEntry, например).

Вот глобальным событием двойного клик можно определить куда ты кликнул думаю :) Или не удобно?

Автор - Alien
Дата добавления - 02 Сентября 2011 в 15:20
ГарикДата: Пт, 02 Сентября 2011, 15:22 | Сообщение # 12
Вадим, ну попробуй ещё подкинуть им (разрабам) идейку на счёт DoublеClickа для объектов.
А вдруг произойдёт чудо ( :D )


Сообщение отредактировано
Гарик - Пт, 02 Сентября 2011, 15:25
 
СообщениеВадим, ну попробуй ещё подкинуть им (разрабам) идейку на счёт DoublеClickа для объектов.
А вдруг произойдёт чудо ( :D )

Автор - Гарик
Дата добавления - 02 Сентября 2011 в 15:22
ВадимДата: Пт, 02 Сентября 2011, 15:24 | Сообщение # 13
Генератор идей
Quote (Alien)
Вот глобальным событием двойного клик можно определить куда ты кликнул думаю

Не понял мысль. Расшифруй.

Добавлено (02 Сентябрь 2011, 15:24)
---------------------------------------------

Quote (Гарик)
попробуй ещё подкинуть им идейку на счёт DoublеClickа для объектов

А я уже дважды про мышиные события писал, с интервалом в несколько месяцев.
Наверное у них есть причины этого не делать пока...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alien)
Вот глобальным событием двойного клик можно определить куда ты кликнул думаю

Не понял мысль. Расшифруй.

Добавлено (02 Сентябрь 2011, 15:24)
---------------------------------------------

Quote (Гарик)
попробуй ещё подкинуть им идейку на счёт DoublеClickа для объектов

А я уже дважды про мышиные события писал, с интервалом в несколько месяцев.
Наверное у них есть причины этого не делать пока...

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 15:24
AlienДата: Пт, 02 Сентября 2011, 15:25 | Сообщение # 14
Вадим, Ну кликаешь на любую область программы два раза и выполняется событие. А координаты курсора уже определить в этом момент не составит труда.
 
СообщениеВадим, Ну кликаешь на любую область программы два раза и выполняется событие. А координаты курсора уже определить в этом момент не составит труда.

Автор - Alien
Дата добавления - 02 Сентября 2011 в 15:25
ВадимДата: Пт, 02 Сентября 2011, 16:00 | Сообщение # 15
Генератор идей
Quote (Alien)
Ну кликаешь на любую область программы два раза и выполняется событие. А координаты курсора уже определить в этом момент не составит труда.

В принципе, для простых проектов это было бы наверное подспорьем, а для проектов посложнее... Геморно, мне кажется.

Вот если бы можно было по двойному клику получать имя объекта по которому был такой клик и (опционально) выполнять подпрограмму, то это было бы уже круто. Тогда можно было бы использовать двойной клик на любом объекте, без вычисления его координат.
DoubleClickNameObject "[dcnoNameObject]" "[dcnoNameSubroutineAction]"


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Пт, 02 Сентября 2011, 16:14
 
Сообщение
Quote (Alien)
Ну кликаешь на любую область программы два раза и выполняется событие. А координаты курсора уже определить в этом момент не составит труда.

В принципе, для простых проектов это было бы наверное подспорьем, а для проектов посложнее... Геморно, мне кажется.

Вот если бы можно было по двойному клику получать имя объекта по которому был такой клик и (опционально) выполнять подпрограмму, то это было бы уже круто. Тогда можно было бы использовать двойной клик на любом объекте, без вычисления его координат.
DoubleClickNameObject "[dcnoNameObject]" "[dcnoNameSubroutineAction]"

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 16:00
mishemДата: Пт, 02 Сентября 2011, 16:28 | Сообщение # 16
Эксперт форума
В чем проблема то?
Quote (Гарик)
Системную скорость двойного клика определить то не проблема

Присваиваем переменной системную скорость.
В команде
Delay "300"
Вместо 300 подставляем переменную. Вот вам и дубль клик. ;)
Прикрепления: dbclick.zip (1.7 Kb)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеВ чем проблема то?
Quote (Гарик)
Системную скорость двойного клика определить то не проблема

Присваиваем переменной системную скорость.
В команде
Delay "300"
Вместо 300 подставляем переменную. Вот вам и дубль клик. ;)

Автор - mishem
Дата добавления - 02 Сентября 2011 в 16:28
AlienДата: Пт, 02 Сентября 2011, 16:34 | Сообщение # 17
mishem, ты сам то замечаешь поведение этого примера? :)
задержка есть, причем в обоих случаях
 
Сообщениеmishem, ты сам то замечаешь поведение этого примера? :)
задержка есть, причем в обоих случаях

Автор - Alien
Дата добавления - 02 Сентября 2011 в 16:34
mishemДата: Пт, 02 Сентября 2011, 16:43 | Сообщение # 18
Эксперт форума
Quote (Alien)
задержка есть, причем в обоих случаях

Ну а как без задержки то? поставь меньше значение. Но можешь не успеть второй раз кликнуть. :D Я просто не пойму зачем таймер то нужен?
Убери

If "[klik]" "=" "1"
AlertBox "" "[klik]"
EndIf

задержка меньше будет.

А если в

If "[klik]" ">" "1"
AlertBox "" "[klik]"
EndIf

Вставить код на пару страниц. Задержка еще больше получится.
И вообще, вопрос так стоял

Quote (wiksl)
Подскажите, плиз как сделать так, чтобы по двойному щелчку по рисунку левой кнолпкой мыши происходило одно действие, а по одинарному другое. Если это возможно без использования счетчика.

Quote (wiksl)
Если это возможно без использования счетчика.

Я так понимаю без использования таймера.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Quote (Alien)
задержка есть, причем в обоих случаях

Ну а как без задержки то? поставь меньше значение. Но можешь не успеть второй раз кликнуть. :D Я просто не пойму зачем таймер то нужен?
Убери

If "[klik]" "=" "1"
AlertBox "" "[klik]"
EndIf

задержка меньше будет.

А если в

If "[klik]" ">" "1"
AlertBox "" "[klik]"
EndIf

Вставить код на пару страниц. Задержка еще больше получится.
И вообще, вопрос так стоял

Quote (wiksl)
Подскажите, плиз как сделать так, чтобы по двойному щелчку по рисунку левой кнолпкой мыши происходило одно действие, а по одинарному другое. Если это возможно без использования счетчика.

Quote (wiksl)
Если это возможно без использования счетчика.

Я так понимаю без использования таймера.

Автор - mishem
Дата добавления - 02 Сентября 2011 в 16:43
ВадимДата: Пт, 02 Сентября 2011, 16:48 | Сообщение # 19
Генератор идей
Quote (mishem)
В команде
Delay "300"
Вместо 300 подставляем переменную. Вот вам и дубль клик.

Оба на! Шикарное решение! thumbs_up
Подойдет для всех объектов, способных реагировать на событие "левый клик"!
И без таймера!

Получается, что Delay (пока длится) позволяет выполняться другим командам! Я как-то упускал этот момент ранее! mishem, спасибо за пример!!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (mishem)
В команде
Delay "300"
Вместо 300 подставляем переменную. Вот вам и дубль клик.

Оба на! Шикарное решение! thumbs_up
Подойдет для всех объектов, способных реагировать на событие "левый клик"!
И без таймера!

Получается, что Delay (пока длится) позволяет выполняться другим командам! Я как-то упускал этот момент ранее! mishem, спасибо за пример!!

Автор - Вадим
Дата добавления - 02 Сентября 2011 в 16:48
mishemДата: Пт, 02 Сентября 2011, 16:52 | Сообщение # 20
Эксперт форума
wiksl, Для того что бы код срабатывал быстрее. Вместо
AlertBox "" "[klik]"
Надо назначить подпрограммы.
GoSub "подпрограмма"
, а не писать весь код.
Тогда при условии читаться будет только по одной строчке, что заметно ускорит выполнение команд если код большой.
Если условие верно, будет срабатывать своя подпрограмма для каждого условия.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщениеwiksl, Для того что бы код срабатывал быстрее. Вместо
AlertBox "" "[klik]"
Надо назначить подпрограммы.
GoSub "подпрограмма"
, а не писать весь код.
Тогда при условии читаться будет только по одной строчке, что заметно ускорит выполнение команд если код большой.
Если условие верно, будет срабатывать своя подпрограмма для каждого условия.

Автор - mishem
Дата добавления - 02 Сентября 2011 в 16:52
wikslДата: Пт, 02 Сентября 2011, 18:25 | Сообщение # 21
Участник
Спасибо, электричесво вырубили, поэтому только счас буду пробовать

Добавлено (02 Сентябрь 2011, 18:25)
---------------------------------------------
Все получилось как хотелось. Большое спасибо


Вик
 
СообщениеСпасибо, электричесво вырубили, поэтому только счас буду пробовать

Добавлено (02 Сентябрь 2011, 18:25)
---------------------------------------------
Все получилось как хотелось. Большое спасибо


Автор - wiksl
Дата добавления - 02 Сентября 2011 в 18:25
AlienДата: Пт, 02 Сентября 2011, 19:17 | Сообщение # 22
mishem, без задержки? А ты в курсе что во время выполнения Delay приложение блокируется нафиг? Т.е. в этот момент прога будет подвисать.
Quote (mishem)
Я так понимаю без использования таймера.

счетчик это:
SetVar "[i]" "1"
SetVar "[i]" "[i]+1"
 
Сообщениеmishem, без задержки? А ты в курсе что во время выполнения Delay приложение блокируется нафиг? Т.е. в этот момент прога будет подвисать.
Quote (mishem)
Я так понимаю без использования таймера.

счетчик это:
SetVar "[i]" "1"
SetVar "[i]" "[i]+1"

Автор - Alien
Дата добавления - 02 Сентября 2011 в 19:17
GorezcaidДата: Пт, 02 Сентября 2011, 20:18 | Сообщение # 23
Ветеран форума
Quote (mishem)
Вместо 300 подставляем переменную. Вот вам и дубль клик.

Quote (Вадим)
Оба на! Шикарное решение! Подойдет для всех объектов, способных реагировать на событие "левый клик"! И без таймера! Получается, что Delay (пока длится) позволяет выполняться другим командам! Я как-то упускал этот момент ранее! mishem, спасибо за пример!!
Очень Интересное решение. thumbs_up
Отладчик показывает, что пока не пройдёт команда Delay (а при клике она обновляет своё время), она не продолжит свою работу и не покажет результат 2-а раза.
Прикрепления: 5483160.png (6.0 Kb)


Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera

Сообщение отредактировано
Gorezcaid - Пт, 02 Сентября 2011, 20:24
 
Сообщение
Quote (mishem)
Вместо 300 подставляем переменную. Вот вам и дубль клик.

Quote (Вадим)
Оба на! Шикарное решение! Подойдет для всех объектов, способных реагировать на событие "левый клик"! И без таймера! Получается, что Delay (пока длится) позволяет выполняться другим командам! Я как-то упускал этот момент ранее! mishem, спасибо за пример!!
Очень Интересное решение. thumbs_up
Отладчик показывает, что пока не пройдёт команда Delay (а при клике она обновляет своё время), она не продолжит свою работу и не покажет результат 2-а раза.

Автор - Gorezcaid
Дата добавления - 02 Сентября 2011 в 20:18
ГарикДата: Пт, 02 Сентября 2011, 20:57 | Сообщение # 24
Quote (Alien)
задержка есть, причем в обоих случаях


Если в Delay использовать 500 (вроде виндовское умолчание),то задержка уж явно через чур.
 
Сообщение
Quote (Alien)
задержка есть, причем в обоих случаях


Если в Delay использовать 500 (вроде виндовское умолчание),то задержка уж явно через чур.

Автор - Гарик
Дата добавления - 02 Сентября 2011 в 20:57
GorezcaidДата: Пт, 02 Сентября 2011, 21:10 | Сообщение # 25
Ветеран форума
Quote
задержка есть, причем в обоих случаях

мне больше подходит скорость 265ms и вполне устраивает...


Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
 
Сообщение
Quote
задержка есть, причем в обоих случаях

мне больше подходит скорость 265ms и вполне устраивает...

Автор - Gorezcaid
Дата добавления - 02 Сентября 2011 в 21:10
ГарикДата: Пт, 02 Сентября 2011, 21:26 | Сообщение # 26
У меня приятель вообще не может открывать двойным кликом
Открывает всё через контекстное меню Открыть
Вот привык так и всё не переубедишь.
 
СообщениеУ меня приятель вообще не может открывать двойным кликом
Открывает всё через контекстное меню Открыть
Вот привык так и всё не переубедишь.

Автор - Гарик
Дата добавления - 02 Сентября 2011 в 21:26
ВадимДата: Сб, 03 Сентября 2011, 00:49 | Сообщение # 27
Генератор идей
mishem, а как ты догадался, что можно Delay использовать? Ведь по логике построения кода в NeoBook строка должна выполняться за строкой, последовательно, и, таким образом, на каждый клик код должен бы выполняться весь и заново. А тут получается некое подобие второго потока, в котором приложение продолжает реагировать на события мыши и динамически модифицирует написанный код...

Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщениеmishem, а как ты догадался, что можно Delay использовать? Ведь по логике построения кода в NeoBook строка должна выполняться за строкой, последовательно, и, таким образом, на каждый клик код должен бы выполняться весь и заново. А тут получается некое подобие второго потока, в котором приложение продолжает реагировать на события мыши и динамически модифицирует написанный код...

Автор - Вадим
Дата добавления - 03 Сентября 2011 в 00:49
mishemДата: Сб, 03 Сентября 2011, 06:18 | Сообщение # 28
Эксперт форума
Alien, ну и что, что блокируется? Можно подумать что после того как кликнул два раза, будешь еще что то делать. Таймер тоже не очень хороший выход. И я порой не понимаю, почему многие стараются его использовать там, где без него можно обойтись. Если выполняется код и запускается таймер, то таймер обрывает выполнение кода и запускает свой. Если не предусмотрел и вставил в код таймера переменную которая использовалась в том коде который оборвал таймер, дальнейшее выполнение прерванного кода не возможно. Если выполнялось условие и таймер его оборвал,что произойдет? Ну и т.д.
Блин, пишу из другого города с телефона. Не удобно пипец.
Вадим, кнопки, таймер, клавиши прерввают выполнение кода. Просто приходилось сталкиваться с этим и искать решения.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.


Сообщение отредактировано
mishem - Сб, 03 Сентября 2011, 06:23
 
СообщениеAlien, ну и что, что блокируется? Можно подумать что после того как кликнул два раза, будешь еще что то делать. Таймер тоже не очень хороший выход. И я порой не понимаю, почему многие стараются его использовать там, где без него можно обойтись. Если выполняется код и запускается таймер, то таймер обрывает выполнение кода и запускает свой. Если не предусмотрел и вставил в код таймера переменную которая использовалась в том коде который оборвал таймер, дальнейшее выполнение прерванного кода не возможно. Если выполнялось условие и таймер его оборвал,что произойдет? Ну и т.д.
Блин, пишу из другого города с телефона. Не удобно пипец.
Вадим, кнопки, таймер, клавиши прерввают выполнение кода. Просто приходилось сталкиваться с этим и искать решения.

Автор - mishem
Дата добавления - 03 Сентября 2011 в 06:18
AlienДата: Сб, 03 Сентября 2011, 07:51 | Сообщение # 29
mishem, я вообще стараюсь не использовать delay в проектах, не люблю я когда прога подтормаживает, я это чувствую каждым кончиком пальца :)
Представь если бы у тебя все папки на компьютере открывались с небольшой задержкой, да это конечно не критично, но я бы сошел с ума.
Потом в винде, используется именно таймер, который отсчитывает время в котором ты нажал на кнопку второй раз или нет, а не паузу, где вся система повиснет %)
С двойным кликом ещё мягко все проходит, потому что пока ты нажмешь второй раз, время задержки уже пройдет и задержки почти не заметишь, а вот с одинарным кликом это уже видно не вооруженным глазом, что после клика ты ещё ждешь 300мс %)
Вот попробуй в винде открывая папку двойным кликом, нажать как можно быстрее два раза, папка ведь мгновенно после второго клика откроется? А попробуй между первым и вторым кликом сделать небольшую паузу, папка ведь тоже откроется?
В твоем примере на эти два вопроса можно ответить только отрицательно.

Ну короче говоря, это все "Костыли" для необука.
 
Сообщениеmishem, я вообще стараюсь не использовать delay в проектах, не люблю я когда прога подтормаживает, я это чувствую каждым кончиком пальца :)
Представь если бы у тебя все папки на компьютере открывались с небольшой задержкой, да это конечно не критично, но я бы сошел с ума.
Потом в винде, используется именно таймер, который отсчитывает время в котором ты нажал на кнопку второй раз или нет, а не паузу, где вся система повиснет %)
С двойным кликом ещё мягко все проходит, потому что пока ты нажмешь второй раз, время задержки уже пройдет и задержки почти не заметишь, а вот с одинарным кликом это уже видно не вооруженным глазом, что после клика ты ещё ждешь 300мс %)
Вот попробуй в винде открывая папку двойным кликом, нажать как можно быстрее два раза, папка ведь мгновенно после второго клика откроется? А попробуй между первым и вторым кликом сделать небольшую паузу, папка ведь тоже откроется?
В твоем примере на эти два вопроса можно ответить только отрицательно.

Ну короче говоря, это все "Костыли" для необука.

Автор - Alien
Дата добавления - 03 Сентября 2011 в 07:51
mishemДата: Сб, 03 Сентября 2011, 17:50 | Сообщение # 30
Эксперт форума
В данном вопросе не вижу разницы в задержке. Что в таймере поставишь300, что в. Delay, задержка будет по любому.

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеВ данном вопросе не вижу разницы в задержке. Что в таймере поставишь300, что в. Delay, задержка будет по любому.

Автор - mishem
Дата добавления - 03 Сентября 2011 в 17:50
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: