С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Andreys
1 / 1 / 0
Регистрация: 30.08.2011
Сообщений: 12
1

Подвисает при попытке свернуть свое окно программным нажатием мышью по значку свернуть

21.09.2011, 08:21. Просмотров 1087. Ответов 4
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Windows.SetCursorPos(x,y);
if mh.move=false then
  begin
  if mh.LBtn then
   begin
   if mh.down then begin form1.ListBox4.Items.Add('левой щелк вниз'); Form1.ListBox4.TopIndex:=Form1.ListBox4.Items.Count - 1; Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); end;
   if mh.up then begin form1.ListBox4.Items.Add('левой отщелк вверх'); Form1.ListBox4.TopIndex:=Form1.ListBox4.Items.Count - 1; Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, x, y, 0, 0); end;
   end;
  if mh.RBtn then begin
   if mh.down then {begin form1.ListBox4.Items.Add('правой щелк вниз'); Form1.ListBox4.TopIndex:=Form1.ListBox4.Items.Count - 1; end;//}Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0);
   if mh.up then {begin form1.ListBox4.Items.Add('правой отщелк вверх'); Form1.ListBox4.TopIndex:=Form1.ListBox4.Items.Count - 1; end;//}Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP, x, y, 0, 0);
   end;
  end
  else begin form1.ListBox4.Items.Add('MouseMove'); Form1.ListBox4.TopIndex:=Form1.ListBox4.Items.Count - 1; end;
вот часть кода, до нее нам приходят координаты X и Y и какая кнопка мыши должна быть нажата либо отжата, и пытаемся это выполнить. окна таскаются, щелкается все отлично пока не щелкну по своей форме свернуть или развернуть на весь экран, тут происходит инетресный момент мне непонятный совершенно, форма выводит в листбокс строчку 'левой щелк вниз', мышь встает на кнопку свернуть и нажимает вниз, но не отпускает и прога становится безответной к воздействиям извне, подвисла. проходит моментально если чуть самому вручную двинуть мышкой, тут же отжимается, окно сворачивается. а при разворачивании вижу что в листбокс добавилась строка 'левой отщелк вверх'. Почему так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2011, 08:21
Ответы с готовыми решениями:

Свернуть окно
Написал программу чисто для себя,суть заключается в "разворачивание - действие - сворачивание -...

При запуске свернуть в трей
Application.Minimize; Screen.Forms.Hide Пытался свернуть вот так - но выдается ошибка - ...

Свернуть приложение при запуске в трей
Procedure TForm1. WindowMessage (Var Msg:TMessage); Begin IF Msg.WParam=SC_MINIMIZE then Begin...

свернуть форму при нажатии на кнопку
Делаю библиотеку для компаса. Форма довольно большая, поэтому при нажатии на кнопку надо чтобы она...

Не активность кнопки "Свернуть в окно"
Как сделать чтобы приложение открывалось развернутым и кнопка "Свернуть в окно" была неактивна?...

4
John_Pa9JIbHuK
Добрый самаритянин
1101 / 617 / 137
Регистрация: 31.03.2009
Сообщений: 2,568
21.09.2011, 09:39 2
Andreys Боюсь все дело в том, что вам нужно учиться оформлять код и писать комментарии, что бы остальные могли хоть что-то понять
0
Andreys
1 / 1 / 0
Регистрация: 30.08.2011
Сообщений: 12
22.09.2011, 08:20  [ТС] 3
Delphi
1
2
3
4
5
6
7
8
9
10
11
Windows.SetCursorPos(x,y);
if mh.down then 
 begin 
  form1.ListBox4.Items.Add('левой щелк вниз');
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); 
 end;
if mh.up then 
 begin 
  form1.ListBox4.Items.Add('левой отщелк вверх'); 
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, x, y, 0, 0); 
 end;
в одной посылке приходят координаты (x,y) и нужное действие клавиши мыши (либо зажать, либо отжать, либо ничего не делать кнопкой мыши).
0
Andreys
1 / 1 / 0
Регистрация: 30.08.2011
Сообщений: 12
26.09.2011, 08:17  [ТС] 4
John_Pa9JIbHuK, в чем же дело?

повторю суть вопроса, почему происходит подвисание когда приложение по сети принимает сообщение о необходимости нажатия левой кнопкой мыши (MouseDown) значка 'свернуть' либо 'развернуть' своего окна? нажатие кнопки вниз происходит, далее ступор. следом также по сети идет команда об отпускании (MouseUp) кнопки, но сработает она и все остальные что идут следом только если мышь вручную руками чуть сдвинуть. во время подвисания приложение не реагирует на команды по сети, таймеры стоят не крутятся, приложение висит
0
John_Pa9JIbHuK
Добрый самаритянин
1101 / 617 / 137
Регистрация: 31.03.2009
Сообщений: 2,568
26.09.2011, 10:10 5
Andreys данные может теряются, делайте прием в отдельном потоке, и выложите код приема, подключения и тд
0
26.09.2011, 10:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2011, 10:10

Свернуть приложение в трей при нажатии на кнопку Minimize
Скажите пожалуйста как сделать так например я нажал на кнопку minimize и чтобы она сразу свернулся...

Свернуть все программы, кроме моей, при нажатии на кнопку
Всем привет пишу программу но у меня возникла проблема мне нужно чтоб при нажатие на кнопку...

Свернуть окна
Нужно свернуть окно игры, именно когда играет, а не когда в меню. Есть несколько кодов ,но игры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru