81 lines
1.9 KiB
Plaintext
81 lines
1.9 KiB
Plaintext
{
|
|
tsl界面设计器启动程序
|
|
}
|
|
uses tslvcl,tslvclDesigner;
|
|
deletefuncacheini();
|
|
isdebug := false;
|
|
for i:= 0 to sysparamcount() do
|
|
begin
|
|
if ("-DEBUGSERVER" = sysparamstr(i)) then
|
|
begin
|
|
isdebug := true;
|
|
break;
|
|
end
|
|
end
|
|
h := FindWindowA("tsluidesigner_a_a_1",nil); //查找唯一窗口
|
|
if not(isdebug) and h then
|
|
begin
|
|
return PostMessageA(h,0x400,303,10);
|
|
end
|
|
app := InitializeApplication();
|
|
app.createform(class(TVclDesignerStart),Desginer);
|
|
Desginer.Show();
|
|
r := app.run();
|
|
return r;
|
|
type TVclDesignerStart = class(TVclDesigner) //实现唯一的窗口
|
|
function create(AOwner);
|
|
begin
|
|
inherited;
|
|
end
|
|
function WMUSER(o,e):WM_USER;override;
|
|
begin
|
|
if e.wparam = 303 and e.lparam=10 then
|
|
begin
|
|
Show(SW_SHOWMINIMIZED);
|
|
PostMessageA(self.handle,WM_USER,303,12);
|
|
end
|
|
else if e.wparam = 303 and e.lparam=12 then
|
|
begin
|
|
Show(SW_SHOWNORMAL);
|
|
_wapi.bringWindowToTop(self.Handle);
|
|
end
|
|
inherited;
|
|
end
|
|
function CreateParams(p);override;
|
|
begin
|
|
inherited;
|
|
p.WinClassName := "tsluidesigner_a_a_1";
|
|
end
|
|
end
|
|
function deletefuncacheini();
|
|
begin
|
|
plg := pluginpath();
|
|
{$ifdef linux}
|
|
sp :="/";
|
|
{$else}
|
|
sp := "\\";
|
|
{$endif}
|
|
for i:= length(plg)-1 downto 1 do
|
|
begin
|
|
if plg[i]=sp then
|
|
begin
|
|
fn := plg[1:i]+"FunCache.ini";
|
|
r := filedelete("",fn);
|
|
return r;
|
|
end
|
|
end
|
|
end
|
|
{$ifdef linux}
|
|
function PostMessageA();
|
|
begin
|
|
end
|
|
function FindWindowA();
|
|
begin
|
|
|
|
end
|
|
{$else}
|
|
function PostMessageA(hWnd:pointer;Msg:integer;wParam:pointer;lParam:pointer):integer;stdcall;external "User32.dll" name "PostMessageA"; //引入api
|
|
function FindWindowA(lpClassName:string;lpWindowName:string):pointer;stdcall;external "User32.dll" name "FindWindowA";//引入api
|
|
{$endif}
|
|
|