![]() |
|
|
|
|
#1
|
|||
|
|||
|
Здраствуйте!!
Люди подскажите пожалуйсто как зделать чтоб при наведении курсора мыши на форму она становилась светлее а когда курсор не на форме форма почти прозрачная была AlphaBlendValue:=100; это в начале присовено при активации формы почти прозрачно а при наведении как зделать что было допустим AlphaBlendValue:=200; или есть какой способ? заранее спасибо! |
|
#2
|
||||
|
||||
|
Есть такие методы у формы MouseEnter и MouseLeave, когда мышь залазит на компонент и когда мышь покидает этот компонент соответственно. Но эти методы у формы я видел только в Delphi2009, в Delphi 7 такие методы есть только у Label. Ну или возможно ещё где-то есть есть, но у формы их нет точно. Можешь кинуть на форму Label свойству Align присвоить значение alClient. И использовать методы MouseEnter и MouseLeave получится примерно т очто ты хочешь, но там правда есть ошибки. Не всегда получается вовремя отследить то что мышь покинула форму и увеличение прозрачности не будет, но всё же такой вот выход есть.
|
|
#3
|
|||
|
|||
|
События OnMouseEnter, OnMouseLeave для формы можно и в 6-7 дельфях использовать, следующим образом:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.CMMouseEnter(var Message: TMessage);
begin
AlphaBlend:=false;
end;
procedure TForm1.CMMouseLeave(var Message: TMessage);
begin
AlphaBlend:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AlphaBlendValue:=100;
end;
end.Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
AlphaBlendValue:=100;
Timer1.Interval:=100;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with Mouse.CursorPos do
AlphaBlend:=not ((X>Left) and (Y>Top) and (X<Left+Width) and
(Y<Top+Height) and Active);
end;
end. |
|
#4
|
|||
|
|||
|
Цитата:
Спасобо огромное!! |