Далее, возможные варианты работы с русскими буквами в редакторе Delphi.
Нельзя в Windows выставлять TrueType fonts only — редактор использует только FixedFonts, в результате Delphi просто не будет работать.
1. Комментарии и строки могут быть введены только в кодировке 1251 — причина, естественно в том, что русификатор позволит вводить русские буквы только в этой кодировке. Тексты, написанные в DOS (кодировка 866), будут отображаться как "мусор" на экране — редактор HЕ преобразует символы 866→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 }после uses; данная директива вставляет указанный текст (SCRNSAVE ) в раздел описания модуля — в данном случае программы. Это главное, что необходимо для того, чтобы 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. Это все.
1. Есть ли в Delphi эквивалент массива элементов управления из Visual Basic?
Hет. Компоненты Delphi не имеют свойства Index, подобное VB. Однако, имеются три основные причины, почему вы хотите использовать их в VB, и для каждой из них есть решение в Delphi.
Причина 1. Вы хотите использовать один обработчик события для разных компонент на форме.
Это просто. Все, что вы должны сделать — это выбрать тот же самый обработчик для каждой визуальной компоненты. Это лучше, чем в случае с массивом компонент, потому что вы можете одну и ту же процедуру-обработчик события присвоить различным типам компонент; например, кнопка на форме и пункт меню могут вызывать ту же самую функцию для обработки события OnClick .
Читать дальше