在一个image控件里已经放了一张图片,如果想在点击(image1click)后能在图片边框上显示一个亮框,应该怎么做?另外的方法也可以,只要是能让图片被点击后有一个明显的效果就行了,当然图片的大小内容都不能变,最好是像WINDOWS图标一样选中的效果!各位大大帮帮小弟好吗?
解决方案 »
- 多线程如何得到返回值
- Win7安装Delphi2006
- 请教回调函数,关于封装TCPCLIENT控件……
- 如何查看打印机的队列是否快满了!
- ??????菜鸟再问:为什么dbgrid显示不出查询结果????
- dll的调用问题!
- 考考你对Object Pascal的面对对象知识。
- 百分求助一个关于任务栏图标的问题。
- 十万火急,系统升级为win98 se后中文软件出现部分乱码?如解决了这个问题,我愿再出80分
- 有没有MP3-》vox(语音格式)的控件或MP3-》rm(语音格式)的控件?
- 高手救命!!!纳闷中...
- 中英操作系统时间格式转换问题!DateTime, SystemTime, FileTime等
Shape1.Visible := False;
单击Image的时候:
Shape1.Left := Image1.Left;
Shape1.Top := Image1.Top;
Shape1.Height := Image1.Height;
Shape1.Width := Image1.Width;
Shape1.Visible := True;
多个Image的话,可以共用一个Click事件,代码形式如下:
Shape1.Left := TImage(Sender).Left;
Shape1.Top := TImage(Sender).Top;
Shape1.Height := TImage(Sender).Height;
Shape1.Width := TImage(Sender).Width;
Shape1.BringToFront; //确保Shape显示在Image上面
Shape1.Visible := True;
自己要多想才会进步啊
给个思路:准备2张图,一张为没有选中时的,一张为选中时的
同意 偶就是这么做的
invertrect(Image1.Canvas.Handle,ClientRect);
unit ImageButton;
interface
uses Classes, ExtCtrls, Graphics, Controls;
type
TImgBtn = class(TImage)
private
FPicture_Up: TPicture;
FPicture_Down : TPicture;
private
procedure SetPicture_Up(Value: TPicture);
procedure SetPicture_Down(Value: TPicture);
protected
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Picture_Up : TPicture read FPicture_Up write SetPicture_Up;
property Picture_Down: TPicture read FPicture_Down write SetPicture_Down;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Additional', [TImgBtn]);
end;{ TImgBtn }constructor TImgBtn.Create(AOwner: TComponent);
begin
inherited;
AutoSize:= True;
FPicture_Up:= TPicture.Create;
FPicture_Down:= TPicture.Create;
end;destructor TImgBtn.Destroy;
begin
FPicture_Up.Free;
FPicture_Down.Free;
inherited destroy;
end;procedure TImgBtn.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Picture:= (FPicture_Down);
inherited;
end;procedure TImgBtn.MouseUp( Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Picture:= (FPicture_Up);
inherited;
end;procedure TImgBtn.SetPicture_Down(Value: TPicture);
begin
FPicture_Down.Assign(Value);
end;procedure TImgBtn.SetPicture_Up(Value: TPicture);
begin
FPicture_Up.Assign(Value);
Picture:= (FPicture_Up);
end;end.