|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Помогите код набросать, отключение бд если курсор вне поля формы На просторах интернета особо ничего похожего найти не смог( нужно что-бы если курсор выходит за поля формы 1 то база отключалась, если курсор в поле формы 1 то бд включается, и если открыта форма 2 и форма 7 то НЕ отключать бд - (база данных access), буду очень благодарен за помощь! | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Ну не знаю... Если делать в лоб, то попробуй так: 1. Кидаешь таймер, там настраиваешь проверку каждые, пусть, 0.5 сек (значение Interval = 500). 2. В обработчике проверяешь формы, а потом курсор по координатам формы. Типа как-то так: Код: procedure TForm1.Timer1Timer(Sender : TObject);
var
  pt : TPoint;
begin
  // Form2 or Form7 is active - do nothing
  If (Form2.Visible Or Form7.Visible) Then Exit;
  
  // Get cursor position
  pt := Mouse.CursorPos;
  
  // Check that cursor is over the Form1
  If PtInRect(Rect(Self.Left, Self.Top, Self.Right, Self.Bottom),pt)
    Then EnableDB
    Else DisableBD;
end;PS. Наверное, можно придумать что-то более навороченное, основанное на событиях. Когда-то эксперементировал с MOUSE_MOVE сообщениями, но, как оказалось, там все-таки они приходят с пропусками, особенно, если мышом быстро возить. Можно мышку хукнуть, но это гораздо сложнее, а суть будет примерно та же. Последний раз редактировалось lmikle, 05.12.2017 в 22:30. | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
Ekler1 (06.12.2017)
 | ||
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|  ругается  компилятор Цитата: 
 Ошибка вылетает вот на эту строчку If PtInRect(Rect(Self.Left, Self.Top, Self.Right, Self.Bottom),pt) [dcc32 Error] Unit9.pas(62): E2003 Undeclared identifier: 'Right' [dcc32 Error] Unit9.pas(62): E2003 Undeclared identifier: 'Bottom' И ещё - Then EnableDB Else DisableBD; Тут точно все правильно? что-то меня смущает строчка EnableDB Последний раз редактировалось Ekler1, 06.12.2017 в 10:10. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Ну да, нету у формы таких свойств, нужно подствавить Width и Height Последний раз редактировалось Alegun, 06.12.2017 в 15:33. | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Да, это чё-то я протормозил. Естественно, должно быть: Код: PtInRect(Rect(Self.Left, Self.Top, Self.Width, Self.Height),pt) |