Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа
Класс TList -- универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются -- эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса.
(Pb) property OnResize: TNotifyEvent;
может быть предусмотрена реакция пользователя на изменение размеров панели.
Компонент TScrollBox
TObject-^TPersistent->
->TScrollingWinControl--"
Модуль FORMS
Страница Палитры компонентов Additional
Компонент представляет собой прямоугольную область, снабженную парой линеек прокрутки. В этой области могут располагаться другие компоненты.
Указатели на горизонтальную и вертикальную полосы прокрутки являются свойствами компонента:
(Pb) property'HorzScrollBar: TControlScrollBar;
(Р1з) property VertScrollBar: TControlScrollBar;
Диапазон и шаг изменения, текущее положение и другие свойства такой полосы описаны в классе TControlScrollBar, который будет рассмотрен чуть ниже.
Если свойство
(Pb) property AutoScroll: Boolean;
установлено в True, пара полос прокрутки сама определяет требуемый диапазон изменения (Range), исходя из расположения, размеров и способа выравнивания всех дочерних элементов управления. При этом метод:
procedure ScrollInView(AControl: TControl);
помещает дочерний элемент управления AControl в видимую область, изменяя, если необходимо, положение бегунков полос прокрутки.
Стиль обрамления компонента определяется свойством:
(Pb) property BorderStyle: TBorderStyle;
При изменении размеров компонента возникает событие:
(Pb) property OnResize: TNotifyEvent;
Рассмотрим свойства класса TControlScrollBar. Это полоса прокрутки, обязательно принадлежащая какому-либо оконному элементу управления. Компонент этого типа не должен в явном виде создаваться пользователем, т. к. пара полос является составной частью компонента TScrollBox, а также формы TForm. Но зачастую бывает необходим доступ к свойствам полосы:
(Ro) property Kind: TScrollBarKind; TScrollBarKind = (sbHorizontal, sbVertical); |
Определяет направление полосы прокрутки. |
(Pb) property Margin: Word; |
Определяет начальный отступ полосы прокрутки, который автоматически учитывается. По умолчанию его значение равно 0. |
IPb) property Increment: TScrollBarInc; TScrollBarInc = 1..32767; |
Содержит минимальную единицу приращения при прокрутке. |
(Pb) property Position: Integer; |
Содержит текущее положение бегунка. Это и следующее свойства изменяются системой, например, при перемещении бегунка, при смене фокуса у элементов и при изменении размеров содержащего полосу компонента. |
(Pbi property Range: Integer; |
Определяет диапазон изменения положения бегунка. |
(Ro) property ScrollPos: Integer; |
Возвращает положение бегунка Position, если он видим. В противном случае свойство равно 0. |
Компоненты -- стандартные диалоговые окна Windows
В Windows, начиная с версии 3.1, появилась библиотека стандартных диалоговых окон COMMDLG.DLL, которая позволила заменить вызовом функций программирование рутинных операций в типовых случаях взаимодействия с пользователем. К этим случаям относятся выбор имени файла для чтения и записи, выбор цвета или шрифта, поиск и замена текста, настройка принтера и параметров печати. В Delphi предусмотрены компоненты, представляющие собой оболочку для этих стандартных диалогов.
Поместив компоненты-диалоги на форму, вы освобождаетесь от необходимости вызывать их конструкторы и деструкторы. Все использование этих компонентов укладывается в трехэтапную схему:
1. Настройка параметров диалога, во время которой устанавливаются те или иные возможности. У всех диалогов для этого предусмотрено свойство Options, но у некоторых есть и дополнительные свойства.
2. Вызов метода Execute, который показывает диалоговое окно на экране и инициирует взаимодействие с пользователем. Execute является функцией:
он возвращает True, если пользователь подтвердил ввод значения (т. е. нажал кнопку ОК на экране или клавишу <Enter> на клавиатуре) и False, если он отказался от выбора (т. е. нажал кнопку Cancel или клавишу <Esc>).
3. В случае положительного ответа -- чтение установленных значений в представляющем их свойстве (свойствах).
Примечание
Несколько отличается принцип взаимодействия в диалогах TFindDialog и TReplaceDialog, где нажатие кнопки подтверждения (Find и Replace соответственно) инициирует событие, которое пользователь должен обработать.
По этой схеме и будет строиться описание компонентов. Естественно, метод Execute при этом опущен. Кроме того, общим для диалогов является свойство HelpContext. При нажатии кнопки Help вызывается система помощи именно с этим контекстом.
Компоненты TOpenDialog и TSaveDialog
TObj ect-->TPersistent-->
-+TSaveDialog
Модуль DIALOGS
Страница Палитры компонентов Dialogs
Эти компоненты-диалоги предназначены для выбора имени файла, который будет в дальнейшем использован для чтения или записи. Рассмотрим их совместно, т. к. они отличаются только интерпретацией некоторых опций.
Диалог может быть настроен на представление имен файлов какого-нибудь одного типа или нескольких типов. При этом только эти типы отображаются в списке, и только из них может сделать выбор пользователь, с помощью свойства:
(РЬ) property Filter: string;
Формат строки фильтра состоит из двух частей. В первой задается краткое описание типа. Во второй части, которая отделяется символом '|' -- маска поиска нужных файлов по расширению. В список файлов попадут только те, которые имеют указанные расширения. Примеры задания фильтра: 'Delphi projectsl*.dpr' или 'All graphics files I *-bmp,*.ico,*.wmf '.
Таких пар строк для разных типов в фильтре может быть несколько, при этом форматы представления фильтра в самой системе Windows и в Delphi имеют одно отличие. При вызове стандартных диалогов Windows эти пары строк должны разделяться нулевым байтом, после последней строки также должен стоять нулевой байт. В рассматриваемых компонентах все строки разделяются символом 'Г.
Создавать строки вручную нужно лишь в редких случаях -- для ввода значения свойства на этапе проектирования предназначен специальный редактор. Есть также простой способ составить фильтр для графических файлов -- для этого предназначена процедура GraphicFilter (ее описание см. в разделе "Графическая подсистема").
В качестве начального фильтра при вызове диалога будет выбрана та пара строк, номер (индекс) которой совпадает со значением свойства:
(Pb) property Pilterlndex: Integer;
Если свойству не присваивалось значения, то по умолчанию выбирается первая пара.
Путь к файлам, которые первоначально будут отображены в диалоге, задается свойством:
(Pb) property InitialDir: string;
В случае, если в поле ввода имени файла пользователь при ручном наборе не определил его расширение, это за него пытается сделать диалог. Для этого свойству
(Pb) property DefaultExt: TFileExt;
TFileExt = string[3];
присваивается строка (до трех символов, без точки), которая и будет использоваться в качестве расширения по умолчанию. Например, если пользователь ввел в поле имени файла 'mybitmap', a DefaultExt равно 'bmp', то компонент вернет полное имя 'mybitmap. bmp'.
Поле ввода FileName, где отображаются и редактируются имена файлов, может быть простым редактирующим элементом, а может быть и комбинированным списком. В этот список должны попасть имена файлов, которые были прежде прочитаны (записаны). Стиль редактирующего элемента задан свойством
(Pb) property FileEditStyle: TFileEditStyle;
TFileEditStyle = (fsEdit, fsComboBox);
а содержимое списка ранее возвращавшихся имен -- свойством:
(Pb) property HistoryList: TStrings;
В случае действия стиля fsEdit это свойство не играет роли. Если же установлено fsComboBox, в выпадающем списке появляется содержимое HistoryList.
Можно создать список для этого свойства во время разработки программы. Но для того, чтобы оно действительно играло роль "предыстории", программист должен пополнять список после успешного окончания диалога, что иллюстрируется следующим фрагментом кода:
procedure TFormI-FileOpenClick(Sender: TObject);
begin
with OpenDialogI do if Execute then begin
Memol.Lines.LoadFromFile(
HistoryList.Add(FileName);
end;
end;
У двух диалогов имеется большой набор опций. Часть из них является общей, часть -- играет роль только для одного из диалогов:
(Pb) property Options: TOpenOptions;
TOpenOption = (ofReadOnly, ofOverwritePrompt, ofHideReadOnly, ofNoChangeDir, ofShowHelp, ofNoValidate, ofAllowMuItiSelect, ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofCreatePrompt, ofShareAware, ofNoReadOnlyReturn, ofNoTestFileCreate) ;
TOpenOptions = set of TOpenOption;
Три опции отвечают за работу с файлами со статусом "только для чтения":
ofReadOnly -- делает флажок "Read only" помеченным при появлении;
ofHideReadOnly -- прячет этот флажок в появляющемся диалоге;
ofNoReadOnlyRetum -- запрещает выбор файлов "только для чтения", извещая о необходимости выбрать другой файл при нажатии ОК.
Также три опции ограничивают ввод имен для новых (несуществующих) файлов:
ofPathMustExist -- указывает на то, что файл может находиться только в одном из существующих каталогов. В случае ввода несуществующего пути к файлу пользователь извещается об ошибке;
ofFileMustExist -- аналогичньм образом указывает на то, что может быть выбран только один из существующих файлов;
ofCreatePrompt -- опция устанавливает реакцию на предыдущую ситуацию. Если она установлена, то вместо сообщения об ошибке вьшодится запрос на создание нового файла.
Другие опции:
ofOverwritePrompt -- запрашивает подгверждение, если пользователь выбрал для записи уже существующий файл;
ofNoChangeDir -- запрещает изменение начального каталога, с которьм диалог будет проинициализирован. Если она установлена, диалог каждый раз появляется с тем каталогом, который был установлен при первом запуске;
ofShowHelp -- включает в состав диалога кнопку Help;
ofNo Validate -- выключает проверку введенного имени файла на наличие в нем недопустимых символов;
ofAllowMultiSelect --позволяет выбирать несколько файлов одновременно;
ofShareAware -- отключает проверку на возможность совместного доступа к выбранному файлу. В случае отстутствия этой опции файл нельзя выбрать, если он открыт другим приложением;
ofNoTestFileCreate -- эта опция применяется только для файлов на тех узлах локальной сети, которым разрешено создание, но не модификация файлов. Если она установлена, диалог не проверяет возможность записи на выбранном устройстве.
Наконец, одна опция -- ofExtensionDifTereiit -- является выходной. Она устанавливается после завершения диалога в том случае, если расширение у введенного имени файла отличается от того, которое определено по умолчанию (в свойстве DefaultExt).
Текст, появляющийся в заголовке диалога, определяется свойством:
(Pb) property Title: string;
Если оно не было задано, то в заголовках диалогов появится "Open" для TOpenDialog и "SaveAs" для TSaveDialog.
В случае успешного завершения диалога в свойстве
(Ro) property Files: TStrings;
содержатся имена выбранных пользователем файлов. Если выбран один файл, его имя можно получить как Files.Strings[0], но есть для этого и отдельное свойство:
(Pb) property FileName: TFileName;
Компонент TColorDialog
TObject->TPersistent-->
Модуль DIALOGS Страница Палитры компонентов Dialogs
Предназначен для определения цвета пользователем. Настройка диалога осуществляется через свойство:
(Pb) property Options: TColorDialogOptions;
TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp);
TColorDialogOptions = set of TColorDialogOption;
Данные опции определяют:
cdFullOpen -- полный показ диалога. В этом случае пользователь может выбрать не только один из цветов системной палитры, но и задать собственный;
cdPreventFullOpen -- запрещение полного показа диалога;
cdShowHelp -- показ кнопки Help.
В диалоге пользователь может определить несколько (до 16) собственных цветов, которые доступны в свойстве:
(РЙ property CustomColors: TStrings;
Каждый из этих цветов представлен в свойстве CustomColors строкой вида
ColorA = SOffaO
где ColorA -- условное название цвета (могут быть определены цвета с названиями от ColorA до ColorP), а справа от знака равенства стоит его шестнадцатиричное значение в формате RGB.
В случае нажатия кнопки ОК возвращаемое значение цвета содержится в свойстве:
(РЬ) property Color: TColor;
Компонент TFontDialog
TObject->TPersistent->
Модуль DIALOGS
Страница Палитры компонентов Dialogs
Позволяет выбрать один из установленных в системе шрифтов.
В множество выбора могут быть включены шрифты, поддерживаемые только
принтером, дисплеем или обоими устройствами, что определяется в свойстве:
(pb) property Device: TFontDialogDevice;
TFontDialogDevice = (fdScreen, fdPrinter, fdBoth);
Диапазон возможных значений размеров (кеглей) шрифтов может быть ограничен с использованием свойств:
(Pb) property MinPontSize: Integer;
(Pb) property MaxFontSize: Integer;
Ограничения действительны только при установленной опции fdLimitSizes (см. свойство Options). Если свойства установлены в 0, это означает, что соответствующее ограничение отстутствует.
Опции диалогового окна определяются свойством:
(Pb) property Options: TFontDialogOptions;
TFontDialogOption = (fdAnsiOnly, fdTrueTypeOnly, fdEffects, fdFixedPitchOnly, fdForceFontExist, fdNoFaceSel, fdNoOEMFonts, fdNoSimulations, fdNoSizeSel, fdNoStyleSel, fdNoVectorFonts, fdShowHelp, fdWysiwyg, fdLirnitSize, fdScalableOnly);
TFontDialogOptions = set. of TFontDialogOption;
В состав списка выбора могут быть включены только шрифты, обладающие определенным свойством. Для этой цели предусмотрены опции:
fdAnsiOnly -- включает только шрифты, содержащие стандартный набор символов Windows;
fdTrueTypeOnly -- включает только шрифты TrueType;
fdScalableOnly -- включает только масштабируемые шрифты;
fdFixedPitchOnly -- включает только моноширинные шрифты;
fdWysiwyg -- включает только шрифты, которые поддерживаются и дисплеем, и принтером;
fdNoOEMFonts, fdNoVectorFonts -- обе опции исключают из списка векторные шрифты;
fdNoSimulations -- исключает из списка те шрифты, которые моделируются графическим интерфейсом Windows;
В любом случае, выбрав шрифт, пользователь может установить его размер и стиль. Если задана опция fdEffects, в диалоге пользователь может определить дополнительные атрибуты: цвет шрифта и его подчеркивание (underline) и перечеркивание (strikeout).
Наличие опций fdNoFaceSel, fdNoSizeSel и fdNoStyleSel означает, что при инициализации диалога не будут заданы начальные значения шрифта, его размера и стиля соответственно.