Плещев В.В. Высокоуровневые методы информатики и программирования - файл n1.docx

приобрести
Плещев В.В. Высокоуровневые методы информатики и программирования
скачать (6381.5 kb.)
Доступные файлы (1):
n1.docx6382kb.08.07.2012 21:25скачать

n1.docx

1   ...   10   11   12   13   14   15   16   17   ...   27

2.3. Основные компоненты

2.3.1. Вывод текста


Текст обычно используется для оформления документов, повышения их наглядности и в качестве заголовков объектов, которые не имеют свойств Caption.

2.3.1.1. Текстовая надпись (Label)


Компонент предназначения для размещения на форме различных надписей (меток), например, заголовков объектов, которые не имеют свойств Caption. Если у надписи имеется клавиша быстрого доступа (акселератор) (п.2.1.7.2), то, используя свойство FocusControl, можно указать на ассоциированный с ней объект, который становится в фокусе при нажатии клавиш Alt+<акселератор>.

Пример установки фокуса на Label1 при нажатии Alt+1

Label1.Caption:=’&1 Фамилия сотрудника’; Label1.FocusControl:=Edit1;

Используя событие OnClick для надписи, можно установить фокус на нужном объекте щелчком мышки на надписи.

Пример

Procedure TForm1.Label1Click(Sender: TObject);//обработ. щелчка по Label1

Begin If Edit1.CanFocus then Edit1.SetFocus;End;//установка фокуса на Edit1

Надписи можно установить и другими компонентами, например, Edit, указав свойство ReadOnly:=True и Text:=’<текст надписи>’.

2.3.1.2. Статическая текстовая надпись (StaticText)


Компонент (панель Additional) аналогичен Label1, но имеет Windowsокно и свойство “вдавленности” текста. BorderStyle=sbsSunken

2.3.1.3. Строка состояния (StatusBar)


Строка (панель Win32) служит для вывода пользователем текста подсказки или другой информации, например, о состоянии выполнения программы. Строка может быть разделена на несколько панелей. Каждая панель относится к классу TStatusPanels со свойствами:

Alignment  выравнивание текста в панели: taLeftJustify (влево), taRightJustify (вправо), taCenter (по центру).

Bevel  стиль рамки: pbNone (нет), pbLowered (вогнутая), pbRaised (выпуклая).

Style  содержание: psText (текст), psOwnerDraw (программное формирование).

Width  ширина панели в пикселях.

Доступ к свойствам панелей осуществляется через массив Items.

Специфичные свойства

Panels  описание панелей (StatusBar1.Panels.Items[0].Text:=’База’). Вызывается редактор панелей и окно свойств текущей панели.

SimplePanel,SimpleText  строка из одной панели (True) и ее текст.

SizeGrip  вставляется кнопка изменения размера панели (True).

Методы: Add (добавить), Insert (включить), Delete (удалить).

Пример создания строки статуса в заставке данного пункта

Procedure TForm1.FormCreate(Sender: TObject); //создание формы

Var i:Integer; p:TStatusPanel; //объект StatusBar1 уже размещен на форме

Begin With StatusBar1 Do For i:=0 To 1 Do Begin p:=Panels.Add; p.Text:='Панель '+IntToStr(i); p.Width:=Form1.Width div 2; End; End;

2.3.2. Ввод и редактирование данных


Общие специфичные свойства компонентов редактирования.

AutoSelect  выделение всего текста в момент получения фокуса (True).

CharCase  преобразование букв: ecNormal (нет), ecUpperCase (заглавные), ecLowerCase (строчные).

HideSelection  выделение текста сохраняется при потере фокуса (False).

MaxLength  максимальная длина текста (0  не ограничена).

Modified  при изменении текста значение свойства равно True.

OEMConvert  перекодировка из DOS в Windows и обратно (True).

PasswordChar  символ, заменяющий вводимые символы при отображении. Используется для ввода паролей (Edit1.Password:=’*’).

SelStart, SelLength, SelText  начало, длина и сама выделенная строка текста соответственно.
Общие специфичные методы

