2 Сем (Справочная информация2014)

Посмотреть архив целиком

Справочная информация

1. Модули пользователей

Модуль пользователя – это отдельная программная единица.

Назначение.

Для создания личных библиотек или программ большого размера (размер программы ограничен 64 Кбайт).

Структура модуля

unit <имя модуля>;


Interface //Раздел описаний

Uses <Список подключаемых модулей>;

Const <Список констант>;

Type <Описание типов>

Var <Объявление переменных>;

<Заголовки процедур>

<Заголовки функций>

{имена объектов этого раздела доступны в основной программе и других модулях, к которым подключен данный модуль}

Implementation //Раздел реализации

Uses <Список подключаемых модулей>;

Const <Список констант, используемых в данном модуле>;

Type <Описание типов, используемых в данном модуле>;

Var <Объявление переменных, используемых в данном модуле>

<Описание процедур и функций, заголовки которых указаны в разделе interface>

<Описание процедур и функций, которые предназначены для использования только в данном модуле>

Initialization //Раздел инициализации, необязательный

<Операторы>

{Операторы, выполняемые один раз при первом обращении к модулю. Например, задание начальных значений переменных, открытие файлов}

Finalization //Раздел завершения, необязательный

<Операторы>

{Операторы, выполняемые при любом завершении работы модуля. Например, закрытие файлов, удаление временных файлов, освобождение памяти}

end.


Любой раздел модуля может быть пустым, но ключевые слова Interface и Implementation должны присутствовать. Раздел Finalization может быть, если есть раздел Initialization.

Создание модуля.

Выполняются действия с помощью меню Turbo Delphi: FILENEWUNIT

. При этом в окне проекта в разделе uses появится запись

Unit1 in 'Unit1.pas';

При сохранении проекта стандартное имя модуля Unit1 может быть заменено любым другим именем.

2. Функции преобразования и поиска

function AnsiUpperCase(const S: string):string

преобразует символы строки S к верхнему регистру; применима к русским текстам.

function LowerUpperCase(const S:string): string

преобразует символы строки S к нижнему регистру; применима к русским текстам.

function FloatToStr(V: Extended): string

преобразует действительное число V в строку.

function FloatToStrF(V,f,k,m): string

преобразует действительное число V в строку с форматной записью.

f-формат, определяет способ изображения числа:

ffGeneral – универсальный, ffExponent – научный, ffFixed – с фиксированной точкой;

k – общее число цифр числа;

m – число цифр в дробной части числа.

function IntToStr(K: Integer): string

преобразует целое число K в строку.

function StrToFloat(const S: string): Extended

преобразует строку S в действительное число.

function StrToInt(const S: string): Integer

преобразует строку S в целое число.

function Pos( SubStr: string; S: string): Integer

возвращает позицию (индекс) первого вхождения подстроки SubStr в строку S.

Если SubStr нет в S, возвращается 0.


function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; Обеспечивает поиск файлов, соответствующих шаблону и атрибутам

Параметр Path определяет путь доступа к каталогу и маску искомых файлов. Функция вернёт значение 0, если в этом каталоге найдётся хотя бы один файл, соответствующий маске (например, задание первого параметра равным ‘D:\temp\*.txt’ ,будет задавать поиск текстовых файлов в каталоге D:\txt). Параметр Attr задаёт атрибуты искомых файлов: скрытый, системный, каталог и др. При поиске файлов с любой комбинацией атрибутов этот параметр должен иметь значение $3f. Выходной параметр F является записью типа TsearchRec, полями которой, в частности, являются поле с именем Name, представляющее строку с именем и типом найденного файла, поле с именем Size, представляющее размер файла в байтах.

Значение параметра F нельзя менять. Он потребуется при вызове процедуры FindNext (см. ниже), продолжающей поиск файлов.

function FindNext(var F: TSearchRec): Integer;

Функция вернёт значение 0, если в каталоге найдётся хотя бы ещё один файл, соответствующий маске. При этом будет представлять характеристики этого найденного файла.

procedure FindClose(var F: TSearchRec);

Процедура завершает поиск файлов.


3. Функции организации диалога

function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;

Функция отображает окно, в котором пользователю задается какой-то вопрос и анализируется полученный ответ, зависящий от нажатой кнопки.

