Уроки по Delphi




Урок21. Программа психологических тестов - часть 6


ReadLn(f,Str_F); // читаем количество баллов за этот ответ

Button1.Tag:=StrToInt(Str_F); // присваиваем пользовательскому свойству Tag балл за этот ответ компоненту Button1

// ЧИТАЕМ ВТОРОЙ ОТВЕТ

ReadLn(f,Str_F);

Label3.Caption:=Str_F;

ReadLn(f,Str_F);

Button2.Tag:=StrToInt(Str_F);

// ЧИТАЕМ ТРЕТИЙ ОТВЕТ

ReadLn(f,Str_F);

Label4.Caption:=Str_F;

ReadLn(f,Str_F);

Button3.Tag:=StrToInt(Str_F);

// ЧИТАЕМ ЧЕТВЕРТЫЙ ОТВЕТ

ReadLn(f,Str_F);

Label5.Caption:=Str_F;

ReadLn(f,Str_F);

Button4.Tag:=StrToInt(Str_F);

end;

Возможно, вы еще не встречались со свойством Tag для компонентов. Это, можно сказать, пользовательское свойство. Оно имеет тип Integer, и ни на что конкретно в программе не влияет. Программист может его использовать в собственных целях, что иногда уменьшает количество объявляемых переменных в программе. Еще бывает удобно, когда компонент имеет в свойстве Tag какое-нибудь служебное число, как в нашем случае.

Создадим обработчик события для кнопок OnClick. Для всех кнопок это будет одна процедура и создается она стандартным способом, выбрав в инспекторе объектов компонент Button1, перейдя на страницу Events и щелкнув по полю OnClick, или можно дважды щелкнуть по самой кнопке Button1. Вот текст процедуры:

procedure TForm1.Button1Click(Sender: TObject);

Var i: Integer; // временная числовая переменная для выявления балла за отвеченный вопрос

s1: String; // временная переменная первого результата теста

p11,p12: Integer; // цифровой промежуток первого результата теста (минимальное число и максимальное)

s2: String;

p21,p22: Integer;

s3: String;

p31,p32: Integer;

s4: String;

p41,p42: Integer;

begin

i:=0; // сброс переменной

if Sender=Button1 then i:=Button1.Tag; // если была нажата кнопка Button1, то в i занести значение кол-ва баллов за этот ответ

if Sender=Button2 then i:=Button2.Tag;

if Sender=Button3 then i:=Button3.Tag;

if Sender=Button4 then i:=Button4.Tag;

QUser:=QUser+i; // увеличение общего количества баллов

if QCurrent=QCount then //если количество вопросов исчерпано, то




Содержание  Назад  Вперед