I tried the package and I must say that I have compiled examples without problems. I sailed quietly, then when I login to the site
www.24options.com gave me the following error
By doing debugging goes wrong in the file gtk2widgetset.inc function AppProcessMessages and line
if not g_main_context_iteration (g_main_context_default, False) then
TGtk2WidgetSet.AppProcessMessages procedures;
PendingGtkMessagesExists function: boolean;
begin
{$ IFDEF} USE_GTK_MAIN_OLD_ITERATION
Result: = (gtk_events_pending <> 0) or LCLtoGtkMessagePending;
{$ ELSE}
Result: = g_main_context_pending (g_main_context_default) or
LCLtoGtkMessagePending;
{$ ENDIF}
end;
var
vlItem: TGtkMessageQueueItem;
vlMsg: PMSG;
i: Integer;
begin
repeat
/ / Send messages to the cached LCL gtk
/ / DebugLn (['TGtk2WidgetSet.AppProcessMessages SendCachedLCLMessages']);
SendCachedLCLMessages;
/ / Let gtk handle up to 100 messages and call our callbacks
i: = 100;
if not then FGtkTerminated
begin
{$ IFDEF} USE_GTK_MAIN_OLD_ITERATION
while (gtk_events_pending <> 0) and (i> 0) do
begin
then if FGtkTerminated
break;
gtk_main_iteration_do (False);
dec (i);
end;
{$ ELSE}
while g_main_context_pending (g_main_context_default) and (i> 0) do
begin
then if FGtkTerminated
break;
if not g_main_context_iteration (g_main_context_default, False) then
break;
dec (i);
end;
{$ ENDIF}
end;
/ / DebugLn (['TGtk2WidgetSet.AppProcessMessages SendCachedGtkMessages']);
/ / Send messages to the cached gtk lcl
SendCachedGtkMessages;
/ / Then handle our own messages
while not Application.Terminated do begin
fMessageQueue.Lock;
try
/ / Fetch first message
vlItem: = fMessageQueue.FirstMessageItem;
if vlItem = nil then break;
/ / Remove message from queue
if vlItem.IsPaintMessage then begin
/ / DebugLn (['TGtk2WidgetSet.AppProcessMessages Paint:', DbgSName (GetLCLObject (Pointer (vlItem.Msg ^. Hwnd)))]);
/ / Paint messages are messages of the most expensive in the LCL,
/ / Therefore they are sent after all other
if MovedPaintMessageCount <10 then begin
inc (MovedPaintMessageCount);
if fMessageQueue.HasNonPaintMessages then begin
/ / There are no paint messages -> move paint message to the end
fMessageQueue.MoveToLast (FMessageQueue.First);
continuous;
end else begin
/ / There are only paint messages left in the queue
/ / -> Check other queues
if PendingGtkMessagesExists then break;
end;
end else begin
/ / Handle this paint message now
MovedPaintMessageCount: = 0;
end;
end;
/ / DebugLn (['SendMessage TGtk2WidgetSet.AppProcessMessages:', DbgSName (GetLCLObject (Pointer (vlItem.Msg ^. Hwnd)))]);
vlMsg: = fMessageQueue.PopFirstMessage;
finally
fMessageQueue.UnLock;
end;
/ / debugln (['TGtk2WidgetSet.AppProcessMessages', vlMsg ^. Message, '', LM_CHAR, '', dbgsname (GetLCLObject (Pointer (vlMsg ^. hwnd)))]);
/ / Send message
if vlMsg <> nil then
begin
try
with vlMsg ^ do SendMessage (hWnd, Message, wParam, LParam);
finally
Dispose (vlMsg);
end;
end;
end;
/ / Proceed until all messages are handled
until (not PendingGtkMessagesExists) or Application.Terminated;
end;
How can I fix?