Соответствующими фактическими параметрами должны быть

  • Msg – строка, выводимая в окно сообщения,

  • DlgType – вид окна сообщения. В каждом окне отображаются стандартный текст,

а ниже соответствующая пиктограмма определяющее текст заголовка окна и рисунок значка на окне (например, Confirm и ).

Возможные значения и текст на соответствующей пиктограмме:

  • mtWarningокно предупреждений, заголовок Warning и черный восклицательный знак на желтом фоне;

  • mtError – окно ошибок, заголовок Error и красный круг с белым крестом;

  • mtInformation – информационное окно, заголовок Information и буква i на белом фоне;

  • mtConfirmation – окно подтверждения, заголовок Confirm и знак вопроса на белом фоне;

  • mtCustom – заказное окно, пиктограмма отсутствует, а в качестве заголовка используется имя файла приложения. Например, Project 1

  • Buttons –множество значений, определяющее какие кнопки будет содержать информационное окно. Значения параметра выбираются из множества типа TMsgDlgBtn = [mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp]. Значения можно задавать по отдельности или сразу несколько, заключенными в квадратные скобки. Среди множества значений определены три константы, соответствующие часто используемым сочетаниям: mbYesNoCancel, mbOKCancel, mbAbortRetryIgnore. Эти константы являются предопределенными множествами и при исползовании их не надо заключать в квадратные скобки.

  • HelpCtx – номер страницы справочной системы (целое число), созданной пользователем и вызываемой при нажатии клавиши <F1>. При отсутствии такой страницы значение параметра задается равным 0 (нет справки).

  • Функция возвращает число, соответствующее нажатой кнопке (каждому значению

базового типа соответствует предопределенная именованная константа) вида:

mrYes, mrNo, mrOK, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll, mrNoToAll, mrYesToAll, mrHelp


  • Примеры записи.

1. Диалог при окончании работы приложения

If MessageDlg('Закончить работу с приложением?', mtConfirmation,

[mbYes, mbNo],0) = mrYes then

Begin

MessageDlg(‘Работа приложения закончена’; mtInformation, [mbOK],0);

Close;

End;

Первый вызов MessageDlg приводит к отображению окна типа mtConfirmation с вопросом о завершении приложения. При нажатии пользователем кнопки Yes выводится второе окно типа mtConfirmation с сообщением о завершении.


2. Возникла ситуация, когда решение должен принять пользователь

case MessageDlg('Продолжить работу?', mtConfirmation, [mbYes, mbNo],0) of

mrYes:; // продолжить выполнение процедуры

mrNo: exit; //выход из процедуры

end;


3. Необходимо принять решение при закрытии файла

//Если текст новый или был изменен, то открывается окно диалога 'Сохранить данные?'[mbYes, mbNo, mbCancel]

if Memo1.Modified then begin

d:=MessageDlg('Сохранить данные?', mtConfirmation,[mbYes, mbNo, mbCancel], 0);

case d of

mrYes: begin //да, сохранить!

if s<>'' then // сохранить в том же, редактируемом файле

Memo1.Lines.SaveToFile(S)

else // сохранить в файле, который следует выбрать в диалоге SaveAs...

N#Click(Self);//вызов обработчика сохранить как

//считать, что текст не модифицирован

Memo1.Modified:=false;

End;

mrCancel://не сохранять и вернуться к редактированию

exit;

mrNo:;//не сохранять

end;//case

end;//if


function ShowMessage(const Msg: string): string;

Отображает простое окно сообщения Msg и кнопкой ОК.

  • Пример записи.

ShowMessage('Список пуст')

function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean;

Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода, соответствующей параметру Value, и кнопками OK и Cancel. При щелчке на кнопке OK функция вернёт значение true и текст из поля в параметре Value. При щелчке на кнопке Cancel функция вернёт значение false и пустую строку в параметре Value.

  • Пример записи.

Диалог при задании номера группы

Group := 'ИУ2-21':

Group :=InputQuery ('Введите номер группы', 'Например', '');

