Показать сообщение отдельно
  #1  
Старый 07.03.2013, 07:44
Linbo Linbo вне форума
Прохожий
 
Регистрация: 07.03.2013
Сообщения: 3
Репутация: 10
По умолчанию Подсветка Label

Здравствуйте форумчане, нужна ваша помощь в реализации подсветки компонента Label.
1)При наведени мыши на Label цвет(свойство Color) компонента Label должен подсвечиваться светлокрасным цветом(это реализовать я смог).
2)При нажати на Label(событие OnClick) цвет(свойство Color) компонента Label должен изменятся на темнокрасный цвет(это реализовать я смог).
3)Но при покидании зоны компонента Label(событие OnMouseLeave) цвет первого нажатого Label не должен изменятся на светлокрасный цвет, до тех пор пока пользователь не нажмет на следующий Label. В программе 8 Label'ов. Выклдаываю код и проект того, что у меня получилось.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    scrlbx1: TScrollBox;
    img1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure nored(ds:boolean);
    procedure Label1MouseLeave(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
(sender as TLabel).Transparent:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Color:=RGB(226,192,189);
Label2.Color:=RGB(226,192,189);
Label3.Color:=RGB(226,192,189);
Label4.Color:=RGB(226,192,189);
Label5.Color:=RGB(226,192,189);
Label6.Color:=RGB(226,192,189);
Label7.Color:=RGB(226,192,189);
Label8.Color:=RGB(226,192,189);
end;

procedure TForm1.nored(ds:boolean);
var
i: integer;
begin
if ds then
for i:=1 to 8 do
with self.FindComponent('Label'+inttostr(i))as tlabel do
begin
Transparent:=True;
Font.Color:=clBlack;
Color:=RGB(226,192,189);
end
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
nored(true);
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
(sender as TLabel).Color :=RGB(205,34,25);
(sender as TLabel).Font.Color :=clWhite;
end;

end.
Пожалуйста помогите разобратся, приветствуется любая помощь. Заранее спасибо!
Вложения
Тип файла: rar Пример 2.rar (219.9 Кбайт, 2 просмотров)
Ответить с цитированием