![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте форумчане, нужна ваша помощь в реализации подсветки компонента 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. Последний раз редактировалось lmikle, 07.03.2013 в 08:36. |