function InputBox(const ACaption, APrompt, ADefault: string): string;

Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода, в которой изначально будет отображен текст, заданный параметром ADefault, и кнопками OK и Cancel. При щелчке на кнопке OK функция возвращает значение текста из поля ввода, а при щелчке на кнопке Cancel функция вернёт значение параметра ADefault даже если пользователь изменил текст в поле ввода.

  • Пример записи.

Диалог при задании имени файла

S:= InputBox ('Ввод имени файла', 'Введите имя файла', '');

4. Базовые компоненты

TOpenDialog (вкладка Dialogs)

Назначение - диалоговое окно для выбора имени открываемого файла.

Основные свойства

FileName:TfileName - строка, представляющая спецификацию (имя) выбранного файла.
InitialDir: String – задает текущий каталог при открытии диалога.
Filter: String S – задает список масок, в соответствии с которыми выбираются имена файлов для отображения в диалоговом окне.

Например, оператор

OpenDialog1.Filter := '*.pas, *.txt| *.PAS, *.TXT'| все файлы|*.*'; позволит выбирать отображение либо только файлов типа .pas и .txt, либо всех файлов текущего каталога.
Options: TOpenOptions

- Описывает вид окна и возможности выбора файлов в диалоге. Задаётся конструктором множества с базовым перечисляемым типом TopenOption [1].

Метод

function Execute: Boolean; override;

Отображает окно диалога выбора файла. При закрытии окна вернёт true, если файл выбран (выделен и нажата кнопка Открыть), иначе – false (нажата кнопка Отмена).

TSaveDialog (вкладка Dialogs)

Назначение - диалоговое окно выбора имени файла для сохранения.

Наследует от TOpenDialog свойства и методы.


Пример записи

1.Выбор имени файла S и запись в редактор Memo

If Form1.OpenDialog1.Execute //диалог активен

then begin

S:= OpenDialog1.FileName;

Memo1.lines.LoadFromFile(S); // загрузка файла в редактор

end

else MessageDlg('Файл не найден');


2. Выбор имени файла S и запись из редактора Memo в файл

If Form1.SaveDialog1.Execute //диалог активен

then begin

S:= SaveDialog1.FileName;

Memo1.lines.SaveToFile(S); // сохранить текст редактора в файле

end


TMemo (вкладка Standard)

Назначение - компонент для обработки многострочных текстов.

Основные свойства

Name - имя компонента. Используется для доступа к свойствам компонента

Text - текст поля Memo представляется одной строкой с разделителями возврат каретки и перевод строки.

Lines - массив (список) строк текста поля Memo.

String[Index:Integer] - осуществляет доступ к строке. Hумерация строки начинается с нуля.

Например, Memo1.Lines[0]- текст первой строки.

Width - ширина поля.

Height - высота поля.

Modified - индикатор изменения текста. Тrue – текст изменен, False – нет.

ScrollBars - задаёт отображение полосы прокрутки: ssHorisontal – только горизонтальная, ssVertical – только вертикальная, ssBoth - горизонтальная и вертикальная, ssNone - нет полос прокрутки.

Методы

procedure Clear; virtual; - удаление текста компонента
procedure SelectAllвыделение всего текста компонента

Примеры использования компонента Memo

Memo1.Clear; - очистка окна редактора (очистка содержимого Memo)

Memo1.Text:=''; - очистка содержимого Memo

Memo1.Align:=alClient; - развернуть поле Memo во всю клиентскую область окна формы

Memo1.Font.Name:= 'Courier'; - выбор равноширинного шрифта

Memo1.Modified:=false; - текст не модифицирован (не изменен)

Memo1.Lines.LoadFromFile('Имя файла'); - загрузить в Memo текст из файла

Memo1.Lines.SaveToFile('Имя файла'); - записать текст Memo в файл

Memo1.Lines.Add('Текст добавляемой строки');

Memo1.SelectAll; - выделение всего текста

Memo1.SelText:= 'текст'; - выделение фрагмента текста

Memo1.CopyToClipBoard; - копирует выделенный текст в буфер обмена

Memo1.CutToClipBoard; - вырезает выделенный текст в буфер обмена

Memo1.PasteFrom ClipBoard; - вставляет текст из буфера обмена в место положения курсора

TStringGrid (вкладка Additional)

Назначение - компонент для обработки таблиц текстов.

Основные свойства