ClearSelection  удаление выделенного текста.

CopyToClipboard  выделенный текст копируется в буфер.

CutToClipboard  выделенный текст копируется в буфер и удаляется.

GetSelTextBuf(Buffer,BufSize)  копируются первые BufSize символов выделенной строки в Buffer.

PasteFromClipboard  замена выделенной строки (если строка не выделена, то позицию курсора) содержимым буфера.

SelectAll  выделяется весь текст.

SetSelTextBuf(Buffer)  замена выделенной строки (если строка не выделена, то позицию курсора) содержимым Buffer.

2.3.2.1. Одностроковый текст (Edit)


Компонент является однострочным редактором текста. Компонент не реагирует на клавиши Enter и Esc. Для проверки вводимых символов можно использовать процедуру обработки события OnKeyPress (п.2.1.8.3).

Пример выхода из Edit1 по клавише Enter в событии OnKeyPress. Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

If Key=#13 Then{переход к следующему в порядке обхода (п.2.2.1.2)}

Begin Key:=#0; Form1.SelectNext(Sender as TWinControl, True,True); End;

{или If Key=#13 Then Begin Key:=#0; Form1.ActiveControl:=Edit2; End;}

{или If Key=#13 Then Begin Key:=#0; Form1.Edit2.SetFocus; End;} End

Более удобным является переход по клавише Enter к следующему по порядку обхода объекту, используя метод SelectNext (п.2.2.1.2).

Пример процедуры обработки события формы (со свойством Key Preview=True) OnKeyPress для перехода по клавише Enter из любого объекта, что более удобно, чем отдельные процедуры для каждого объекта:

Procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

Begin If Key=#13 Then

Begin Key:=#0; Form1.SelectNext(Form1.ActiveControl as TWinControl,

True, True); Key:=#0; End;

End;

2.3.2.2. Одностроковый текст с маской (MaskEdit)


Компонент (панель Additional) имеет дополнительное свойство EditMask для установки шаблона (маски). Шаблон используется для контроля вводимой информации и представляет собой строку из специальных символов, состоящую из трех частей, разделенных символом “;”. Первая часть является собственно маской. Вторая часть  признак (цифра) принадлежности литерных символов к вводимой информации (“1”) или нет (“0”). Третья часть задает символ, представляющий в маске пробел (по умолчанию принимается символ подчеркивания).

В маске могут использоваться символы: ! (подавляются ведущие пробелы), > (перевод в строчные/заглавные буквы),<> (отмена преобразования букв),\ (следующий символ является литерным), L/l (должна/может буква), A/a (должна/может буква или цифра), C/c (должен/может любой символ), 0/9 (должна/может цифра), # (может цифра, знаки плюс и минус), : (разделитель часов, минут и секунд), / (разделитель дней, месяцев и лет в датах).

Примеры масок: !99/99/00;1;_ (дата), !000000 (номер телефона)

Щелкнув по кнопке с троеточием свойства EditMask, можно вызвать мастера масок.

2.3.2.3. Многостроковый текст (Memo)


Вводимый и редактируемый текст представляет собой набор строк или длинную строку.
Специфичные свойства

Lines  вводимый и редактируемый текст в виде массива строк.

ScrollBars  наличие полос прокрутки: ssNone (нет), ssHorizontal (горизонтальная), ssVertical (вертикальная), ssBoth (обе).

WantReturns  нажатие Enter вызывает переход на новую строку (True), иначе  для перехода нужно нажимать клавиши ^Enter.

WantTabs  нажатие клавиши Tab вызывает ее ввод в текст (True), иначе  для ввода символа табуляции нужно нажать клавиши ^Tab.

Text  содержимое компонента в виде одной строки с символами разделителями строк с кодами #13#10, вводимых клавишей Enter.

Остальные свойства и методы аналогичны свойствам и методам Edit.

Примеры:

Memo1.Lines[3]:=’Иванов’; //замена четвертой строки на текст ‘Иванов’

Memo1.Lines.Clear; //очистка всего содержимого

Memo2.Lines.Add(‘Сидоров’);//в конец добавляется строка “Сидоров”.

Memo1.Lines.LoadFromFile(‘c:\prim1.txt’);//загрузка файла в Memo1(п.2.1.9)

Memo2.Lines.SaveToFile(‘c:\prim2.txt’); //вывод Memo2 в файл (п.2.1.9)

2.3.2.4. Таблица строк (StringGrid)


Компонент (панель Additional) позволяет работать с текстовой информацией, представленной в виде двумерной таблицы.

Специфичные свойства

Cells  двумерный массив со значениями ячеек таблицы.

Col, Row  координаты ячейки в фокусе (отсчет с нуля).

ColCount, RowCount  число колонок и строк таблицы.

ColWidths,RowHeights  массивы со значениями ширины и высоты каждого столбца и колонки в пикселях соответственно.

DefaultColWidth, DefaultRowHeight  ширина столбца и высота строки.

DefaultDrawing  автоматическая прорисовка каждой ячейки (True).

FixedCols, FixedRows  число первых заголовочных колонок и строк.

FixedColor  цвет в фиксированных колонках и строках.

Options  режимы работы с таблицей, например: goEditing (редактирование ячеек), goRowSizing, goColSizing, goRowMoving, goColMoving (изменение размеров строк, колонок и их перемещение мышкой соответственно), goDrawFocusSelected (выделять текущую ячейку), goTab (выбор ячеек клавишей Tab), goRowSelect (выделять весь ряд), goAlwaysShowEdit (редактирование ячейки в фокусе при goEditing=True), goThumbTracking (разрешено обновление при прокрутке).

ScrollBar  наличие полос прокрутки.

Selection  выделение цветом прямоугольной области ячеек.

TopRow, LeftCol  установка верхней левой ячейки просматриваемой области на экране для автоматической прокрутки таблицы.

VisibleColCount  число видимых столбцов, без учета заголовочных.

События OnSelectCell, OnSetEditText возникают при выборе и после корректировки ячейки соответственно.

Методы: CellRest (определение экранной координаты ячейки), MouseToCell (определение координаты ячейки по точке на экране).

Пример выделения цветом ячеек в 1й и 2й строках и колонках: Procedure TForm1.BitBtn1Click(Sender: TObject); Var ARest:TGridRect;

Begin ARest.Left:=1;ARest.top:=1 ARest.Right:=2;ARest.Bottom:=2;//область

StringGrid1.Selection:=Arest; End;

2.3.2.5. Рисуемая таблица (DrawGrid)


Компонент (панель Additional) используется для создания и использования двумерной таблицы с прорисованными самим пользователем ячейками, в которых хранятся произвольные объекты. Большинство свойств аналогичны одноименным свойствам таблицы строк, но есть и другие, и нет свойств Cells и Objects.

Специфичные события

OnDrawCell  прорисовка очередной ячейки перед выводом ее на экран.

OnGetEditText, OnSetEditText  возникают перед и после редактирования содержимого ячейки соответственно.

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

Свойства таблицы: Align=alClient, ColCount=2, RowCount=1, FixedCols=0, FixedRow=0, Options.goEditing=True, ScrollBars=sbNone.

В разделе Var модуля формы Unit1 объявим переменную списка:

Spisokkartin:TstringList. Далее соcтавим процедуры вывода таблицы.

Procedure TForm1.FormCreate(Sender: TObject);//создание списка картин

Const FileNames:Array [0..1] of String=('athena.bmp','technlgy.bmp');//файлы

Var I:Integer; Begin //создание пустого списка (п.2.2.7)

Spisokkartin:=TStringList.Create; With Spisokkartin Do//присв.имени списка

For i:=0 To 1 Do Begin Add(FileNames[i]); //добавление имени файла

Objects[i]:=TBitMap.Create; //создание пустого BMPобъекта для картины

(Objects[i] as TBitMap).LoadFromFile(FileNames[i]); //загрузка картины

End;{конец цикла создания списка картин}End; //конец процедуры

Procedure TForm1.Formdestroy(Sender:Tobject);//удаление списка картин

Begin Spisokkartin.Free; End; //списки удаляются при удалении формы

Procedure TForm1.DrawGrid1GetEditText(Sender:TObject;ACol,ARow: Integer;var Value:String);//начало редактирования текста ячейки табл.

Begin Value:=Spisokkartin[2*ACol+Arow]{передача текста редактору}End;

Procedure TForm1.DrawGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;const Value:String);//конец редактирования текста ячейки табл.

