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

Unknown

5. Можно ли использовать в приложении ресурсы, созданные в BPW 7.0?

Все ресурсы, созданные в других приложениях, можно подключить и использовать  в Delphi с помощью директивы компилятора {$R ...} и процедур Windows API. Кроме того, меню из файла ресурсов и графические файлы *.BMP, *.ICO и *.WMF можно импортировать в приложение Delphi на этапе разработки. В настоящее время компанией Borland поставляется программный продукт RAD Pack for Delphi, где в состав поставки входит эксперт, позволяющий преобразовывать ресурсы из BP7.0 в формы Delphi.

6. Возможно ли написать Screen Saver для Windows в Delphi?

Для создания программы, работающей как Screen Saver:

1. В проектном файле (*.dpr) напишите {$D SCRNSAVE <SaverName>} после uses; данная директива вставляет указанный текст (SCRNSAVE <SaverName>) в раздел описания модуля — в данном случае программы. Это главное, что необходимо для того, чтобы Windows распознал программу как Screen Saver.

2. Hа главной форме выключите Border (BorderStyle=bsNone) и иконки. Установите свойства Left и Top =0, WindowState=wsMaximize.

3. В обработчике события OnCreate, установите Application.OnMessage на процедуру деактивации Screen Saver. Установите Application.OnIdle на любую процедуру для рисования на экране.

4. В обработчике OnCreate должна проверяться командная строка на наличие ключей /c и /s. Эти параметры определяют, нужно ли запускать сам Screen Saver или его конфигурацию (/c - конфигурация).

5. Скомпилируйте программу и переименуйте из .exe в .scr ;  поместите файл в каталог Windows — Screen Saver должен появиться на панели управления (Control Panel).

7. Как Delphi обрабатывает функции обратного вызова Windows (сallback)?

Точно так же как C: вы можете получить указатель (far pointer) на вашу callback процедуру (не забыть при этом обьявить ее с директивой компилятора  {$F+}, либо спецификатором far) и передать этот указатель в Windows. Это все.

Delphi и Visual Basic

1. Есть ли в Delphi эквивалент массива элементов управления из Visual Basic?

Hет. Компоненты Delphi не имеют свойства Index, подобное VB. Однако, имеются три основные причины, почему вы хотите использовать их в VB, и для каждой из них есть решение в Delphi.

Причина 1. Вы хотите использовать один обработчик события для разных компонент на форме.

Это просто. Все, что вы должны сделать — это выбрать тот же самый обработчик для каждой визуальной компоненты. Это лучше, чем в случае с массивом компонент, потому что вы можете одну и ту же процедуру-обработчик события присвоить различным типам компонент; например, кнопка на форме и пункт меню могут вызывать ту же самую функцию для обработки события OnClick.

Причина 2. Вы хотите динамически создавать и уничтожать визуальные компоненты во время выполнения программы.

Это также довольно просто в Delphi. Предположим, что на форме есть кнопка, и, каждый раз когда она нажимается, вы хотите создавать другую кнопку. Следующий пример показывается, как это делать: