界面库

更新
This commit is contained in:
tslediter 2024-04-28 17:36:54 +08:00
parent e04ba21b4a
commit 0de78a034a
3 changed files with 52 additions and 37 deletions

View File

@ -905,7 +905,7 @@ type TTslDebuga=class(TCustomControl)
if recvtype=0 then if recvtype=0 then
begin begin
FRemoteWait := 0; FRemoteWait := 0;
ExecuteCommand("showstr","µ÷ÊÔ½áÊø"); ExecuteCommand("showstr","\r\nµ÷ÊÔ½áÊø");
if FConnectchannel then dbgdeletechannel(FConnectchannel); if FConnectchannel then dbgdeletechannel(FConnectchannel);
FConnectchannel := 0; FConnectchannel := 0;
g_tsldbgcallback_handle := nil; g_tsldbgcallback_handle := nil;
@ -1019,7 +1019,7 @@ type TTslDebuga=class(TCustomControl)
end end
FRemoteWait := 0; FRemoteWait := 0;
if FCurrentgotoitem and FCurrentgotoitem.FEditer then FCurrentgotoitem.FEditer.ExecuteCommand("ecruningto",nil); if FCurrentgotoitem and FCurrentgotoitem.FEditer then FCurrentgotoitem.FEditer.ExecuteCommand("ecruningto",nil);
ExecuteCommand("showstr","µ÷ÊÔ½áÊø"); ExecuteCommand("showstr","\r\nµ÷ÊÔ½áÊø");
toolbtnState("ֹͣ"); toolbtnState("ֹͣ");
return; return;
end end

View File