Begin Spisokkartin[2*ACol+Arow]:=Value;{сохранить отредакт.текст}End;

Procedure TForm1.DrawGrid1DrawCell(Sender: TObject; Col, Row: Integer;

Rect: TRect;State:TGridDrawState); прорисовка и вывод ячейки таблицы

Var I:integer;Begin i:=2*row+col;//формирование индекса списка.

With DrawGrid1.Canvas, Rect, Spisokkartin do Begin //присоединение имен

Bottom:=BottomTextHeight('с')2; //уменьшение высоты картинки

StretchDraw(Rect,(Objects[i] as TBitmap));//вывод картинки из списка

TextOut(Left,Bottom+1,Strings[i]){вывод имени файла из списка}End; End;

Procedure TForm1.FormResize(Sender: TObject);//меняется размер окна

Begin With DrawGrid1 do //присоединение имени таблицы

Begin DefaultColWidth:=ClientRect.Right Div 2 1;//новая высота ячейки

DefaultRowHeight:=ClientRect.Bottom;{новая ширина ячейки}End; End;

2.3.2.6. Многострочный редактор текста в формате RTF (RichEdit)


Редактор работает с расширенным текстовым форматом RTF. Для каждого абзаца создается объект класса TParaAttributes с атрибутами абзаца.

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

