Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  125

•  TDictionary Custom Sort  3 312

•  Fast Watermark Sources  3 062

•  3D Designer  4 818

•  Sik Screen Capture  3 314

•  Patch Maker  3 528

•  Айболит (remote control)  3 630

•  ListBox Drag & Drop  2 993

•  Доска для игры Реверси  81 543

•  Графические эффекты  3 922

•  Рисование по маске  3 227

•  Перетаскивание изображений  2 608

•  Canvas Drawing  2 732

•  Рисование Луны  2 556

•  Поворот изображения  2 163

•  Рисование стержней  2 160

•  Paint on Shape  1 564

•  Генератор кроссвордов  2 224

•  Головоломка Paletto  1 764

•  Теорема Монжа об окружностях  2 211

•  Пазл Numbrix  1 682

•  Заборы и коммивояжеры  2 052

•  Игра HIP  1 278

•  Игра Go (Го)  1 224

•  Симулятор лифта  1 470

•  Программа укладки плитки  1 214

•  Генератор лабиринта  1 542

•  Проверка числового ввода  1 351

•  HEX View  1 489

•  Физический маятник  1 355

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Работа с IDE из программы



Вот подпрограммы, работающие у меня в связке D1 и Win 3.1x:


function LaunchedFromDelphiIDE: Boolean;
{----------------------------------------------------------------}
{ Осуществляем проверку запущенности приложения из-под Delphi    }
{ IDE. Идея взята из сообщения в Delphi-Talk от Ed Salgado       }
{ из Eminent Domain Software.                                    }
{----------------------------------------------------------------}

begin
  LaunchedFromDelphiIDE := Bool(PrefixSeg) {т.е. не DLL} and
  Bool(PWordArray(MemL[DSeg: 36])^[8]);
end; {LaunchedFromDelphiIDE}

function DelphiLoaded: Boolean;
{----------------------------------------------------------------}
{ Проверяем, загружена ли Delphi. Дает правильные результаты     }
{  - если вызывающее приложение запущено отдельно, или из-под IDE}
{  - если Delphi имеет открытый проект                           }
{  - если Delphi минимизирована.                                 }
{ Автор идеи Wade Tatman (wtatman@onramp.net).                   }
{----------------------------------------------------------------}

begin
  DelphiLoaded := false;
  if WindowExists('TPropertyInspector', 'Object Inspector') then
    if WindowExists('TMenuBuilder', 'Menu Designer') then
      if WindowExists('TAppBuilder', '(AnyName)') then
        if WindowExists('TApplication', 'Delphi') then
          if WindowExists('TAlignPalette', 'Align') then
            DelphiLoaded := true;
end; {DelphiLoaded}

function DelphiInstalled: Boolean;
{----------------------------------------------------------------}
{ Проверяем наличие Delphi.ini, ищем в нем путь к Библиотеке     }
{ Компонентов, после чего проверяем ее наличие по этому пути.    }
{----------------------------------------------------------------}

var
  IniFile: string;
begin
  DelphiInstalled := false;
  IniFile := WindowsDirectory + '\Delphi.ini';
  if FileExists(IniFile) then
    if FileExists(GetIni(IniFile, 'Library', 'ComponentLibrary')) then
      DelphiInstalled := true;
end; {DelphiInstalled}

Я уверен, что один из приведенных выше методов вам поможет.Последние две
  подпрограммы используют некоторые другие инкапсуляции Windows API и классов
  Delphi, и они определены следующим образом:

function WindowExists(WindowClass, WindowName: string): Boolean;
{----------------------------------------------------------------}
{ С помощью паскалевских строк проверяем наличие определенного   }
{ окна. Для поиска только имени окна (WindowName), используем    }
{ WindowClass '(AnyClass)'; для поиска только класса окна        }
{ (WindowClass), используем WindowName '(AnyName)'.              }
{----------------------------------------------------------------}

var
  PWindowClass, PWindowName: PChar;
  AWindowClass, AWindowName: array[0..63] of Char;
begin
  if WindowClass = '(AnyClass)' then
    PWindowClass := nil
  else
    PWindowClass := StrPCopy(PChar(@AWindowClass), WindowClass);

  if WindowName = '(AnyName)' then
    PWindowName := nil
  else
    PWindowName := StrPCopy(PChar(@AWindowName), WindowName);

  if FindWindow(PWindowClass, PWindowName) <> 0 then
    WindowExists := true
  else
    WindowExists := false;
end; {WindowExists}

function WindowsDirectory: string;
{----------------------------------------------------------------}
{ Возвращаем путь к каталогу Windows (без обратной косой черты)  }
{----------------------------------------------------------------}

const
  BufferSize = 144;
var
  ABuffer: array[0..BufferSize] of Char;
begin
  if GetWindowsDirectory(PChar(@ABuffer), BufferSize) = 0 then
    WindowsDirectory := ''
  else
    WindowsDirectory := StrPas(PChar(@ABuffer));
end; {WindowsDirectory}

function GetIni(const IniFile, Section, Entry: string): string;
{----------------------------------------------------------------}
{ Получаем инициализационную 'profile' строку из определенного   }
{ пункта (Entry) определенной секции [Section] определенного     }
{ INI-файла (дополняем '.ini', если отсутствует). Возвращаем     }
{ нулевую строку, если IniFile, Section или Entry не найден.     }
{----------------------------------------------------------------}

var
  IniFileVar: string;
  IniFileObj: TIniFile;
begin
  if StrEndsWith(IniFile, '.ini') then
    IniFileVar := IniFile
  else
    IniFileVar := IniFile + '.ini';
  IniFileObj := TIniFile.Create(IniFileVar);
  GetIni := IniFileObj.ReadString(Section, Entry, '');
  IniFileObj.Free;
end; {GetIni}





Похожие по теме исходники

Nstruct (работа с DBF)

Работа с принтером

fwZIP - Работа с ZIP архивами

Video Gest

 

Plasma Provider

Video Creator

Slide Show by OFFLAKE

Space Raider

 

BASS Video

Colibri WEB Spider

Generic Internet Spider

Raiden Cipher

 



Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте