"Виртуальная библиотека Delphi" - читать интересную книгу автора

Вопросы по Delphi 1.0

Вопросы общего характера

1. Какие существуют варианты поставки Delphi 1.0?

Версия Delphi 1.0 имеет два варианта: Delphi Desktop и Delphi Client/Server.

Версия Delphi 1.0 Desktop включает:

• Среду разработки Delphi IDE

• Механизм Borland Database Engine доступа к локальным данным Paradox и dBase, а также через ODBC

• 16-разрядный Local Interbase

• Печатную документацию

Версия Delphi 1.0 Client/Server включает в себя все, что имеется в Delphi Desktop плюс:

• SQL-Links 2.5, которые включают родные драйверы для Oracle, Sybase (MS SQL), Informix, и InterBase, и включают полные неограниченные права распространения к этим драйверам (что стоит $995 если это куплено отдельно);

• Local InterBase Deployment Kit , $495[2];

• ReportSmith/SQL, $300[3];

• Средства поддержки групповой разработки — не доступно отдельно;

• Visual Query Builder, который, как говорят, немного лучше, чем MSQuery, который входит в Microsoft Excel , Access , и т.д.). VQB также недоступен отдельно;

• Исходные тексты библиотеки визуальных компонент, которые доступны отдельно за $100.

• Дополнительно 2 тома документации.

На данный момент версия Delphi 1.0 фирмой Borland отдельно не поставляется и имеется только в составе старших версий продукта.


2. Какие форматы скомпилированных модулей можно получить в Delphi 1.0?

Delphi может создавать EXE- и DLL-файлы  для Windows 3.1. Естественно, Вы может также создавать VBX, но для этого нужно знать соглашения по написанию DLL в формате VBX. Имеется информация о написании VBX для Borland Pascal for Windows, которая с небольшими изменениями подходит и для Delphi.

Delphi не создает EXE-файлы для DOS.


3. Есть ли проблемы в Delphi с русским языком?

Что касается визуальных компонент, то все они, включая меню, допускают надписи (Caption) и ввод киррилицей; "горячие клавиши" тоже могут быть русские, например комбинация Alt-Ф для пункта меню amp;Файл (конечно, должен  быть включен драйвер русской клавиатуры). Для работы с таблицами нужно в утилите конфигурации BDE установить:

1. В разделе драйверы для всех типов баз данных установить соответствующий драйвер языка (например Pdox ANSI Cyrillic).

2. Если таблица (в частности, в формате Paradox) уже была создана с использованием другого драйвера языка, то ее можно перенастроить в DataBase Desktop на нужный драйвер.

3. Для того, чтобы Database Desktop нормально 'видел' русские буквы, его настройки тоже необходимо немного подкорректировать.

Русские буквы в среде:

Поскольку используются разные версии Windows (Eng, Rus, Win-OS2, Win95, WinNT), способы могут быть как разными, так и общими (Windows есть Windows).

Сначала опишем действия, необходимые для русификации Windows:

1. Если вы собираетесь работать в OS/2, то желательно иметь английскую версию Windows 3.1 или OS/2 с Win-OS2 (в последнем случае вы не сможете запускать Windows без OS/2). Windows for WorkGroups здесь не подойдет, т.к. их сетевые функции под OS/2 работать не будут — для этого есть другие средства.

2. Hесмотря на то, что вы собираетесь работать с англоязычной версией Windows найдите русские Windows и "вытащите" оттуда все шрифты *.FON, *.FOT, *.TTF.

3. Каким-нибудь редактором шрифтов (напр FontoGrapher) скопируйте русские буквы с адреса 100 на адрес С0 — в этом случае один шрифт можно использовать и в английских и в русских Windows.

4. Установите какой-либо русификатор — неплохо ведут себя CyrWin и ParaWin, причем для Win-OS2 предпочтительнее ParaWin. Устанавливать можно только русификатор без шрифтов, т.к. шрифты пойдут от русских Windows. Если вы не выполнили пункт 3, то TTF от русских Windows вам не помогут, и нужно будет ставить шрифты из комплекта русификатора.

5. Замените все шрифты *.FON на шрифты из русских Windows.

6. Подключите русские шрифты (Arial Cyr, Courier New Cyr, Times New Cyr).

7. Добавьте в WIN.INI в секцию [FontSubstitutes] следующую строку: Arial=Arial Cyr или вместо Arial Cyr укажите русский шрифт сходный по начертанию (напр. для CyrWin это NTHelvetica/Cyrillic).

Также на всякий случай можно добавить следующие подстановки:

Helvetica=Arial Cyr (или NTHelvetica/Cyrillic)

Одновременно закомментируйте строки, где упоминается английский шрифт Arial.

В русских Windows можно совершенно безболезненно удалить (при помощи Control Panel/Fonts) шрифты, имеющие в названии окончание CE (напр. Arial CE) - это сербо-хорватские шрифты, которые вам вряд-ли когда понадобятся (русских букв там нет).

Далее, возможные варианты работы с русскими буквами в редакторе Delphi.

Нельзя в Windows выставлять TrueType fonts only — редактор использует только FixedFonts, в результате Delphi просто не будет работать.

1. Комментарии и строки могут быть введены только в кодировке 1251 — причина, естественно в том, что русификатор позволит вводить русские буквы только в этой кодировке. Тексты, написанные в DOS (кодировка 866), будут отображаться как "мусор" на экране — редактор HЕ преобразует символы 866#8594;1251. Однако если для редактора установить шрифт Terminal — тексты в 866 будут отображаться нормально, а ввести символы не удастся (опять же по причине ввода символов только в кодировке 1251). Уже готовый текст в 866 кодировке лучше преобразовать в 1251 с помощью одной из программ конвертации.

2. Некоторые программные продукты при установке меняют фиксированные шрифты или даже удаляют их. Будьте внимательны при и после установки других программных продуктов, особенно редакторов текстов (WinWord, AmiPro…). Держите под рукой архив с русскими шрифтами *.FON, чтобы была возможность восстановить эти шрифты.

3. Поэкспериментируйте со шрифтами редактора — разные шрифты имеют разное начертание, и разную скорость перерисовки. Выберите нужное для себя — либо скорость перерисовки, либо удобное начертание. Для локального InterBase нормальной русской кодировкой является Win1251 — имена доступных кодировок можно найти открыв любую DB InterBase (в т.ч. и локальную) и заглянув в системную таблицу RDB$CHARACTER_SETS.


4. Какую модель данных использует Delphi?

Delphi использует смешанную (mixed) модель памяти, но она очень похожа на модель large в C.С++:

• Методы дальние (far)

• Процедуры, описанные в интерфейсной части, дальние

• Процедуры, используемые только в implementation по умолчанию ближние

• Данные в Heap и все указатели вообще (включая экземпляры объектов) дальние

• Глобальные переменные ближние (в сегменте DS)

• Параметры процедур и локальные переменные ближние (в стеке)

• Процедуры, объявленные far или export дальние

• VMT дальние для новой модели классов и ближние для старой

Эта схема используется в Borland Pascal долгое время.


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 lt;SaverNamegt;} после uses; данная директива вставляет указанный текст (SCRNSAVE lt;SaverNamegt;) в раздел описания модуля — в данном случае программы. Это главное, что необходимо для того, чтобы 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. Это все.