Alignment  выравнивание: taLeftJustify (влево), taCenter (по центру), taRightJustify (вправо).

FirstIndent, LeftIndent, RightIndent  отступ в пикселях первой строки, между левой и правой границами и границами панели редактора.

Numbering=nsBullet  превращение текста в маркированный список.

Специфичные свойства

Lines  вводимый и редактируемый текст в виде массива строк.

HideScrollBars  вставляются полосы прокрутки при отсечении текста.

PageRect  размеры страницы при печати.

Paragraph  содержит атрибуты шрифта текущего абзаца (п.2.2.8.1).

SelAttributes  шрифтовые атрибуты выделенного абзаца.

PlainText  запрещает (True) ввод и вывод в файл служебной информации формата RTF.

Специфичные методы

GetCaretPos  возвращает текущую позицию курсора.

GetSelText  копирует выделенный текст в переменную.

Примеры:

RichEdit1.Paragraph.Numbering:=nsBullet; //преобразование в список

RichEdit1.Paragraph.Numbering:=nsCenter; //центровка абзаца

RichEdit1.SelAttributes.Name:=’New Times Cyr’//установка шрифта

RichEdit1.PlainText:=False;//разрешить копирование служебной информ.

RichEdit1.Lines.SaveToFile(‘Text.Rtf’); //копирование текста в файл

2.3.2.7. Дата и время (DateTimePicker)


Компонент представляет собой раскрывающийся список  календарь, для ввода даты или времени.

Специфичные методы

CalAlignment  положение календаря: dtaLeft (слева), dta Right (справа).

DateFormat  представление даты: dfShort (короткий), dfLong (длинный).

DateMode  способ работы: dmComboBox (раскрывающийся список), dmUpDown (счетчик изменения даты).

Date, Time  значение введенной даты или времени.

Kind  что вводится: dtkDate (дата), dtkTime (время).

ShowCheckbox  вывод флажка состояния его свойства Checked (True).

MinDate, MaxDate  минимально и максимально допустимые даты.
1   ...   10   11   12   13   14   15   16   17   ...   27


2.3. Основные компоненты
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации