Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизОбработка CLX сообщений Найти похожие ветки
← →
Mim1 © (2004-07-09 08:29) [0]Здраствуйте, немогу поменять параметры собыитя (сообщения) CLX. Далее текст.
function TMyWidget.EventFilter(Sender: QObjectH;
Event: QEventH): Boolean;
var p:tpoint;
begin
if (QEvent_type(Event) = QEventType_MouseButtonPress) then
begin
P.X := QMouseEvent_x(QMouseEventH(Event));
P.Y := QMouseEvent_y(QMouseEventH(Event));
if ... then
...
end;
result := inherited EventFilter(Sender, Event);
end;
Хочется в зависимости от какого то условия сделатьQMouseEvent_x(QMouseEventH(Event)) := 100;
То есть заменить параметр сообщения.
Из некрасиывых решений вижу два
1) создать повое сообщени такого же типа и передать его выше по иерархии вместо текущего
2) вернуть результат что сообщение отработано и сгенерировать новое с нужными параметрами и послать его тому же виджету :), его уже не обрабатывать :)
← →
Mim1 © (2004-07-09 08:49) [1]Точно забыл вопрос, можно ли заменить значение параметра не прибегая к некрасивым решениям?
← →
Mim1 © (2004-07-09 10:58) [2]Решил проблемку "Некрасивым" методом номер 1.
function TCkgListListView.EventFilter(Sender: QObjectH;
Event: QEventH): Boolean;
var p,p1:tpoint;
ss : TShiftState;
btn:integer;
state : integer;
begin
if (Sender = ChildHandle) and
(QEvent_type(Event) = QEventType_MouseButtonPress) and
(QMouseEvent_x(QMouseEventH(Event)) > Columns[0].Width) then
begin
//
p.X := Columns[0].Width div 2;
p.Y := QMouseEvent_Y(QMouseEventH(Event));
p1.X := QMouseEvent_globalX(QMouseEventH(Event));
p1.y := QMouseEvent_globalY(QMouseEventH(Event));
btn := ord(QMouseEvent_button(QMouseEventH(Event)));
state := ord(QMouseEvent_state(QMouseEventH(Event)));
//@p1,
event := QMouseEvent_create(QEvent_type(Event),@p,
btn,state);
result := inherited EventFilter(Sender, Event);
QMouseEvent_destroy(QMouseEventH(Event));
end
else
if (QEvent_type(Event) = QEventType_MouseButtonRelease) then
begin
SetCaptureControl(nil);
result := true
end
else
result := inherited EventFilter(Sender, Event);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c