Вопрос № 172112: Добрый день уважаемые эксперты! Двненькл к вам не обращался Помогите пожалуйста в решении задания в Дельфи 7: Разместить на форме объекты Tshape в форме светофора, управление которым бу...
Вопрос № 172112:
Добрый день уважаемые эксперты! Двненькл к вам не обращался Помогите пожалуйста в решении задания в Дельфи 7: Разместить на форме объекты Tshape в форме светофора, управление которым будет осуществляться через RadioButton. Создать второй светофор, управление которым будет осуществляться через RadioGroup. Сделать работу обоих светофоров возможной как в ручном режиме, так и в автоматическом. Создать имитацию дороги и движение автомобиля
согласно правилам дорожного движения. и по возможности с небольшим объяснением что к чему и для чего...
Отвечает Евгений/Genia007/, Студент :
Здравствуйте, Андреев Дмитрий Фёдорович. Предлагаю Вашему вниманию самую простую реализацию Вашей задачи. Код настолько простой, что не требует пояснений.
procedure TForm1.RadioGroup1Click(Sender: TObject); begin CheckBox2.Enabled:= True; Case RadioGroup1
.ItemIndex of 0: begin Shape1.Brush.Color:= clRed; Shape2.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clGreen; Shape5.Brush.Color:= clWhite; Shape6.Brush.Color:= clWhite; If CheckBox2.Checked then Timer4.Enabled:= True; end; 1: begin Shape2.Brush.Color:= clYellow; Shape1.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite;
Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clYellow; Shape6.Brush.Color:= clWhite; end; 2: begin Shape3.Brush.Color:= clGreen; Shape2.Brush.Color:= clWhite; Shape1.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clWhite; Shape6.Brush.Color:= clRed; If CheckBox2.Checked then Timer5.Enabled:=
True; end; end; end;
procedure TForm1.RadioGroup2Click(Sender: TObject); begin CheckBox2.Enabled:= True; Case RadioGroup2.ItemIndex of 0: begin Shape6.Brush.Color:= clRed; Shape2.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape3.Brush.Color:= clGreen; Shape5.Brush.Color:= clWhite; Shape1.Brush.Color:= clWhite; If CheckBox2.Checked then Timer5.Enabled:= True;
end; 1: begin Shape2.Brush.Color:= clYellow; Shape1.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clYellow; Shape6.Brush.Color:= clWhite; end; 2: begin Shape4.Brush.Color:= clGreen; Shape2.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape5.Brush.Color:=
clWhite; Shape1.Brush.Color:= clRed; If CheckBox2.Checked then Timer4.Enabled:= True; end;
end; end;
procedure TForm1.CheckBox1Click(Sender: TObject); begin i:= 1; Shape1.Brush.Color:= clRed; Shape2.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clGreen; Shape5.Brush.Color:= clWhite; Shape6.Brush.Color:= clWhite; If CheckBox1.Checked then begin Timer1.Enabled:= True; CheckBox2.Enabled:= False; CheckBox2.Checked:= False; end else begin Timer1.Enabled:=
False; CheckBox2.Enabled:= True; end; Timer4.Enabled:= True; Timer5.Enabled:= True; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Case i of 0: begin Shape1.Brush.Color:= clRed; Shape2.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clGreen; Shape5.Brush.Color:= clWhite; Shape6.Brush.Color:= clWhite; Tim
er4.Enabled:= True; end; 1: begin Timer1.Enabled:= False; y:= 0; Timer3.Enabled:= True; end; 2: begin Shape3.Brush.Color:= clGreen; Shape2.Brush.Color:= clWhite; Shape1.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clWhite; Shape6.Brush.Color:= clRed; Timer5.Enabled:= True; end; 3: begin Timer1.Enabled:=
False; y:= 0; Timer2.Enabled:= True; end; end; inc(i); If i = 4 then i:= 0; end;
procedure TForm1.Timer2Timer(Sender: TObject); begin If Shape3.Brush.Color= clGreen then Shape3.Brush.Color:= clWhite else Shape3.Brush.Color:= clGreen; inc(y); If y = 9 then begin Timer2.Enabled:= False; Shape2.Brush.Color:= clYellow; Shape1.Brush.Color
:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clYellow; Shape6.Brush.Color:= clWhite; Timer1.Enabled:= True; end; end;
procedure TForm1.Timer3Timer(Sender: TObject); begin If Shape4.Brush.Color= clGreen then Shape4.Brush.Color:= clWhite else Shape4.Brush.Color:= clGreen; inc(y); If y = 9 then begin Timer3.Enabled:= False; Shape2.Brush.Color:=
clYellow; Shape1.Brush.Color:= clWhite; Shape3.Brush.Color:= clWhite; Shape4.Brush.Color:= clWhite; Shape5.Brush.Color:= clYellow; Shape6.Brush.Color:= clWhite; Timer1.Enabled:= True; end; end;
procedure TForm1.Timer4Timer(Sender: TObject); begin if Bevel9.Top = - 50 then begin Bevel9.Top:= 384; Bevel11.Top:= 399; end; Bevel9.Top:= Bevel9.Top - 1; Be
vel11.Top:= Bevel11.Top - 1; If ((Shape5.Brush.Color = clYellow) OR (Shape6.Brush.Color = clRed) OR (Timer3.Enabled)) AND (Bevel9.Top = 216) then Timer4.Enabled:= False; end;
procedure TForm1.Timer5Timer(Sender: TObject); begin if Bevel10.Left = - 50 then begin Bevel10.Left:= 464; Bevel12.Left:= 479; end; Bevel10.Left:= Bevel10.Left - 1; Bevel12.Left:= Bevel12.Left - 1; If ((Shape2.Brush.Color = clYellow) OR (Shape1.Brush.Color = clRed)
OR(Timer2.Enabled)) AND (Bevel10.Left = 312) then Timer5.Enabled:= False; end;
procedure TForm1.CheckBox2Click(Sender: TObject); begin If CheckBox2.Checked then begin Timer4.Enabled:= True; Timer5.Enabled:= True; end else begin Timer4.Enabled:= False; Timer5.Enabled:= False; end; end;
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.