Result := [paDialog]
end
procedure TFileNameProperty.Edit;
begin
with TOpenDialog.Create(Application) do
try
Title := GetName;
Filename := GetValue;
Filter := 'All Files (*.*)|*.*';
HelpContext := 0;
Options := Options +
[ofShowHelp, ofPathMustExist, ofFileMustExist];
if Execute then SetValue(Filename);
finally
Free
end
end
procedure Register;
begin
RegisterComponents('DrBob42', [TUUCode]);
RegisterPropertyEditor(TypeInfo(TFilename), nil,
'InputFile', TFilenameProperty);
end
end.
Если вы желаете использовать компонент TUUCode в составе, какого либо пакета, то вы должны поместить компонент UUCode в пакет времени выполнения (runtime package), и модуль UUReg в пакет разработки (design-time), который требует пакет времени выполнения. В действительности, для использования пакетов вы можете использовать UUCode Wizard из следующей главы в пакет времени разработки и сделать его доступным в IDE Delphi для всех пользователей!
1.1.12. UUCode Example Wizard
Для показа прогресса 16-битный пример использует TGauge компонент, в то же время 32-битная версия использует Windows 95 Progress Control.
рис. 1.1. 16-битная версия примера UUCode
рис. 1.2. 32-битная версия примера UUCode
Во время исполнения программы могут возникнуть два исключения. Если входной файл пуст и во время кодирования, если выходной файл пуст. Для 16 битной версии может возникнуть третье исключение, если входной или выходной файл больше 65000 байт (16-битная версия данного компонента может обрабатывать входные и выходные файлы до 64 килобайт). На практике это означает, не может быть более 48 килобайт. 32-битная версия не имеет такого ограничения).
1.1.13. Заключение
В этой главе мы рассмотрели uuencode/uudecode, xxencode/xxdecode, и Base64 алгоритмы кодирования/декодирования. Мы также разработали простой VCL компонент, который поддерживает эти алгоритмы в дополнение к простому копированию. Свойства, методы и события делают данный компонент пригодным для построения Интернет приложений нуждающихся в подобном преобразовании.
Компонент TBUUCode сейчас часть пакета "DrBob42 component package for Delphi and C++Builder".
1.2. HTML
Аббревиатура HTML означает HyperText Mark-up Language (язык разметки гипертекстовых документов), который является базовым для построения статических страниц. HTML страница является простым текстовым ASCII файлом с HTML-тегами между "<" и ">" (часто парами). Браузеры, такие как Netscape Navigator и Internet Explorer просто интерпретируют HTML коды на данных страницах для показа заголовков, жирного и наклонного текста, изображений и также фреймов и таблиц. Следующая таблица приводит несколько основных HTML тегов, которые будут рассмотрены далее в этой главе.
HTML tag | text effect |
---|---|
… | Ограничивает HTML страницу |
Секция заголовков | |
Заголовок документа | |
… | Секция содержимого страницы |
… | Заголовок (возможные уровни 1..6) |
… | Жирный текст |
… | Наклонный текст |
Разрыв строки | |
Горизонтальная черта | |
Абзац | |
…. | Ссылка на другую страницу или URL |
HTML страница всегда начинается тегом и заканчивается тегом .
Содержимое страницы размещается между тегами
и . Множественные разрывы строк и пробелы/табуляции игнорируются и заменяются на один пробел, это причина, по которой требуется специальный тег разрыва строки. Простая HTML страница с одним заголовком и ссылкой выглядит так.
Hello, world!