bannerbannerbanner
полная версияПрограммирование на Delphi 7

Сергей Николаевич Талипов
Программирование на Delphi 7

{!} Если у панели выключить видимость (Panel1.vsible:=false), то все компоненты, расположенные на ней, также станут невидимыми. При включении видимости (Panel1.vsible:=true) они вновь появятся на экране.


Если Вам нужна дополнительная информация по какому-либо компоненту, то выберите его на Палитре Компонент и нажмите клавишу F1 – появится Справочник с полным описанием всех свойств, событий и методов данного объекта.

ЛЕКЦИЯ № 6

1. ОСНОВНЫЕ КОМПОНЕНТЫ СТРАНИЦЫ «ADDITIONAL» (дополнительные)

Страница «Additional» служит основным дополнением к странице «Standard». В данной вкладке размещены компоненты, позволяющие создавать более красивый пользовательский интерфейс программы, а также некоторые системные компоненты.

Список компонент:

TBitBtn – кнопка, подобная TButton, но на ней можно разместить, помимо надписи, еще и картинку (glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и др), при выборе которых кнопка принимает соответствующий вид и надпись.

Kind – выбор предопределенного рисунка и надписи на кнопке («No», «Ok», «Help» и др.)

Glyph – выбор собственной картинки для кнопки

LayOut – выбор типа взаимного расположения рисунка и текста на кнопке (рисунок слева – текст справа, рисунок сверху – текст снизу и др.)

TSpeedButton – так называемая «кнопка быстрого доступа». Компонент TSpeedButton может иметь и надпись, и рисунок, а также режим «втопленности» и прозрачности «flat», при котором кнопка становится видимой только в момент наведения на нее указателя мыши.

GroupIndex – задание условного номера (целого числа) для объединения компонент TSpeedButton в единую функциональную группу. Если свойство равно нулю, то кнопка считается независимой и не входящей в какую-либо группу

Down – если “True”, то кнопка оказывается визуально нажатой, т.е. «втопленной». Данный режим работает, если кнопка входит в какую-либо функциональную группу (определяемую свойством «GroupIndex»)

Flat – включает (если «True») «эффект дружеского приветствия» кнопки

Glyph – выбор собственной картинки для кнопки

Transparent – включает (если «True») «прозрачность» фона кнопки

TMaskEdit - аналог TEdit, но с возможностью форматированного ввода. Формат определяется в свойстве EditMask. В редакторе свойств для EditMask есть заготовки некоторых форматов: даты, валюты и т.п. Спец. символы для маски можно посмотреть в Helpe.

EditMask – значение шаблона (маски) для ввода данных (например, “!999;1;_” – для ввода целого числа из одного до трех цифр, “!#999.99;1;0” – для ввода вещественного числа типа «-123.45»)

EditText – значение введенных данных, приведенных к заданному шаблону (маске)

IsMasked – если “True”, до маска была заданна (свойство только для чтения)

{!!!} При вводе данных в компонент у него возникает событие «OnChange»

TStringGrid - служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cells. Данный компонент является визуальным аналогом многомерного массива в языке Pascal

ColCount – количество колонок в таблице (отсчет с 1)

RowCount – количество строк в таблице (отсчет с 1)

FixedRows – количество титульных (зафиксированных ) верхних строк в таблице (отсчет с 1)

FixedCols – количество титульных (зафиксированных ) левых столбцов в таблице (отсчет с 1)

LeftCol – номер первого отображаемого столбца таблицы, не считая фиксированных (отсчет с 1)

TopRow – номер первой отображаемой строки таблицы, не считая фиксированных (отсчет с 1)

Col – номер столбца, на котором находится фокус ввода (где редактировали данные или щелкнули мышкой)

Row – номер строки, на которой находится фокус ввода (где редактировали данные или щелкнули мышкой)

Cells [столбец , строка] – обращение к ячейки таблицы с заданным столбцом и строкой. Значение ячеек таблицы – всегда текстовые (типа «string»)

Options / goEditing – если «True», то в таблицу можно вводить и редактировать данные, иначе только просмотр значений

k:=0;

For i:=0 to StringGrid1.ColCount-1 do

   For j:=0 to StringGrid1.RowCount-1 do begin

     k:=k+strtoint(StringGrid1.Cells[i,j]); StringGrid1.Cells[i,j]:=’Ok!’;

   End;

TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

Picture – задает имя файла с рисунком

AutoSize – автоматическое изменение размера компонента под размер рисунка

Stretch – если “True”, то рисунок масштабируется к размерам компонента

Transparent – включает (если «True») «прозрачность» фона рисунка

Center – расположение рисунка по центру компонента (актуально для случая, когда рисунок меньше размера компонента)

TShape - служит для отображения простейших графических объектов на форме: окружность, квадрат и т.п.

Shape – тип фигуры

Pen – установка типа линии фигуры (цвета, формы, ширины и др.)

Brush – установка типа закраски фигуры (цвета, вида штриховки и др.)

TBevel – элемент для рельефного оформления интерфейса, создания вертикальных и горизонтальных линий

Shape – тип фигуры (четырехугольник, вертикальная линия, горизонтальная и др.)

Style – установка стиля рельефа (выгнутый, вогнутый)

TStaticText – позволяет создавать надпись, подобно компоненту Tlabel, но с красивым эффектом «втопленности». Данный компонент обычно применяется для отображения статического однострочного текста.

BorderStyle – определяет вид рамки у компонента

Caption – текст в компоненте

TCheckListBox – компонент, аналогичный TRadioGroup, используемый для объединения компонент TCheckBox в единую функциональную группу. Основные свойства компонента следующие:

Items [..] – в данном свойстве задается текст перечня элементов типа «TradioButton»

Checked [номер_строки_списка]– данное свойство показывает, установлена ли галочка у данного элемента списка или нет. Отсчет ведется с верха и нуля

Sorted – если равно “True”, то строки списка сортируются по алфавиту

Columns – задает количество столбцов в списке (по умолчанию один столбец)

with checklistbox1 do begin

for i:=0 to items.colcount-1 do

    if Checked[i]=true then showmessage(Items[i]);

end;

2. КОМПОНЕНТЫ СТРАНИЦЫ «DIALOGS»

На странице Dialogs представлены компоненты для вызова стандартных диалогов Windows. Объекты, представленные на данной странице, невидимы во время выполнения программы, вызов диалогов происходит только программно, например: if OpenDialog1 .Execute then Image1 .Picture.LoadFromFile(OpenDialog1 .FileName);

Диалоги Windows в порядке появления на странице Dialogs: OpenDialog - выбрать (открыть) файл; SaveDialog -сохранить файл; OpenPictureDialog - выбрать графический файл (с предварительным просмотром); SavePictureDialog - сохранить графический файл; FontDialog - настроить (установить) шрифт; ColorDialog -выбор цвета; PrintDialog –диалог печати данных; PrinterSetupDialog - настройка принтера; FindDialog - поиск строки текста; ReplaceDialog - поиск строки текстас заменой.

Рис. 1. Вкладка «Диалоги» Палитры Компонент

3. Пример вызова диалога приведен ниже.

procedure TForm1.Button1Click(Sender: TObject);

var F: Textfile;

begin

  OpenDialog1.Title := 'Удаление файла';

   if OpenDialog1.Execute then begin

        if FileExists(OpenDialog1.FileName) then

            if MessageDlg('Вы хотите удалить файл ' + ExtractFileName(OpenDialog1.FileName) + ' ?'),

              mtConfirmation, [mbYes, mbNo], 0) = mrYes then DeleteFile (OpenDialog1.FileName);

   end;

