Форум программистов
Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Закажи футболку!  |  Конкурс программистов призы на 2000 руб


Вернуться   Форум программистов > Низкоуровневое программирование > Win Api

Ответ
 
Опции темы
Старый 22.08.2007, 21:18   #1
mutabor
Телепат с дипломом
Профессионал
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,214
Репутация: 1321
Отправить сообщение для mutabor с помощью ICQ
По умолчанию Сообщения мыши в ListBox

Как обработать сообщение WM_LBUTTONUP, когда курсор находится над Листбоксом?
ListBox.OnMouseUp не подходит, из-за перетаскивания некорректно работает.
Для формы я делаю так
Код:

procedure MyMouseUp(var n: TWMLButtonUp); message WM_LBUTTONUP;

procedure TForm1.MyMouseUp(var n: TWMLButtonUp);
begin
if n.Keys = MK_CONTROL then showmessage('up');
end;

над листбоксом не работает, а мне над ним и надо
mutabor вне форума   Ответить с цитированием
Старый 23.08.2007, 08:16   #2
Stilet
Белик Виталий :)
СуперМодератор
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 16,508
Репутация: 2433
Отправить сообщение для Stilet с помощью ICQ
По умолчанию

Можно так :

unit Unit1;

interface

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

type
TListBox=class(StdCtrls.TListBox)
protected
procedure ListMouseUp(var n: TWMLButtonUp); message WM_LBUTTONUP;
end;


TForm1 = class(TForm)
ListBox1: TListBox;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TLIstBox }

procedure TLIstBox.ListMouseUp(var n: TWMLButtonUp);
begin
// if n.Keys = MK_CONTROL then showmessage('up');
end;

end.


Причем Это распространяется на все листвоксы которые ты как обычно накидаеш на форму, хотя я не пойму чем мешает OnMouseUp
Stilet вне форума   Ответить с цитированием
Старый 23.08.2007, 18:12   #3
mutabor
Телепат с дипломом
Профессионал
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,214
Репутация: 1321
Отправить сообщение для mutabor с помощью ICQ
По умолчанию

Спасибо
Цитата:
хотя я не пойму чем мешает OnMouseUp
если используются Drag and Drop процедуры, OnMouseUp перестает правильно работать - срабатывает сразу при нажатии, Ctrl не определяется
Тут все дело в функции BeginDrag, если убрать ее вызов все приходит в норму, но она тоже нужна.

P.S. пока писал ответ пришла хорошая идея, намного проще, нужно просто BeginDrag вызывать не при каждом нажатии (он на MouseDown повешан) а выборочно.

Последний раз редактировалось mutabor; 23.08.2007 в 18:55.
mutabor вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сообщения в Delphi Роман777 Помощь студентам 19 24.11.2008 15:27
Сообщения Serg12345678 Общие вопросы C/C++ 1 12.04.2008 14:07
как отправить сообщения на Асю (icq) Ermak Работа с сетью в Delphi 8 19.09.2007 19:57
сообщения с ошибками в delphi Alar Общие вопросы Delphi 0 30.10.2006 00:43


Все интернет-магазины Москвы на Викимарте: компьютеры и софт, художественные книги и профессиональная литература, наручные часы.



04:35.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Ask Doctor at Healpth.com