Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

.OCX-файл является специализированной DLL, которая содержит все или несколько функций, связанных с элементом управления ActiveX. Файл OCX задумывался как «обертка», которая содержала бы сам объект, и средства для связи с другими объектами и серверами.

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

Delphi 1

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 }

Работа

с 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, ищем в нем путь к Библиотеке }

Поделиться:
Популярные книги

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Император поневоле

Распопов Дмитрий Викторович
6. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Император поневоле

Лорд Системы 7

Токсик Саша
7. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 7

Целитель. Книга вторая

Первухин Андрей Евгеньевич
2. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель. Книга вторая

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Случайная свадьба (+ Бонус)

Тоцка Тала
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Случайная свадьба (+ Бонус)

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Не грози Дубровскому! Том Х

Панарин Антон
10. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том Х

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Хочу тебя навсегда

Джокер Ольга
2. Люби меня
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Хочу тебя навсегда

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Смерть может танцевать 3

Вальтер Макс
3. Безликий
Фантастика:
боевая фантастика
5.40
рейтинг книги
Смерть может танцевать 3