界面库

修改系统接口class 函数为普通函数
This commit is contained in:
JianjunLiu 2023-04-21 17:20:06 +08:00
parent 683605bcda
commit f70ed1b63b
3 changed files with 65 additions and 35 deletions

View File

@ -2,9 +2,9 @@ function getdlsymaddress(lib,n); //
begin
if not(ifstring(lib) and lib and n and ifstring(n)) then return 0;
{$ifdef linux}
Return dlsym(dlopen(lib,0x101) ,n);
Return dlsym(dlopen(lib,0x101) ,n);
{$endif}
Return GetProcAddress(LoadLibraryA(lib),n);
Return GetProcAddress(LoadLibraryA(lib),n);
end
function dlopen(dl:string;flg:integer):pointer;cdecl ;external "libdl.so.2";
function dlsym(handle:pointer;symbol:string):pointer;cdecl ;external "libdl.so.2";

View File

@ -17,7 +17,7 @@ type tgtkeventobject =class(tgtk_ctl_object) //gtk
end
type tsgtkapi = class(tgtkapis)
class function AnsiToWidChar(c);
function AnsiToWidChar(c);
begin
if not ifstring(c) then return "";
return c;
@ -575,7 +575,7 @@ type tsgtkapi = class(tgtkapis)
end
///////////////////////¿Õ½Ó¿Ú
class function GetModuleHandleA(name:pointer)begin return 1; end;
function GetModuleHandleA(name:pointer)begin return 1; end;
function SetClassLongPtrA(HH:pointer;idx:integer;dwNewLong:pointer)begin end;
function GetClassLongPtrA(HH:pointer;idx:integer)begin end;
@ -630,11 +630,11 @@ type tsgtkapi = class(tgtkapis)
end
end
end
class function MultiByteToWideChar_a(CodePage:integer;dwFlags:integer;lpMultiByteStr:string;cbMultiByte:integer;var lpWideCharStr:string;cchWideChar:integer):integer;
function MultiByteToWideChar_a(CodePage:integer;dwFlags:integer;lpMultiByteStr:string;cbMultiByte:integer;var lpWideCharStr:string;cchWideChar:integer):integer;
begin
end
class function GetEncoderClsid(n:String;ed:pointer):integer;
function GetEncoderClsid(n:String;ed:pointer):integer;
begin
WriteStringToPtr(ed,n); //±£´æ
return -1;
@ -2217,7 +2217,7 @@ type tsgtkapi = class(tgtkapis)
//////////////////////////////////////end clip board //////////////////////////////////
//////////////////////////////timmer//////////////////
class function SetTimer(hWnd:pointer; nIDEvent:pointer; uElapse:integer;lpTimerFunc:pointer):integer;
function SetTimer(hWnd:pointer; nIDEvent:pointer; uElapse:integer;lpTimerFunc:pointer):integer;
begin
global g_gtk_ttimer_cache;
if not ifarray(g_gtk_ttimer_cache) then g_gtk_ttimer_cache := array();
@ -2227,7 +2227,7 @@ type tsgtkapi = class(tgtkapis)
obj._setvalue_(0,rt);
return rt;
end
class function KillTimer(hWnd:pointer; nIDEvent:pointer):integer;
function KillTimer(hWnd:pointer; nIDEvent:pointer):integer;
begin
global g_gtk_ttimer_cache;
if not ifarray(g_gtk_ttimer_cache) then return 0;
@ -2844,7 +2844,7 @@ type tgtkapis = class() //gtk
b := getbvalue(c)/0xff ;
return true;
end
class function gtk_object_set_data(h,n,v); //±£´æÊý¾Ý
function gtk_object_set_data(h,n,v); //±£´æÊý¾Ý
begin
if not(h>0 or h<0) then return 0;
global gtk_object_data_values_global;
@ -2858,7 +2858,7 @@ type tgtkapis = class() //gtk
gtk_object_data_values_global[inttostr(h),n] := v;
//echo tostn(gtk_object_data_values_global);
end
class function gtk_object_get_data(h,n); //»ñµÃÊý¾Ý
function gtk_object_get_data(h,n); //»ñµÃÊý¾Ý
begin
if not(h>0 or h<0) then return 0;
global gtk_object_data_values_global;
@ -3549,6 +3549,7 @@ type tgtkapis = class() //gtk
/////////////////////////window//////////
function gtk_window_list_toplevels():pointer;cdecl;external 'libgtk-3.so';
procedure gdk_window_move_resize(w:pointer;x:integer;y:integer;wd:integer;h:integer);cdecl;external 'libgtk-3.so';
procedure gdk_window_resize(w:pointer;wd:integer;h:integer);cdecl;external 'libgtk-3.so';
procedure gtk_window_begin_move_drag(w:pointer;btn:integer;x:integer;y:integer;t:integer);cdecl;external 'libgtk-3.so';
@ -3784,7 +3785,6 @@ type tgtkapis = class() //gtk
procedure gtk_widget_set_parent_window(w:pointer;p:pointer);cdecl;external 'libgtk-3.so';
procedure gtk_widget_get_parent_window(w:pointer;p:pointer);cdecl;external 'libgtk-3.so';
function gtk_widget_get_type():pointer;cdecl;external 'libgtk-3.so';
procedure gtk_widget_modify_bg(w:pointer;tyle:integer;c:pointer);cdecl;external 'libgtk-3.so';
procedure gtk_layout_move(l:pointer;w:pointer;x:integer;y:integer);cdecl;external 'libgtk-3.so';
procedure gtk_grab_add(w:pointer);cdecl;external 'libgtk-3.so';
@ -3847,6 +3847,35 @@ type tgtkapis = class() //gtk
function gtk_image_new():pointer; cdecl;external 'libgtk-3.so';
function gdk_pixbuf_get_width(src_pixbuf:pointer):integer;cdecl;external 'libgtk-3.so';
function gdk_pixbuf_get_height(src_pixbuf:pointer):integer;cdecl;external 'libgtk-3.so';
////////////////////libc////////////////////////////////
function popen(e:string;f:string):pointer;cdecl;external "libc.so.6";
function pclose(p:pointer):integer;cdecl;external "libc.so.6";
function fgets(var e:string;f:integer;ptr:pointer):pointer;cdecl;external "libc.so.6";
function exec_command_line(cmd)
begin
len := 1024;
buf_ps := "";
setlength(buf_ps,len);
result := "";
ptr:=popen(cmd, "r");
if((ptr)<>0) then
begin
while(fgets(buf_ps, len, ptr)<>0) do
begin
for i:= 1 to len do
begin
vi := buf_ps[i];
if vi="\0" then
begin
break;
end
result += buf_ps[i];
end
end
pclose(ptr);
end
return result;
end
end
@ -5828,10 +5857,10 @@ type tgtk_ctl_object = class(_gtkeventtype)
static _const;
private
FHandle;
class function gtk_widget_get_type():pointer;cdecl;external 'libgtk-3.so';
class procedure g_signal_handler_disconnect(instance:pointer;id:integer);cdecl;external 'libgtk-3.so';
class function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):pointer;cdecl;external 'libgtk-3.so';
class function g_signal_new(signal_name:string;
function gtk_widget_get_type():pointer;cdecl;external 'libgtk-3.so';
procedure g_signal_handler_disconnect(instance:pointer;id:integer);cdecl;external 'libgtk-3.so';
function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):pointer;cdecl;external 'libgtk-3.so';
function g_signal_new(signal_name:string;
itype:pointer;
signal_flags:integer;
class_offset:integer;
@ -5868,7 +5897,7 @@ type tgtk_ctl_object = class(_gtkeventtype)
return true;
end
end
class function initNewSingal();
function initNewSingal();
begin
return ;
//wm-user

View File

@ -55,7 +55,7 @@ type twindowsapi = class()
return ret;
end
//////////////////////////////////////////////////////////////////////////////////////////////////////
class function AnsiToWidChar(c);
function AnsiToWidChar(c);
begin
if not ifstring(c) then return "";
iSize := MultiByteToWideChar_a(0, 0, C , -1, "", 0);
@ -65,7 +65,7 @@ type twindowsapi = class()
MultiByteToWideChar_a(0, 0, c , -1, pwszUnicode , iSize-1);
return pwszUnicode;
end
class function GetEncoderClsid(n:String;ed:pointer);
function GetEncoderClsid(n:String;ed:pointer);
begin
r := tslvclgetencoderclsid(n,ed);
return r;
@ -129,17 +129,17 @@ type twindowsapi = class()
global g_windows_proc_handle;
return g_windows_proc_handle;
end
class function SetTimer(hWnd:pointer; nIDEvent:pointer; uElapse:integer;lpTimerFunc:pointer):integer;stdcall;external "User32.dll" name "SetTimer";
class function KillTimer(hWnd:pointer; nIDEvent:pointer):integer;stdcall;external "User32.dll" name "KillTimer";
function SetTimer(hWnd:pointer; nIDEvent:pointer; uElapse:integer;lpTimerFunc:pointer):integer;stdcall;external "User32.dll" name "SetTimer";
function KillTimer(hWnd:pointer; nIDEvent:pointer):integer;stdcall;external "User32.dll" name "KillTimer";
class function MultiByteToWideChar_a(CodePage:integer;dwFlags:integer;lpMultiByteStr:string;cbMultiByte:integer;var lpWideCharStr:string;cchWideChar:integer):integer;stdcall;external "Kernel32.dll" name "MultiByteToWideChar";
class function GetModuleHandleA(name:pointer):pointer;stdcall;external "Kernel32.dll" name "GetModuleHandleA";
class function GetComputerNameA(var lpBuffer:string;var nSize:integer):integer;stdcall;external "Kernel32.dll" name "GetComputerNameA";
class function GetLastError():integer;stdcall;external "Kernel32.dll" name "GetLastError";
class function GetEnvironmentVariableA(lpName:string;lpBuffer:string;nSize:integer):integer;stdcall;external "Kernel32.dll" name "GetEnvironmentVariableA";
class function SetEnvironmentVariableA(lpName:string; lpValue:string):integer;stdcall;external "Kernel32.dll" name "SetEnvironmentVariableA";
class function GetLogicalDriveStringsA(BUFSIZE:integer; szLogicDriveStrings:string):integer;stdcall;external "Kernel32.dll" name "GetLogicalDriveStringsA";
class function GetDiskFreeSpaceExA(lpDirectoryName:string;var lpFreeBytesAvailableToCaller:int64;var lpTotalNumberOfBytes:int64;var lpTotalNumberOfFreeBytes:int64):integer;stdcall ;external "Kernel32.dll" name "GetDiskFreeSpaceExA";
function MultiByteToWideChar_a(CodePage:integer;dwFlags:integer;lpMultiByteStr:string;cbMultiByte:integer;var lpWideCharStr:string;cchWideChar:integer):integer;stdcall;external "Kernel32.dll" name "MultiByteToWideChar";
function GetModuleHandleA(name:pointer):pointer;stdcall;external "Kernel32.dll" name "GetModuleHandleA";
function GetComputerNameA(var lpBuffer:string;var nSize:integer):integer;stdcall;external "Kernel32.dll" name "GetComputerNameA";
function GetLastError():integer;stdcall;external "Kernel32.dll" name "GetLastError";
function GetEnvironmentVariableA(lpName:string;lpBuffer:string;nSize:integer):integer;stdcall;external "Kernel32.dll" name "GetEnvironmentVariableA";
function SetEnvironmentVariableA(lpName:string; lpValue:string):integer;stdcall;external "Kernel32.dll" name "SetEnvironmentVariableA";
function GetLogicalDriveStringsA(BUFSIZE:integer; szLogicDriveStrings:string):integer;stdcall;external "Kernel32.dll" name "GetLogicalDriveStringsA";
function GetDiskFreeSpaceExA(lpDirectoryName:string;var lpFreeBytesAvailableToCaller:int64;var lpTotalNumberOfBytes:int64;var lpTotalNumberOfFreeBytes:int64):integer;stdcall ;external "Kernel32.dll" name "GetDiskFreeSpaceExA";
function GlobalAlloc(uFlags :integer;dwBytes:integer):pointer;stdcall;external "Kernel32.dll" name "GlobalAlloc";
function CreateStreamOnHGlobal(hGlobal:pointer;fDeleteOnRelease:integer; var ppstm:pointer):pointer;stdcall;external "Ole32.dll" name "CreateStreamOnHGlobal";
function GetHGlobalFromStream(pstm:pointer; var phglobal:pointer):pointer;stdcall;external "Ole32.dll" name "GetHGlobalFromStream";
@ -246,15 +246,15 @@ type twindowsapi = class()
function GetKeyNameTextA(lParam:integer;var lpString:string;cchSize:integer):integer;stdcall;external "User32.dll" name "GetKeyNameTextA";
//´°¿ÚÏà¹Ø
class function FindWindowA(lpClassName:string;lpWindowName:string):pointer;stdcall;external "User32.dll" name "FindWindowA";
class function GetForegroundWindow():pointer;stdcall;external "User32.dll" name "GetForegroundWindow";
class function GetActiveWindow():pointer;stdcall;external "User32.dll" name "GetActiveWindow";
class function SetActiveWindow(h:pointer):pointer;stdcall;external "user32.dll" name "SetActiveWindow";
function FindWindowA(lpClassName:string;lpWindowName:string):pointer;stdcall;external "User32.dll" name "FindWindowA";
function GetForegroundWindow():pointer;stdcall;external "User32.dll" name "GetForegroundWindow";
function GetActiveWindow():pointer;stdcall;external "User32.dll" name "GetActiveWindow";
function SetActiveWindow(h:pointer):pointer;stdcall;external "user32.dll" name "SetActiveWindow";
function UpdateLayeredWindow(hWnd:pointer;hdcDst:pointer;pptDst:pointer;psize:pointer;hdcSrc:pointer;pptSrc:pointer; crKey:integer;pblend:pointer; dwFlags:pointer):integer;stdcall;external "User32.dll" name "UpdateLayeredWindow";
function GetFocus():pointer;stdcall;external "User32.dll" name "GetFocus";
function SetLayeredWindowAttributes(hwnd:pointer;crKey:integer;bAlpha:byte;dwFlags:integer):integer;stdcall;external "User32.dll" name "SetLayeredWindowAttributes";
class function IsWindow(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindow";
class function IsWindowVisible(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindowVisible";
function IsWindow(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindow";
function IsWindowVisible(hd:pointer):integer;stdcall;external "User32.dll" name "IsWindowVisible";
function GetWindow(hd:pointer;cd:integer):pointer;stdcall;external "User32.dll" name "GetWindow";
//function GetNextWindow(hd:pointer;cd:integer):pointer;stdcall;external "User32.dll" name "GetNextWindow";
function GetNextWindow(h,cd);
@ -271,6 +271,7 @@ type twindowsapi = class()
function ForegroundWindow(wnd_);
begin
if not (wnd_>0 or wnd_<0) then return 0;
ShowWindow(wnd_,1);
SetWindowPos(wnd_, 0xFFFFFFFF, 0, 0, 0, 0, 1 .| 2);
SetWindowPos(wnd_, 0xFFFFFFFE, 0, 0, 0, 0, 1 .| 2);
return 1;