mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 22:39:18 +02:00
Qt: implement PostMessage as postponed TWinControl.Perform
git-svn-id: trunk@12164 -
This commit is contained in:
parent
e6fd31a96f
commit
5269651533
@ -135,7 +135,8 @@ type
|
||||
|
||||
const
|
||||
TargetEntrys = 3;
|
||||
|
||||
QEventLCLMessage = QEventUser;
|
||||
|
||||
var
|
||||
QtWidgetSet: TQtWidgetSet;
|
||||
|
||||
|
@ -141,8 +141,7 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtWidgetSet.AppProcessMessages;
|
||||
begin
|
||||
if QCoreApplication_hasPendingEvents
|
||||
then
|
||||
if QCoreApplication_hasPendingEvents then
|
||||
QCoreApplication_processEvents();
|
||||
end;
|
||||
|
||||
|
@ -32,7 +32,7 @@ uses
|
||||
{$else}
|
||||
qt4,
|
||||
{$endif}
|
||||
qtobjects,
|
||||
qtobjects, qtint,
|
||||
// Free Pascal
|
||||
Classes, SysUtils, Types,
|
||||
// LCL
|
||||
@ -128,6 +128,7 @@ type
|
||||
procedure SlotPaint(Event: QEventH); cdecl;
|
||||
procedure SlotResize; cdecl;
|
||||
procedure SlotContextMenu; cdecl;
|
||||
procedure SlotLCLMessage(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
public
|
||||
procedure Activate;
|
||||
procedure BringToFront;
|
||||
@ -1360,6 +1361,11 @@ begin
|
||||
QEventResize: SlotResize;
|
||||
QEventPaint: SlotPaint(Event);
|
||||
QEventContextMenu: SlotContextMenu;
|
||||
QEventLCLMessage:
|
||||
begin
|
||||
SlotLCLMessage(Sender, Event);
|
||||
Result := True;
|
||||
end;
|
||||
else
|
||||
QEvent_ignore(Event);
|
||||
end;
|
||||
@ -2032,6 +2038,18 @@ begin
|
||||
LCLObject.PopupMenu.PopUp(Mouse.CursorPos.X, Mouse.CursorPos.Y);
|
||||
end;
|
||||
|
||||
procedure TQtWidget.SlotLCLMessage(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
var
|
||||
MessageEvent: QLCLMessageEventH absolute Event;
|
||||
Msg: TLMessage;
|
||||
begin
|
||||
Msg.msg := QLCLMessageEvent_getMsg(MessageEvent);
|
||||
Msg.wParam := QLCLMessageEvent_getWParam(MessageEvent);
|
||||
Msg.lParam := QLCLMessageEvent_getLParam(MessageEvent);
|
||||
Msg.Result := 0;
|
||||
DeliverMessage(Msg);
|
||||
end;
|
||||
|
||||
procedure TQtWidget.Activate;
|
||||
begin
|
||||
QWidget_activateWindow(Widget);
|
||||
|
@ -3377,23 +3377,16 @@ begin
|
||||
end;
|
||||
|
||||
function TQtWidgetSet.PostMessage(Handle: HWND; Msg: Cardinal; wParam: WParam; lParam: LParam): Boolean;
|
||||
{var
|
||||
var
|
||||
Widget: TQtWidget absolute Handle;
|
||||
Event: QEventH;
|
||||
}
|
||||
Event: QLCLMessageEventH;
|
||||
begin
|
||||
Result := False;
|
||||
if Handle <> 0 then
|
||||
begin
|
||||
{$note todo ask in bindings}
|
||||
{
|
||||
Event := QEvent_create(QEventUser);
|
||||
try
|
||||
QCoreApplication_postEvent(Widget.Widget, Event);
|
||||
finally
|
||||
QEvent_destroy(Event);
|
||||
end;
|
||||
}
|
||||
Event := QLCLMessageEvent_create(QEventLCLMessage, Msg, wParam, lParam, 0);
|
||||
QCoreApplication_postEvent(Widget.Widget, Event);
|
||||
Result := True;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user