при запуске его через CreateProcess
Запускаю так :
GetStartupInfo(lpStartupInfo);
lpStartupInfo.cb := sizeof(TStartupInfo);
lpStartupInfo.dwFlags :=
STARTF_USESHOWWINDOW
+ STARTF_USESIZE + STARTF_USECOUNTCHARS ;
lpStartupInfo.wShowWindow := SW_SHOWDEFAULT;
case WinSizeType of
0 : begin WinX := 132; WinY := 60; end;
1 : begin WinX := 80; WinY := 50; end;
2 : begin WinX := 80; WinY := 25; end;
3 : begin WinX := 152; WinY := 76; end;
4 : begin WinX := 110; WinY := 40; end;
5 : begin WinX := edSizeWidth.AsInteger; WinY := edSizeHigh.AsInteger; end;
else
WinX := 80; WinY := 25;
end;
lpStartupInfo.dwXSize := WinX * 10;
lpStartupInfo.dwXCountChars := WinX;
lpStartupInfo.dwYSize := WinY * 18;
lpStartupInfo.dwYCountChars := WinY;
lpStartupInfo.lpTitle := PChar(EXEFileName);
if edIsShowCmd.Checked then begin
if (ShowDialog('Запуск модуля'
, RunParams + #13#10
+ #13#10
+ 'Рабочий каталог :' + #13#10 + WorkFolder + #13#10
+ #13#10
+ 'Запускать ?'
, sdiConfirm, ['&Да', '&Нет']) <> 1) then Exit;
end;
if not CreateProcess(
nil
,PChar(RunParams)
,nil
,nil
,False
,0
,nil
,PChar(WorkPath)
,lpStartupInfo
,lpProcessInformation
)
then Exception.Create('Ошибка при выполнении командной строки ' + #13#10 + RunParams);
Добился синхронного измения размера при установке шрифта в свойствах окна, но сам шрифт приходится :
1. Выбирать в свойствах
2. Надо как то указать его программе для расчета размера окна в пикселях.
Вариант - считать размер шрифта из свойств, но тоже не знаю как.