Delphi World - Определение работы в Delphi IDE
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Определение работы в Delphi IDE


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 }

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования