Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Почему не работает событие onMouseDown


Автор: AndreyANM 16.7.2006, 12:29
Не понимаю почему событие onMouseDown компонента DBGrid никогда не происходит?

Это так задумано или глюк? 

Автор: Palladin 16.7.2006, 13:00
Покажи свой код, может ты просто его неправильно юзаеш smile  

Автор: AndreyANM 16.7.2006, 14:46
RooR а ты у себя пробовал обрабатывать это событие?

Я пробовал даже просто сообщение в событии выводить - не работает.

А onMouseUp работает как часы. 

Автор: Palladin 16.7.2006, 15:39
Ну.. я незнаю у меня всё пашет, кликать просто нужно по пустому месту в dbgrid(не по ячейкам)
Вот я попробовал, всё пашет

Код

procedure TForm1.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
showmessage('Работает:)');
end;
 

P.S. Ах да , чуть не забыл, с тебя плюс smile  smile  smile  

Автор: RemaGe 16.7.2006, 21:08
По ичейкам работает OnCellClick. 

Автор: AndreyANM 16.7.2006, 21:12
OnCellClick работает когда кнопку мыши отпускаешь, а мне нужно когда нажимаешь 


Еще возник вопрос. Ведь события OnMouseUp и OnMouseDown в общем идентичны, почему же тогда они работают по разному (я имю ввиду то, что  Up работает и тогда, когда щелкаешь по ячейкам, а Down - нет) 

Автор: Palladin 16.7.2006, 23:03
Они идентичны, ты прав, но когда ты поднимаеш кнопку то проге пофиг в каком месте, а когда ты опускаеш её то нет, т.к. сам дбгрид это дбгрид а ячейки это ячейки твоей таблице, вообщем немогу я этого объяснить, но если ты хочеш чтобы и там и там всё работало то просто ифом бадяж, мол если кликнули по ячейки то твоё событие, а если по пустому месту дбгрида то тоже событие, и всё

P.S. Вообщем немогу я это объяснить теорию почти никогда не читалsmile  

Автор: Alexeis 16.7.2006, 23:20
AndreyANM, Это однозначно глюк! В stringGride - все работает правельно.
Это уже не первый случай когда многое что работает в stringGrid - не работает в DBGrid, хотя Borland утверждает, что это его аналог. 

Автор: Palladin 17.7.2006, 00:22
Да-да, скорее всего они попытались сделать отдельную процедуру для ячеек и отдельную для самого грида(со второй у них не получилось), ведь часто бывает в БД нужно кликнуть по ячейке и что-нить сделать, для этого будет OnCellClick, а для всего  onMouseDown, с этим у них накладочка вышла, не додумали

P.S.2alexeis1 
несомненно ГЛЮК 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)