Delphi. Учимся на примерах | страница 51
Рис. 13.3. Отображение результата теста
Единственное, что осталось сделать, — реализовать имитацию нажатия кнопки при щелчке на панели мышью. Для того чтобы "оживить" панель, для нее следует создать обработчики двух событий: OnMouseDown и OnMouseUp. Первое событие возникает при щелчке мышью, а второе — при отпускании кнопки мыши. Для панели pi эти обработчики будут выглядеть следующим образом:
>procedure TForm1.p1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
>begin
> p1.BevelInner:= bvLowered;
> p1.BevelOuter:= bvRaised;
>end;
>procedure TForm1.p1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
>begin
> p1.BevelInner:=bvRaised;
> p1.BevelOuter:=bvLowered;
>end;
Для всех остальных панелей обработчики этих событий будут выглядеть аналогичным образом за исключением того, что имя p1 потребуется изменить на имя р2, p3, р4 или р5.
Программа тестирования в действии показана на рис. 13.4.
Рис. 13.4. Программа тестирования в действии
Полный исходный код модуля
Полный код модуля программы-теста представлен в листинге 13.1.
>unit Unit1;
>interface
>uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IniFiles, jpeg, Menus;
>type TForm1 = class(TForm)
> Memo1: TMemo;
> RadioGroup1: TRadioGroup;
> p1: TPanel;
> p2: TPanel;
> p3: TPanel;
> p4: TPanel;
> p5: TPanel;
> an1: TRadioButton;
> an2: TRadioButton;
> an3: TRadioButton;
> an4: TRadioButton;
> Label1: TLabel;
> Label2: TLabel;
> MainMenu1: TMainMenu;
> N1: TMenuItem;
> N2: TMenuItem;
> N3: TMenuItem;
> N4: TMenuItem;
> Open1: TOpenDialog;
> procedure FormCreate(Sender: TObject);
> procedure p1Click(Sender: TObject);
> procedure p2Click(Sender: TObject);
> procedure p3Click(Sender: TObject);
> procedure p4Click(Sender: TObject);
> procedure p5Click(Sender: TObject);
> procedure Image1Click(Sender: TObject);
> procedure p1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
> procedure p1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
> procedure p2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
> procedure p2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
> procedure p3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
> procedure p3MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);