Читать «Виртуальная библиотека Delphi» онлайн - страница 113

Unknown

    else PClassName := StrPCopy(@AClassName[0], ClassName);

    if WindowName = '' then PWindowName := nil

    else PWindowName := StrPCopy(@AWindowName[0], WindowName);

    Result :=  FindWindow(PClassName, PWindowName) <> 0;

  end;

begin

  Result := WindowExists('TPropertyInspector', 'Object Inspector')

        and WindowExists('TMenuBuilder', 'Menu Designer')

        and WindowExists('TApplication', 'Delphi')

        and WindowExists('TAlignPalette', 'Align')

        and WindowExists('TAppBuilder', '');

end;

Delphi 2.0

function DelphiLoaded: Boolean;

  function WindowExists(ClassName, WindowName: string): Boolean;

  begin

    Result :=  FindWindow(PChar(ClassName), PChar(WindowName)) <> 0;

  end;

begin

  Result := WindowExists('TPropertyInspector', 'Object Inspector')

        and WindowExists('TMenuBuilder', 'Menu Designer')

        and WindowExists('TApplication', 'Delphi')

        and WindowExists('TAlignPalette', 'Align')

        and WindowExists('TAppBuilder', '');

end;

Другой вариант для Delphi 1.0, работает только в EXE файлах (не в DLL).

function InIDE: Boolean;

begin

  Result := Bool(PrefixSeg) and Bool(PWordArray(MemL[DSeg:36])^[8]));

;end

6. Что нужно предусмотреть при разработке приложения, которое будет работать при различном разрешении дисплея?

На ранней стадии создания приложения решите для себя хотите ли вы позволить форме масштабироваться. Преимущество немасштабируемой формы в том, что ничего не меняется во время выполнения. В этом же заключается и недостаток (ваша форма может бать слишком маленькой или слишком большой в некоторых случаях).

1. Если вы не собираетесь делать форму масштабируемой, установите свойство Scaled=False и дальше не читайте.

2. В противном случае Scaled=True.

 1. Установите AutoScroll=False. AutoScroll = True означает 'не менять размер окна формы при выполнении' что не очень хорошо выглядит, когда содержимое формы размер меняет.

 2. Установите шрифты в форме на самые распространенные TrueType шрифты, например Arial, Times New Roman, Courier. Если вдруг выбранного шрифта не окажется на пользовательском компьютере, то Windows выберет альтернативный шрифт из того же семейства. Этот шрифт может не совпадать по размерус исходным, что вызовет проблемы.

 3. Установите св-во Position в любое значение, отличное от poDesigned. poDesigned оставляет форму там, где она была во время дизайна, и, например, при разрешении 1280×1024 форма может оказаться в левом верхнем углу и совершенно за экраном при 640×480.

 4. Оставляйте по крайней мере 4 точки между компонентами, чтобы при смене положения границы на одну позицию компоненты не "наезжали" друг на друга.

 5. Для однострочных меток TLabel с выравниванием alLeft или alRight установите AutoSize=True. Иначе AutoSize=False. Убедитесь, что достаточно пустого места у TLabel для изменения ширины фонта — 25% пустого места многовато, зато безопасно. При AutoSize=False Убедитесь, что ширина метки правильная, при AutoSize=True убедитесь, что есть свободное место для роста метки.