Советы по Delphi


Определение работы Delphi III


    function DelphiLoaded : boolean;
{ Определение работающей Delphi. Во всяком случае, дает правильный результат если Delphi минимизирован, или имеет открытый проект. Также, правильный результат получается, если вызывающее приложение автономно, или запущено из-под IDE. Код написан на основе идей Wade Tatman wtatman@onramp.net - Mike O'Hanlon, The Pascal Factory, найденных в Delphi-Talk List. }

function WindowExists(ClassName, WindowName: string): boolean;
{ Проверяем наличие определенного окна Window, используя для этого паскалевские строки вместо PChars. }

var PClassName, PWindowName: PChar;

AClassName, AWindowName: array[0..63] of char; begin if ClassName = '' then PClassName := nil else PClassName := StrPCopy(@AClassName[0], ClassName); if WindowName = '' then PWindowName := nil else PWindowName := StrPCopy(@AWindowName[0], WindowName); if FindWindow(PClassName, PWindowName) <> 0 then WindowExists := true else WindowExists := false; end;  {WindowExists}
begin {DelphiLoaded} DelphiLoaded := false; if WindowExists('TPropertyInspector', 'Object Inspector') then if WindowExists('TMenuBuilder',     'Menu Designer') then if WindowExists('TApplication',   'Delphi')    then if WindowExists('TAlignPalette','Align') then if WindowExists('TAppBuilder','')  then DelphiLoaded := true; end; {DelphiLoaded}

Следующая программа возвращает TRUE при запуске в Delphi IDE (ПРИМЕЧАНИЕ: это _не_ сработает, если подпрограмма в DLL).

    function InIDE: Boolean;
begin
Result := Bool(PrefixSeg) and Bool(PWordArray(MemL[DSeg:36])^[8])); end;  { InIDE }

[001442]



Содержание раздела