Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Светофор.Shape

Автор: NTL 21.03.2007 0:42

Суть в след.: при наведении на один из 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;

Автор: Артемий2 21.03.2007 1:15

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

Автор: Алена 21.03.2007 1:25

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 21.03.2007 1:47

Цитата(Артемий2 @ 20.03.2007 21:15) *

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

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

Добавлено через 1 мин.
Кстати, если что, то вот мой.Мб я там что-то накуролесил blink.gif
Прикрепленный файл  13.rar ( 3 килобайт ) Кол-во скачиваний: 256

Автор: Артемий2 21.03.2007 1:52

Ну у меня ТОЖЕ САМОЕ что у тебя, но все РАБОТАЕТ! Незнаю почему у тебя нет..

Автор: NTL 21.03.2007 1:55

Мистика какая-то wacko.gif Что же делать. Мб в настройках надо ч-н изменить?

Автор: Алена 21.03.2007 2:00

Цитата
слишком много процедур
Тебе шашечки, или ехать? (С)

А не работает у тебя - скорее всего потому, что ты не прописал метод Shape1MouseMove в ObjectInspector-е для оставшихся 2-х объектов... Так?

Автор: NTL 21.03.2007 2:06

Ну здесь как раз и проверяется, какой шейп выбран для выполнении это процедуры,точнее какой цвет у него 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

Автор: Алена 21.03.2007 2:12

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

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

Автор: NTL 21.03.2007 2:32

Ну не знаю. Вроде как не связанПрикрепленное изображение

Добавлено через 2 мин.
Так что делать?

Автор: Алена 21.03.2007 2:35

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

Не забудь про третий шейп тоже...

Автор: NTL 21.03.2007 2:39

Код
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape2.OnMouseMove:=Shape1.OnMouseMove;
Shape3.OnMouseMove:=Shape1.OnMouseMove
end;


Добавлено через 44 сек.
Другим способом нельзя связать?

Автор: Алена 21.03.2007 2:54

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




Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: NTL 21.03.2007 3:04

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