Здравствуйте! Я новичок в программировании, учусь писать программы на Дэлфи. Подскажите как можно сократить код моей программы?
Код:
unit Form_test;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
ScrollBox1: TScrollBox;
Image1: TImage;
RadioGroup1: TRadioGroup;
Image2: TImage;
RadioGroup2: TRadioGroup;
Image3: TImage;
RadioGroup3: TRadioGroup;
Image4: TImage;
RadioGroup4: TRadioGroup;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
Image5: TImage;
RadioGroup5: TRadioGroup;
Button4: TButton;
Panel1: TPanel;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ball:integer;
type answers=array[1..5,0..2] of byte;
const otv:answers=((0,1,0),(0,0,1),(0,1,0),(0,0,1),(0,1,0));
implementation
{$R *.dfm}
procedure TForm1.ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
with ScrollBox1.VertScrollBar do
Position := Position - WheelDelta div 4;
Handled := True;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (RadioGroup1.ItemIndex=-1) or (RadioGroup2.ItemIndex=-1) or (RadioGroup3.ItemIndex=-1) or (RadioGroup4.ItemIndex=-1) or (RadioGroup5.ItemIndex=-1)
then
begin
showmessage('Ответьте на все вопросы!');
end
else
Panel1.Visible:=false;
ball:=otv[1,radiogroup1.ItemIndex]+
otv[2,radiogroup2.ItemIndex]+
otv[3,radiogroup3.ItemIndex]+
otv[4,radiogroup4.ItemIndex]+
otv[5,radiogroup5.ItemIndex];
label1.Caption:='Правильно ответил(а) на '+IntToStr(ball)+' из 5-ти вопросов.';
if ball=5 then
label2.Caption:='Молодец! Ты отлично разбираешь в этой сфере!'
else
if (ball=3) or (ball=4)
then
label2.Caption:='Неплохо! Ты достаточно опытный пользователь компьютера!'
else
if (ball=2) or (ball=1)
then
label2.Caption:='Новичок! У тебя все еще впереди и есть к чему стремиться!'
else
label2.Caption:='Чайник! Ты ответил неправильно на все вопросы, попробуй еще раз!';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Image1.Picture.Graphic:= nil;
Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/word.jpg');
Image1.Hint:='Microsoft Word';
RadioGroup1.Caption:='1) Microsoft Word это...';
RadioGroup1.Items.Clear;
RadioGroup1.Items.Add('Графический редактор');
RadioGroup1.Items.Add('Текстовый редактор');
RadioGroup1.Items.Add('Видео редактор');
Image2.Picture.Graphic:= nil;
Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/5browser.jpg');
Image2.Hint:='Самые популярные браузеры';
RadioGroup2.Caption:='2) Что такое "браузер"?';
RadioGroup2.Items.Clear;
RadioGroup2.Items.Add('Антивирусная программа');
RadioGroup2.Items.Add('Сервер в Интернете');
RadioGroup2.Items.Add('Средство просмотра веб-страниц');
Image3.Picture.Graphic:= nil;
Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/computer.jpg');
Image3.Hint:='Персональный компьютер';
RadioGroup3.Caption:='3) От чего зависит производительность ПК?';
RadioGroup3.Items.Clear;
RadioGroup3.Items.Add('От размера экрана');
RadioGroup3.Items.Add('От частоты процессора');
RadioGroup3.Items.Add('От скорости нажатия клавиш');
Image4.Picture.Graphic:= nil;
Image4.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/Internett.jpg');
RadioGroup4.Caption:='4) Какой тип подключения Internet работает быстрее?';
RadioGroup4.Items.Clear;
RadioGroup4.Items.Add('Беспроводной (Wi-fi)');
RadioGroup4.Items.Add('По телефонному каналу через модем');
RadioGroup4.Items.Add('Подключение по оптоволоконному каналу');
Image4.Hint:='Интернет';
Image5.Picture.Graphic:= nil;
Image5.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/virus.jpg');
Image5.Hint:='Компьютерный вирус';
RadioGroup5.Caption:='5) Как может произойти заражение ПК вирусом?';
RadioGroup5.Items.Clear;
RadioGroup5.Items.Add('При перезагрузке компьютера');
RadioGroup5.Items.Add('При скачивании музыки из интернета');
RadioGroup5.Items.Add('При печати на принтере');
Panel1.Visible:=true;
RadioGroup1.ItemIndex:=-1;
RadioGroup2.ItemIndex:=-1;
RadioGroup3.ItemIndex:=-1;
RadioGroup4.ItemIndex:=-1;
RadioGroup5.ItemIndex:=-1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/egipet.jpg');
Image1.Hint:='Египетские пирамиды';
RadioGroup1.Caption:='1) Где расположен Древний Египет:?';
RadioGroup1.Items.Clear;
RadioGroup1.Items.Add('Восток Африки');
RadioGroup1.Items.Add('Север Африки');
RadioGroup1.Items.Add('Юго-запад Африки');
Image2.Picture.Graphic:= nil;
Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/marafon_b.jpg');
Image2.Hint:='Марафонская битва';
RadioGroup2.Caption:='2) Марафонская битва состоялась в:';
RadioGroup2.Items.Clear;
RadioGroup2.Items.Add('650 году до нашей эры');
RadioGroup2.Items.Add('900 году до нашей эры');
RadioGroup2.Items.Add('490 году до нашей эры');
Image3.Picture.Graphic:= nil;
Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/Makedonskiy.jpg');
Image3.Hint:='Александр Македонский';
RadioGroup3.Caption:='3) Кто из греческих ученых был воспитателем А. Македонского?';
RadioGroup3.Items.Clear;
RadioGroup3.Items.Add('Анаксагор');
RadioGroup3.Items.Add('Аристотель');
RadioGroup3.Items.Add('Геродот');
Image4.Picture.Graphic:= nil;
Image4.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/Rim.jpg');
Image4.Hint:='Древний Рим';
RadioGroup4.Caption:='4) Согласно легенде Рим был основан в:';
RadioGroup4.Items.Clear;
RadioGroup4.Items.Add('525 году до нашей эры');
RadioGroup4.Items.Add('776 году до нашей эры');
RadioGroup4.Items.Add('753 году до нашей эры');
Image5.Picture.Graphic:= nil;
Image5.Picture.LoadFromFile(ExtractFilePath(Application.Exename) + 'images/Spartak.jpeg');
Image5.Hint:='Гладиатор Спартак';
RadioGroup5.Caption:='5) Спартак был родом из:';
RadioGroup5.Items.Clear;
RadioGroup5.Items.Add('Дакии');
RadioGroup5.Items.Add('Фракии');
RadioGroup5.Items.Add('Галлии');
end;
end.