试着写一个最简单的控件,我想要那种像是picture控件中点击加载图片弹出来一个对话框效果,但我不知道怎么弄!
解决方案 »
- 瞧一瞧,看一看,不要错过,小弟跪求一个问题,已经困扰几天了,请各位高手帮忙。
- 程序在application.Terminate后,会自动释放相关的资源吗,
- 如何将一个在EXE 里面的EXE 文件释放到内存,并执行它?
- 触发器问题(150分数开贴给解决问题者!!!)
- DBGrid中怎么会出现两条重复的记录??
- 找啊找找到一个好朋友!
- 那位给我解释一下这句代码?Format('%2.2x,[Length(TPuserData) div 2)]')
- 如何找到文件?
- 关于COMBOBOX的问题(好难)
- 又一个头痛的问题,TAdoDataSet的错误处理?
- delphi连接oracle数据库报错。急急急!!!!
- DirectSound 实时播放
不行么?
干嘛去弄自己的控件
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;type
TMyImage = class(TImage)
private
MyOpenDialog: TOpenDialog;
procedure ImageDBClick(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end; TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
MyImage: TMyImage;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyImage }constructor TMyImage.Create(AOwner: TComponent);
begin
inherited;
AutoSize := False;
Center := True;
OnDblClick := ImageDBClick;
MyOpenDialog := TOpenDialog.Create(AOwner);
end;procedure TMyImage.ImageDBClick(Sender: TObject);
begin
if MyOpenDialog.Execute then
Self.Picture.LoadFromFile(MyOpenDialog.FileName);
end;destructor TMyImage.Destroy;
begin
if Assigned(MyOpenDialog) then
FreeAndNil(MyOpenDialog);
inherited;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
MyImage := TMyImage.Create(Self);
MyImage.Parent := Self;
MyImage.SetBounds(200, 200, 200, 200);
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(MyImage) then
FreeAndNil(MyImage);
end;procedure TForm1.FormShow(Sender: TObject);
begin
MyImage.OnDblClick(MyImage);
end;end.