79 lines
1.9 KiB
Plaintext
79 lines
1.9 KiB
Plaintext
{
|
|
tsl界面设计器启动程序
|
|
}
|
|
uses tslvcl,utslvclDesigner;
|
|
setprocessdpiawareness(2);
|
|
deletefuncacheini();
|
|
isdebug := false;
|
|
willopen := "";
|
|
for i:= 0 to sysparamcount() do
|
|
begin
|
|
if wait_filename then
|
|
begin
|
|
willopen := sysparamstr(i);
|
|
wait_filename := 0;
|
|
end else
|
|
if ("-tpj"=sysparamstr(i)) then
|
|
begin
|
|
wait_filename := true;
|
|
end else
|
|
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();
|
|
if willopen then Desginer.OpenFileFromTpjFile(willopen);
|
|
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
|
|
return filedelete("",(TS_ModulePath()+"FunCache.ini"));
|
|
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}
|
|
|