안녕하세여 꾸벅~~~ 왕처버여여~~~ ^^
마우스커서가 스피드버튼 위에 있을때랑 없을때 스피드버튼의 이미지를 Enable & Disable을 넣어야 하는데 어떻게 해야 할쥐 모르갔떠여~~
제가 한 방법은 오브젝트 인터페이스에 있는 버튼콤포넌트의 Properties에다가 Disable을 그래픽에다가 넣어주구 Enable 은 이벤트의 마우스 뮤부에다가 넣었습니다. 그랬더니 바뀌기는 바뀌는데 마우스가 컴포넌트 밖을 떠나면 Enable의 그림이 있떠여 마우스가 떠나묜 Disable로 바뀌어야 하는데 그래서 제가 생각한것이 if문으로 마우스 커서가 스피드버튼에 있을때 Disable로 없을때는 Enable로 하는 것을 생각했는데 스피드버튼에는 포커스가 없떠군여 어떻게 하쩌 꼭 답변 부탁드립니다.
다시 답변한다..
어차피 하는 방법은 똑같잖어..
참고해라..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons;
type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
DisabledImage, EnabledImage: TBitMap;
procedure WndProc(var Message: TMessage); override;
public
{ Public declarations }
procedure ChangeSet(Sender: TObject; Msg: Integer);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.ChangeSet(Sender: TObject; Msg: Integer);
begin
// 마우스가 Label위에 있을때
if Sender is TSpeedButton then begin
if (Msg = CM_MOUSELEAVE) then
(Sender as TSpeedButton).Glyph.Assign(DisabledImage);
//(Sender as TSpeedButton).Enabled := false; // 마우스가 떠날때
if (Msg = CM_MOUSEENTER) then
(Sender as TSpeedButton).Glyph.Assign(EnabledImage);
//(Sender as TSpeedButton).Enabled := true; // 마우스가 들어올때
end;
end;
procedure TForm1.WndProc(var Message: TMessage);
begin
// 콤포넌트에 마우스가 있으면(over) 폰트의 색상을 바꾼다
if Message.LParam = Longint(SpeedButton1) then
ChangeSet(SpeedButton1,Message.Msg);
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnabledImage := TBitmap.Create;
DisabledImage := TBitmap.Create;
EnabledImage.LoadFromFile('c:login_on.BMP');
DisabledImage.LoadFromFile('c:login_off.BMP');
SpeedButton1.Glyph.Assign(EnabledImage);
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
EnabledImage.Free;
DisabledImage.Free;
CanClose := true;
end;
end.
왕초보 wrote:
> 안녕하세여 꾸벅~~~ 왕처버여여~~~ ^^
>
>
> 마우스커서가 스피드버튼 위에 있을때랑 없을때 스피드버튼의 이미지를 Enable & Disable을 넣어야 하는데 어떻게 해야 할쥐 모르갔떠여~~
>
> 제가 한 방법은 오브젝트 인터페이스에 있는 버튼콤포넌트의 Properties에다가 Disable을 그래픽에다가 넣어주구 Enable 은 이벤트의 마우스 뮤부에다가 넣었습니다. 그랬더니 바뀌기는 바뀌는데 마우스가 컴포넌트 밖을 떠나면 Enable의 그림이 있떠여 마우스가 떠나묜 Disable로 바뀌어야 하는데 그래서 제가 생각한것이 if문으로 마우스 커서가 스피드버튼에 있을때 Disable로 없을때는 Enable로 하는 것을 생각했는데 스피드버튼에는 포커스가 없떠군여 어떻게 하쩌 꼭 답변 부탁드립니다.
>