Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

public

{ public declarations } end;

type

TStudent = class(THuman) private

group: string; public

constructor Create(gr: string); function GetData: string; function Status: string; override;

end;

type

TProfessor = class(THuman) private

kafedra: string; public

constructor Create(kaf: string); function GetData: string; function Status: string; override;

end; var

Form1: TForm1; Student: TStudent; Professor: TProfessor; fname: string;

496

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

implementation

function TStudent.Status: string; begin

Result:= ' – студент'; end;

constructor TStudent.Create(gr: string); begin

inherited Create('Андрей', 'Аршавин'); group:= gr;

end;

function TStudent.GetData: string; begin

Result:= inherited GetData + ', группа ' + group; end;

constructor TProfessor.Create(kaf: string); begin

inherited Create('Алексей', 'Попов'); kafedra:= kaf;

end;

function TProfessor.Status: string; begin

Result:= ' - преподаватель'; end;

function TProfessor.GetData: string; begin

497

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Result:= inherited GetData + ', кафедра ' + kafedra; end;

{ TForm1 }

procedure TForm1.FormShow(Sender: TObject); begin

Student:= TStudent.Create('"Арсенал"'); fname:= Student.GetData; Label1.Caption:= 'Это: ' + fname;

Professor:= TProfessor.Create('"Телеканал Россия 2"'); fname:= Professor.GetData;

Label2.Caption:= 'Это: ' + fname; Student.name:= 'Виталий'; Student.fam:= 'Петров'; Student.group:= '"ПОВТАС-1/09"'; fname:= Student.GetData; Label3.Caption:= 'Это: ' + fname; Professor.name:= 'Иван'; Professor.fam:= 'Иванов';

Professor.kafedra:= '"Программирование"'; fname:= Professor.GetData; Label4.Caption:= 'Это: ' + fname; Student.Free;

Professor.Free;

end; initialization

{$I unit1.lrs}

498

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

end.

unit Unit2;

{$mode objfpc}{$H+} interface

uses

Classes, SysUtils; type

{ THuman }

THuman = class private

Fname: string;

Ffam: string;

procedure Setname(const AValue: string); procedure Setfam(const AValue: string);

public

property name: string read Fname write Setname; property fam: string read Ffam write Setfam; constructor Create(n, f: string);

function GetData: string;

function Status: string; virtual; abstract; end;

implementation { THuman }

constructor THuman.Create(n, f: string); begin

Fname:= n;

499

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Ffam:= f; end;

procedure THuman.Setname(const AValue: string); begin

if Fname=AValue then exit; Fname:=AValue;

end;

procedure THuman.Setfam(const AValue: string); begin

if Ffam=AValue then exit; Ffam:=AValue;

end;

function THuman.GetData: string; begin

Result:= name + ' ' + fam + Status; end;

end.

Мы видим, что практически никакой разницы нет, за исключением того,

что реализации методов классов следует помещать в раздел implementation

модуля.

6.3.5.2. Кнопки TButton, TBitBtn и TSpeedButton

Кнопка является элементом управления, предназначенным для запуска ка-

ких-то действий или команд. Щелчок по кнопке мышью вызывает событие

OnClick в обработчике которого программист и инициирует выполнение ка-

500

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2714
2N4264RE