Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 2_3_16.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
356.86 Кб
Скачать

10

4 ч. Тема 2.3.16

Тема 2.3.16: Дополнительные компоненты Delphi. План.

  1. Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель (самостоятельная работа).

  2. Форматы даты и времени (самостоятельная работа).

  3. Пример программы с использование таймера (самостоятельная работа).

Список используемой литературы:

  1. Митчелл К. Керман, Программирование и отладка в Delphi. Учебный курс. - М: Издательский дом “Вильямс”, 2002. Стр. 444-491.

  2. С. Бобровский, Delphi 7. Учебный курс. –М: Издательский дом “Питер”, 2003. Стр. 222-306.

1. Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель.

Пример 1, в котором используются флажки. Выполнение этого кода показано на рис. 1.

Рис. 1. Пример использования флажков

Компонент

Свойство

Значение

Форма

Кнопка

Область просмотра

Надпись

Флажок

Флажок

Флажок

Флажок

Name

Caption

Name

Caption

Name

Lines

Readonly

Name

Caption

Name

Caption

Name

Caption

Name

Caption

Name

Caption

frmCheckBox

Пример с флажками

btnEvaluate

Ответ

memOutput

пусто

True

lblQuestion

Какие кредитные карточки вы используете?

chkVisa

Visa

chkMaster

Mastercard

chkDiscover

Discover Card

chkAmEx

American Express

Имя компонента

Событие

Имя обработчика

btnEvaluate

OnClick

Evaluate()

unit CheckBoxEx; interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TfrmCheckBox = class(TForm)

btnEvaluate: Tbutton;

memOutput: Tmemo;

lblQuestion: Tlabel;

chkVisa: TcheckBox;

chkMaster: TcheckBox;

chkDiscover: TcheckBox;

chkAmex: TcheckBox;

procedure Evaluate(Sender: Tobject);

procedure TestCard(chkBox: Tobject; var used: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmCheckBox: TfrmCheckBox;

implementation

{$R *.DFM}

{ Имя процедуры: TestCard

Назначение: Проверка, установлен ли флажок кредитной карточки.

Если да, то вывести имя кредитной карточки в область просмотра. } procedure TfrmCheckBox.TestCard(chkBox: Tobject; var used: Boolean);

begin

with (chkBox as TcheckBox) do

if Checked then

begin

memOutput.Lines.Add(Caption);

used := True;

end;

end;

{Имя процедуры: Evaluate

Назначение: Определение того, какие флажки установлены. }

procedure TfrmCheckBox.Evaluate(Sender: Tobj ect);

var used: Boolean;

begin

used := False;

memOutput.Clear;

memOutput.Lines.Add('Вы используете следующие кредитные карточки:');

TestCard(chkVisa, used);

TestCard(chkMaster, used);

TestCard(chkDiscover, used);

TestCard(chkAmEx, used);

if not(used) then

memOutput.Lines.Add('Кредитных карточек у вас нет');

end;

end.

Пример 2, в котором используются переключатели. Выполнение кода показано на рис. 2.

Рис. 2. Пример с переключателями

Компонент

Свойство

Значение

Форма

Кнопка

Область просмотра

Надпись

Переключатель

Переключатель

Name

Caption

Name

Caption

Name

Lines

Readonly

Name

Caption

Name

Caption

Name

Caption

frmRadioButton

Пример с переключателями

btnEvaluate

Реакция на ответ

memOutput

пусто

True

lblQuestion

Вам нравится программировать в Delphi?

radYes

Да

raINo

Нет

Имя компонента

Событие

Имя обработчика

btnEvaluate

OnClick

Evaluate()

unit RadioButtonEx;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TfrmRadioButton = class(Tform)

lblQuestion: Tlabel;

radYes: TradioButton;

lineo: TradioButton;

btnEvaluate: Tbutton;

memOutput: Tmemo;

procedure Evaluate(Sender: Tobject);

private

{ Private declarations }

public

{ Public declarations }

end ;

var

frmRadioButton: TfrmRadioButton;

implementation

{$R *.DFM}

procedure TfrmRadioButton.Evaluate(Sender: Tobject);

var lineout: String;

begin

memOutput.Clear;

if radYes.Checked then

lineout := 'Я очень рад за вас!'

else

if lineo.Checked then

lineout := 'Почему? Ведь это так интересно!'

else

lineout := 'Да или нет?';

memOutput.Lines.Add(lineout);

end;

end.

Пример 3. Приведенный ниже код иллюстрирует использование полосы прокрутки. Выполне­ние этого кода показано на рис. 3. Выполняя пример, можно увидите, что диапазоны по­лос прокрутки установлены неудачно: рисунок «вылезает» за пределы предназначенной для него области. Исправьте эту ошибку.

Рис. 3. Выполнение примера с полосой прокрутки

Компонент

Свойство

Значение

Форма

Полоса прокрутки

Полоса прокрутки

Надпись

Name

Caption

Name

Kind

LargeChange

Name

Kind

LargeChange

Name

Caption

Font

Size

Left

Top

frmScrollBar

Пример полосы прокрутки

sbrXPosition

sbHorizontal

10

sbrYPosition

sbVertical

10

lblAeroplane

Q

Windings

18

0

0

Имя компонента

Событие

Имя обработчика

sbrXPosition

sbrYPosition

OnChange

OnChange

Xpos()

Ypos()

unit ScrollBarEx;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TfrmScrollBar = class(Tform)

sbrXPosition: TscrollBar;

sbrYPosition: TscrollBar;

lblAirplane: Tlabel;

procedure Ypos(Sender: Tobj ect);

procedure Xpos(Sender: Tobj ect);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmScrollBar: TfrmScrollBar;

implementation

{$R *.DFM}

procedure TfrmScrollBar.Ypos(Sender: Tobj ect);

begin

lblAirplane.Top := sbrYPosition.Position * 2;

end;

procedure TfrmScrollBar.Xpos(Sender: Tobject);

begin

lblAirplane.Left := sbrXPosition.Position * 2; end;

end.

Пример 4. В приведенном ниже модуле кода панель работает как специальная кнопка. Пример выполнения кода показан на рис. 4.

Рис. 4. Выполнение примера с панелью

Компонент

Свойство

Значение

Форма

Панель

Область просмотра

Name

Caption

Name

BevelWidth

Caption

Name

Lines

Readonly

trmPanel

pnlTest

Пример с панелью

10

Тестирование панели

memOutput

пусто

True

Имя компонента

Событие

Имя обработчика

pnlTest

OnClick

Test()

unit PanelEx;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TfrmPanel = class(Tform)

pnlTest: Tpanel;

memOutput: Tmemo;

procedure Test(Sender: Tobject);

procedure FormCreate(Sender: Tobject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmPanel: TfrmPanel;

implementation {$R *.DFM}

var number: Integer;

procedure TfrmPanel.Test(Sender: Tobj ect);

var lineout: String;

begin

number := number + 1;

memOutput.Clear;

lineout := ‘Вы щелкнули на панели ‘ + IntToStr(number) + ‘ раз’;

lineout := lineout + ‘.’;

memOutput.Lines.Add(1ineOut);

end;

procedure TfrmPanel.FormCreate(Sender: Tobject);

begin

number := 0;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]