EditorMode

Cells[ACol, ARow:Integer]:string – ячейка таблицы,

где ACol - номер столбца таблицы,

ARow - номер строки (номерация строк и столбцов начинается с нуля - 0, 1, 2, …). Верхнюю строку таблицы используют для заголовка.

Options:TGridOptions– множество значений, задающих различные режимы работы таблицы. Например,

- [goFixedVertLine] - обеспечивает отображение вертикальных линий, разделяющих столбцы таблицы,

- [goEditing] - разрешает редактирование данных в ячейке,

- [goTabs] – разрешает (true) или запрещает(false) при TabStop -, использовать клавишу Tab (Shift+Tab) для перехода к следующей (предыдущей) ячейке таблицы.

Cols[Index: Integer]:Tstringsданные всех ячеек колонки с индексом Index.

Rows[Index: Integer]:TStrings –данные всех ячеек строки с индексом Index.

ColCount:Longint –количество колонок таблицы.

RowCount:Longint –количество строк таблицы.

Col:Longint –номер колонки ячейки, имеющей фокус ввода.

Row:Longint –номер строки ячейки, имеющей фокус ввода.

EditorMode:Boolean – при значении true разрешено редактировать данные таблицы.

FixedCols:Integer –количество левых колонок таблицы, включенных в фиксированную зону (ячейки этой колонки обычно содержат заголовки строк).

Fixed Rows:Integer –количество верхних строчек таблицы, включенных в фиксированную зону (ячейки этой колонки обычно содержат заголовки столбцов).

FixedColor:Tcolor –цвет фиксированной зоны.

ScrollBars:TscrollStyle–полосы прокрутки таблицы (см. 3).

TabStop:Boolean– при значении true можно использовать клавишу Tab (Shift+Tab) для перехода к следующей (предыдущей) ячейке таблицы, если в свойство Options добавлено значение goTabs.

ColWidths[Index: Longint]: Integer– ширина колонки таблицы.

RowHeights [Index:Longint]: Integer – высота строки таблицы.

События

OnSetEditText: TSetEditEvent

TSetEditEvent = procedure (Sender:TObject; ACol, ARow:Longint; var Value: string) of object

– возникает при редактировании (любом изменении) текста в ячейке таблицы (ACol – номер столбца, ARow – номер строки, счет номеров 0, 1, 2,…; Value – текст в ячейке после изменения).

TComboBox (вкладка Standard)

Назначение - компонент для создания и работы со списками.

Представляет собой комбинацию поля редактирования и списка

Основные свойства

Name - имя компонента. Используется для доступа к свойствам компонента.

Textтекст, находящийся в поле ввода-редактирования, элемент списка

Styleрежимы работы, предоставляющие возможности обработки списка:

- csDropDownполе ввода и редактирования (можно вводить список и выбирать из него),

- csDropDownListтолько раскрывающийся список,

- csSimplтолько поле редактирования.

Itemsэлемент списка – массив строк

Countчисло элементов списка

ItemIndexномер элемента в списке. Нумерация начинается с нуля. Если элемент списка не выбран, то ItemIndex=-1.

DropDownCountчисло элементов, отображаемых в окне списка. Если число элементов больше DropDownCount, то появляется вертикальная полоса прокрутки.

Методы

- .Clearочистка поля списка

- .Add(‘добавляемая строка‘)

Например,

ComboBox.Items.Add(‘sin(x)’)

TTimer (вкладка System)

Назначение -невизуальный компонент обеспечивает генерацию последовательности событий. Применяют для запуска процедур и функций и событий через определенные интервалы времени.

Основные свойства

Name – имя компонента. Используется для доступа к компоненту.

Interval – период генерации события Timer. Задается в миллисекундах.

Например, Timer1. Interval:=20;

Enabled- разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события Timer.

Например, Timer1. Enabled:= True;

TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth)

именованные константы этого типа представляют возможные варианты использования полос прокрутки в компонентах типа TMemo, TstringGrid и других: ssNone - нет полос прокрутки, ssHorizontal – есть только горизонтальная полоса прокрутки, ssVertical – есть только вертикальная полоса прокрутки, ssBoth есть горизонтальная и вертикальная полосы прокрутки.






Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.