Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Jimhucksly
Статус: 5-й класс
Рейтинг: 664
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 584
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 461
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Номер выпуска:1431
Дата выхода:17.09.2009, 21:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:573 / 203
Вопросов / ответов:1 / 1

Вопрос № 172112: Добрый день уважаемые эксперты! Двненькл к вам не обращался Помогите пожалуйста в решении задания в Дельфи 7: Разместить на форме объекты Tshape в форме светофора, управление которым бу...



Вопрос № 172112:

Добрый день уважаемые эксперты! Двненькл к вам не обращался
Помогите пожалуйста в решении задания в Дельфи 7:
Разместить на форме объекты Tshape в форме светофора, управление которым будет осуществляться через RadioButton.
Создать второй светофор, управление которым будет осуществляться через RadioGroup.
Сделать работу обоих светофоров возможной как в ручном режиме, так и в автоматическом.
Создать имитацию дороги и движение автомобиля согласно правилам дорожного движения.
и по возможности с небольшим объяснением что к чему и для чего...

Заранее огромное спасибо!

Отправлен: 12.09.2009, 15:12
Вопрос задал: Андреев Дмитрий Фёдорович, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Евгений/Genia007/, Студент :
Здравствуйте, Андреев Дмитрий Фёдорович.
Предлагаю Вашему вниманию самую простую реализацию Вашей задачи. Код настолько простой, что не требует пояснений.
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Bevel8: TBevel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Shape5: TShape;
Shape6: TShape;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
CheckBox1: TC heckBox;
Timer1: TTimer;
Timer2: TTimer;
Timer3: TTimer;
Bevel9: TBevel;
Bevel10: TBevel;
Timer4: TTimer;
Timer5: TTimer;
Bevel11: TBevel;
Bevel12: TBevel;
CheckBox2: TCheckBox;
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
procedure Timer5Timer(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i, y: Byte;
implementation

{$R *.dfm}

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;

end.
Прикрепленный файл: загрузить »

-----
Помогли тебе, помоги и ты.

Ответ отправил: Евгений/Genia007/, Студент
Ответ отправлен: 13.09.2009, 12:06

Оценка ответа: 5

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 254128 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.8 от 28.08.2009

    В избранное