end;

4. Основные свойства диалогов:

InitialDir- начальная директория просмотра при открытии диалога

Title – заголовок диалога, например: ‘Delete File'

FileName – имя выбранного файла с полным маршрутом к нему, например: 'c:\lib\f1.dat'

DefaultExt – расширение по умолчанию, если не указано расширение, например: 'txt'

Filter – фильтры отображения файлов, например: ‘Text files (*.txt) | *.txt | All files (*.*) | *.*’

FilterIndex – номер фильтра отображения по умолчанию (отсчет с 1)

5. Основной метод всех диалогов, «EXECUTE», вызывает диалог на экран и возвращает «TRUE», если файл был выбран, или «FALSE» – если нет (выбрали кнопку «Отмена» или нажали «ESC»).

procedure TForm1.Button1Click(Sender: TObject);

var F: TextFile; S: string;

begin

  OpenDialog1.Title := 'Распечатка файла';

  if OpenDialog1.Execute then begin

 

    AssignFile(F, OpenDialog1.FileName);

    Reset(F); Readln(F, S); Edit1.Text := S;

    CloseFile(F);

  end;

end;

6. Пример использования диалога выбора шрифта:

if FontDialog1.Execute then Form1.Font := FontDialog1.Font;

7. Пример использования диалога выбора цвета:

if ColorDialog1.Execute then Form1.Font.Color := ColorDialog1.Color;

8. Пример использования диалога печати:

uses …, printers;

procedure TForm1.Button1Click (Sender: TObject);

begin

  showmessage(‘Печать формы на принтере’);

   if PrintDialog.Execute1 then begin

      with Printer do begin

          BeginDoc;

          form1.PaintTo(printer.Handle,0,0); NewPage;

         EndDoc;

      end;

    end;

end;

9. Пример использования диалога поиска текста в компоненте «RichEdit»:

Для кнопки запуска поиска нужно написать следующий обработчик:

procedure TForm1.Button1Click(Sender: TObject);

begin

  FindDialog1.Position:=Point(RichEdit1.Left + RichEdit1.Width div 2, RichEdit1.Top);

  FindDialog1.Execute;

end;

Для метода «OnFind» компонента «FindDialog» нужно написать следующий обработчик:

procedure TForm1.FindDialog1Find(Sender: TObject);

var k: LongInt;

begin

    k := Richedit1.FindText(FindDialog1.FindText, 0, Length(Text), [stMatchCase]);

    if k<>-1 then begin

      Richedit1.SetFocus; Richedit1.SelStart:=k; Richedit1.SelLength:=Length(FindDialog1.FindText);

  end;

end;

10. Пример печати текстовой информации из мемо-поля на принтере:

procedure TForm1.Button1Click(Sender: TObject);

var f: system.TextFile; i: longint;

begin

  assignPrn(f); Rewrite(f);

  writeln(f,’Print this text’);

  printer.canvas.font:=memo1.font;

  for i:=0 to memo1.lines.count-1 do

    Writeln(f, memo1.lines[i]);

  System.CloseFile(f);

end;

Рейтинг@Mail.ru