@ -4269,6 +4269,11 @@ type tgtkapis = class() //gtk
g_idle_remove_by_data(idledata); //ɾ³ýidle g_idle_remove_by_data(idledata); //ɾ³ýidle
return 1; return 1;
end end
function g_main_depth(); //Returns the depth of the stack of calls
begin
_f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_();
end
function g_main_loop_new(ctx:pointer;is_running:integer):pointer; function g_main_loop_new(ctx:pointer;is_running:integer):pointer;
begin begin
_f_ := static function(ctx:pointer;is_running:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(ctx:pointer;is_running:integer):pointer;cdecl;external getfuncptrbyname(0,functionname());
@ -4279,6 +4284,11 @@ type tgtkapis = class() //gtk
_f_ := static procedure(loop:pointer);cdecl;external getfuncptrbyname(0,functionname()); _f_ := static procedure(loop:pointer);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(loop); return ##_f_(loop);
end end
function g_main_loop_get_context(lp:pointer):pointer;
begin
_f_ := static function(lp:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(lp);
end
function g_idle_add(f:pointer;d:pointer):integer; function g_idle_add(f:pointer;d:pointer):integer;
begin begin
_f_ := static function(f:pointer;d:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(f:pointer;d:pointer):integer;cdecl;external getfuncptrbyname(0,functionname());
@ -4315,35 +4325,34 @@ type tgtkapis = class() //gtk
return ##_f_(source,cr); return ##_f_(source,cr);
end end
function g_source_attach(source:pointer;ctx:pointer):integer; function g_source_attach(source:pointer;ctx:pointer):integer;
begin
_f_ := static procedure(source:pointer;func:pointer;data:pointer;notify:poiner);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(source,func,data,notify);
end
function g_source_set_callback(source:pointer;ctx:pointer):integer;
begin begin
_f_ := static function(source:pointer;ctx:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(source:pointer;ctx:pointer):integer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(source,ctx); return ##_f_(source,ctx);
end end
function g_source_set_callback(source:pointer;func:pointer;data:pointer;notify:poiner):integer;
begin
_f_ := static procedure(source:pointer;func:pointer;data:pointer;notify:poiner);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(source,func,data,notify);
end
function g_main_context_default():pointer; function g_main_context_default():pointer;
begin begin
_f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(); return ##_f_();
end end
function g_main_context_pending(gc:pointer):integer; function g_main_context_pending(gctx:pointer):integer;
begin begin
_f_ := static function(gc:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(gctx:pointer):integer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(gc); return ##_f_(gctx);
end end
function g_main_context_iteration(gc:pointer;bk:integer):integer; function g_main_context_iteration(gctx:pointer;bk:integer):integer;
begin begin
_f_ := static function(gc:pointer;bk:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(gctx:pointer;bk:integer):integer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(gc,bk); return ##_f_(gctx,bk);
end end
function g_main_context_get_poll_func(d:pointer):pointer; function g_main_context_get_poll_func(ctx:pointer):pointer;
begin begin
_f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(ctx:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(d); return ##_f_(ctx);
end end
function g_source_is_destroyed(source:pointer):integer; function g_source_is_destroyed(source:pointer):integer;
begin begin
@ -4371,13 +4380,11 @@ type tgtkapis = class() //gtk
begin begin
_f_ := static procedure(w:pointer;c:pointer;var ls:pointer;tm:integer);cdecl;external getfuncptrbyname(0,functionname()); _f_ := static procedure(w:pointer;c:pointer;var ls:pointer;tm:integer);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(w,c,ls,tm); return ##_f_(w,c,ls,tm);
end end
function gdk_drag_status(c:pointer;ac:integer;tm:integer); function gdk_drag_status(c:pointer;ac:integer;tm:integer);
begin begin
_f_ := static procedure(c:pointer;ac:integer;tm:integer);cdecl;external getfuncptrbyname(0,functionname()); _f_ := static procedure(c:pointer;ac:integer;tm:integer);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(c,ac,tm); return ##_f_(c,ac,tm);
end end
function gtk_drag_dest_set(w:pointer;flgs:integer;targets:pointer;ntg:integer;actions:integer):integer; function gtk_drag_dest_set(w:pointer;flgs:integer;targets:pointer;ntg:integer;actions:integer):integer;
begin begin
@ -4389,7 +4396,6 @@ type tgtkapis = class() //gtk
begin begin
_f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(c); return ##_f_(c);
end end
function gtk_selection_data_get_text(d:pointer); function gtk_selection_data_get_text(d:pointer);
begin begin
@ -4402,7 +4408,6 @@ type tgtkapis = class() //gtk
_f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(d); return ##_f_(d);
end end
function gdk_atom_name(a:pointer):string; function gdk_atom_name(a:pointer):string;
begin begin
_f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); _f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname());
@ -4473,7 +4478,6 @@ type tgtkapis = class() //gtk
end end
function gtk_drag_finish(ctx,suc,del,tm); function gtk_drag_finish(ctx,suc,del,tm);
begin begin
//return ;
_f_ := static procedure(ctx:pointer;suc:integer;del:integer;tm:integer);cdecl;external getfuncptrbyname(0,functionname()); _f_ := static procedure(ctx:pointer;suc:integer;del:integer;tm:integer);cdecl;external getfuncptrbyname(0,functionname());
return ##_f_(ctx,suc,del,tm); return ##_f_(ctx,suc,del,tm);
end end
@ -9691,8 +9695,7 @@ begin
return 1; return 1;
end end
return 1; //r return 1; //r
end end else
else
begin begin
tslprocessmessages(false); tslprocessmessages(false);
//sleep(10); //sleep(10);
@ -9704,8 +9707,8 @@ begin
tslprocessmessages(false); tslprocessmessages(false);
//sleep(10);//ÐÝϢһϠ//sleep(10);//ÐÝÏ¢Ò»ÏÂ
end end
unit(uvclthreadworker).RunThreadWorkerHost(); if unit(uvclthreadworker).RunThreadWorkerHost() then r := 1;
if r=0 then sleep(30); if r=0 then sleep(25);
//get_m_m_q().idleworked := r; //get_m_m_q().idleworked := r;
return true; return true;
end end

View File

@ -65,10 +65,21 @@ type TCustomThreadworker = class(t_worker_host)
if not FThreaders then return ; if not FThreaders then return ;
set_heartbeat(); set_heartbeat();
lsdata := nil; lsdata := nil;
for idx,i in mrows(FThreaders,1) do ///////////////打乱排序避免某些线程消息总是滞后///////////////////
idxs := mrows(FThreaders,1);
if idxs then
begin
for idx,i in idxs do
begin
idxs[idx] := array(i,random());
end
idxs := sselect[0] from idxs order by [1] end ;
end
//////////////////////////////////////////////
for idx,i in idxs do
begin begin
o := FThreaders[i]; o := FThreaders[i];
msg := o.fetch(data,nil,lsdata); msg := o.fetch(data,true,lsdata);
if msg then if msg then
begin begin
case msg of case msg of
@ -101,7 +112,8 @@ type TCustomThreadworker = class(t_worker_host)
o.DoOnMessage(data); o.DoOnMessage(data);
end end
end; end;
break; return true;
//break;
end end
end end
end end
@ -261,7 +273,7 @@ end
implementation implementation
function RunThreadWorkerHost(); function RunThreadWorkerHost();
begin begin
class(TCustomThreadworker).dispatch(); return class(TCustomThreadworker).dispatch();
end end
type t_worker_base = class() type t_worker_base = class()
function Operator [](idx); function Operator [](idx);