Показать сообщение отдельно
  #3  
Старый 07.03.2013, 08:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Linbo
Я не могу реализовать третий пункт...

1. Пользуемся тегами. Это я тебе как модератор говорю.
2. Не совсем понял задачу.
Т.е. пусть пользователь навел мышку на метку1. Она стала светло-красной.
а) Если он увел мышку не щелкнув по метке, что должно произойти?

Теперь пользователь щелкнул на метке1. Она стала темно-красной. При уводе мышки она такой и остается.

Теперь пользователь наводит мыша на метку2. Она становится светло-красной.
б) Что должно произойти с меткой1 в этот момент?

Ну и последнее. Пользователь шелкает по метке2.
в) Что должно произойти с меткой1?

Ну и на закуску.
г) Может ли быть раскрашено одновременно больше 1 (2) меток?

Как только ты ответишь на эти вопросы, то сразу поймешь как это реализовать. В принципе, ничто не мешает тебе сохранить указатель на выделенную (щелкнутую) метку и при шелчке по другой метке просто поменять цвет у этой сохраненной метки.
Код:
type
  TForm1 = class(TForm)
    Label1 : TLabel;
    ...
  private
    ClickedLabel : TLabel;
  end;

procedure TForm1.FormCreate(Sender : TObject);
begin
  ClickedLabel := Nil;
end;

procedure TForm1.LabelClick(Sender : TObject);
begin
  If Assigned(ClickedLabel) Then ClickedLabel.Color := clBtnFace;
  ClickedLabel := Sender As TLabel;
  ClickedLabel.Color := clRed;
end;
Ответить с цитированием