Помощь - Поиск - Пользователи - Календарь
Полная версия: Светофор.Shape
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
NTL
Суть в след.: при наведении на один из 3-х Shape' ов и его цвет изменяется на более яркий. Вроде все правильно, но нужного рез-ата нет.Помогите плз...
Код
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Shape1.Brush.Color:=clMaroon;
Shape2.Brush.color:=clOlive;
Shape3.brush.Color:=clGreen;
with (Sender as TShape).Brush do
Case Color of
   clOlive: Color:=clYellow;
   clMaroon: Color:=clRed;
   clGreen: Color:=clLime;
end;

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Shape1.Brush.Color:=clMaroon;
Shape2.Brush.color:=clOlive;
Shape3.brush.Color:=clGreen;
end;
Артемий
А что не так? У меня все прекрасно работает!
Алена
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Shape1.Brush.Color := clRed;
end;
procedure TForm1.Shape2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Shape2.Brush.Color := clYellow;
end;
procedure TForm1.Shape3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Shape3.Brush.Color := clLime;
end;


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Shape1.Brush.Color:=clMaroon;
Shape2.Brush.color:=clOlive;
Shape3.brush.Color:=clGreen;
end;
NTL
Цитата(Артемий2 @ 20.03.2007 21:15) *

А что не так? У меня все прекрасно работает!

Как работает?Может прикрепишь свой вариант?
Алена, слишком много процедур norespect.gif

Добавлено через 1 мин.
Кстати, если что, то вот мой.Мб я там что-то накуролесил blink.gif
Нажмите для просмотра прикрепленного файла
Артемий
Ну у меня ТОЖЕ САМОЕ что у тебя, но все РАБОТАЕТ! Незнаю почему у тебя нет..
NTL
Мистика какая-то wacko.gif Что же делать. Мб в настройках надо ч-н изменить?
Алена
Цитата
слишком много процедур
Тебе шашечки, или ехать? (С)

А не работает у тебя - скорее всего потому, что ты не прописал метод Shape1MouseMove в ObjectInspector-е для оставшихся 2-х объектов... Так?
NTL
Ну здесь как раз и проверяется, какой шейп выбран для выполнении это процедуры,точнее какой цвет у него blink.gif
Код

procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
--------------------------------
with (Sender as TShape).Brush do
Case Color of
   clOlive: Color:=clYellow;
   clMaroon: Color:=clRed;
   clGreen: Color:=clLime;
end;


Добавлено через 1 мин.
Цитата(Алена @ 20.03.2007 22:00) *

Тебе шашечки, или ехать? (С)

Да, и причем тут холодильник, я же не курю blink.gif
Алена
Цитата
Ну здесь как раз и проверяется, какой шейп выбран для выполнении это процедуры
Угу... Только вот программа-то и не знает, что при прохождении мыши над вторым и третьим шейпом надо вызвать этот метод. Если его вызвать, он заработает...

Ты проверь, есть ли у тебя ссылка на метод в Инспекторе (выбираешь Shape2, ObjectInspector вкладка Events, и смотри, есть ли метод, который связан с OnMouseMove).
NTL
Ну не знаю. Вроде как не связанНажмите для просмотра прикрепленного файла

Добавлено через 2 мин.
Так что делать?
Алена
Ну, так а я о чем тебе уже 5 постов говорю? Свяжи ... Выбери процедуру Shape1MouseMove из списка...

Не забудь про третий шейп тоже...
NTL
Код
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape2.OnMouseMove:=Shape1.OnMouseMove;
Shape3.OnMouseMove:=Shape1.OnMouseMove
end;


Добавлено через 44 сек.
Другим способом нельзя связать?
Алена
Цитата
Другим способом нельзя связать?
Я больше ничего не буду отвечать.. Ты не читаешь, что-ли?

NTL
Бе бе бе blum.gif Сразу не могла скрин скинуть. Надо уметь правильно объяснять, ведь люди разные-то бывают yes2.gif Спасибо give_rose.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.