第一次 .........^_^就这么一堆错!!伤心……呵……呵 在你的自定义的控件的create中,应该把panel、image什么的cretae一下(delphi是不会为你做这些事情的),在进行适当的初始化,否则你用的是一个空的对象指针,当然是一堆错误!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TImagepanel = class(TPanel)//建议改成这样,否者panel_1.parent:=self;会出错 private { Private declarations } protected { Protected declarations } top_p : integer; left_p : integer; bac_color : Tcolor; image_1: Timage; panel_1: Tpanel; statictext_1: Tstatictext; sta_txt : string;//************************************定义缩约图的过程; Procedure MakeStretchDraw(image_every:Timage) ; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } Property picture :Timage read image_1 write image_1 default nil; {要显示的bitmap} Property text :string read sta_txt write sta_txt ; {图形文件的文件名} Property color : Tcolor read bac_color write bac_color default $00ba8795; Property top :integer read top_p write top_p default 0; Property left :integer read left_p write left_p default 0; end;procedure Register;implementation//------------------------------------------------------------------------------procedure Register;begin RegisterComponents('w3_20', [Timagepanel]);end;//------------------------------------------------------------------------------destructor Timagepanel.Destroy;begin statictext.free; //添加 image_1.free; //添加 panel_1.free; //添加 inherited destroy;end;//------------------------------------------------------------------------------constructor Timagepanel.Create(AOwner: TComponent);begin inherited create(AOwner); top_P := 0; left_p:= 0; bac_color:=$00ba8795 ;//----------------初始化 panel_1 panel_1:=TPanel.create(self); //添加 panel_1.parent:=self; //添加,没有的话,你看不见panel——1 panel_1.Top:=top_p; panel_1.Left:=left_p; panel_1.Width :=100; panel_1.Height :=120;//---------------初始化 statictext_1 statictext_1:=TStatictext.create(self); //添加 statictext_1.Parent:=panel_1; {把statictext置于panel_1上} statictext_1.Align:=albottom; statictext_1.Caption:=sta_txt; statictext_1.color:=bac_color; {置背景颜色}//---------------初始化 image_1 image_1:=TImage.create(self); //添加 image_1.Parent :=panel_1; {把image_1置于panel_1上} image_1.Align:=alclient;//--------------画缩约图 MakeStretchDraw(image_1);end;//------------------------------------------------------------------------------//************************************** Procedure Imagepanel.MakeStretchDraw(image_every:Timage) ; var var_image :Timage; begin var_image:= TImage.create(self); //添加 var_image.Picture:=image_ever.Picture; image_ever.Picture:=nil; var_image.AutoSize:=true; Image_ever.Canvas.StretchDraw(Image_ever.ClientRect,var_Image.Picture.Graphic); var_image.Picture.Free; end;end. 说错了请原谅: 你得好好打基础了,不要急着做vcl控件,这需要较全面的知识,只会让你失去对delphi的信心 编译指示呢?编译指示呢?我虽然不太清楚你的错在那里,但是,但是,没有编译指示.我给你讲讲我的经历:有次学写类库,报错说资源找不到,后来加了编译指示{$r *.dfm}就可以了.是不是这问题? 谢谢: ibear(大熊) & greenwaterbluesky(我的家在碧水蓝天) & MooseWOler(Mr.Oler) & david_wwb(时代超人) &&……………………我会努力学的 to: greenwaterbluesky(我的家在碧水蓝天) 你给我改的我试了比我的强的多! 但还是有些问题的 初始化 可能做得不够! 明天继续!!谢谢大家! 欢迎还想提议的朋友!请E-mail: shadow-x.sohu.com 将不甚感激!定当有分酬劳!!!!!!!! 如何理解架构?请指教。 类型转换问题?? 200分求idhttp使用时内存狂占的解决方法!! 现在比较闲,想找份兼职 请教高手如何调用vc写的dll 请问有没有对不同设置不同颜色的的仿RichEdit的控件? 请问大侠们何为Activex,MIDAS 有关于指针的问题! 大侠救我啊!!!! 为什么我一执行调用DLL的程序就出现非法操作!!! 如何用 SOKET 传送及接收数据流 ? 在线等待:关于ADO与ACCESS的数据库查询问题?? 层次编码的填充问题!大家讨论!
//建议改成这样,否者panel_1.parent:=self;会出错
private
{ Private declarations } protected
{ Protected declarations }
top_p : integer;
left_p : integer;
bac_color : Tcolor;
image_1: Timage;
panel_1: Tpanel;
statictext_1: Tstatictext;
sta_txt : string;//************************************定义缩约图的过程;
Procedure MakeStretchDraw(image_every:Timage) ;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
Property picture :Timage read image_1 write image_1 default nil; {要显示的bitmap}
Property text :string read sta_txt write sta_txt ; {图形文件的文件名}
Property color : Tcolor read bac_color write bac_color default $00ba8795;
Property top :integer read top_p write top_p default 0;
Property left :integer read left_p write left_p default 0;
end;procedure Register;implementation//------------------------------------------------------------------------------
procedure Register;
begin
RegisterComponents('w3_20', [Timagepanel]);
end;
//------------------------------------------------------------------------------
destructor Timagepanel.Destroy;
begin
statictext.free; //添加
image_1.free; //添加
panel_1.free; //添加
inherited destroy;
end;
//------------------------------------------------------------------------------
constructor Timagepanel.Create(AOwner: TComponent);
begin
inherited create(AOwner);
top_P := 0;
left_p:= 0;
bac_color:=$00ba8795 ;
//----------------初始化 panel_1
panel_1:=TPanel.create(self); //添加
panel_1.parent:=self; //添加,没有的话,你看不见panel——1
panel_1.Top:=top_p;
panel_1.Left:=left_p;
panel_1.Width :=100;
panel_1.Height :=120;
//---------------初始化 statictext_1
statictext_1:=TStatictext.create(self); //添加
statictext_1.Parent:=panel_1; {把statictext置于panel_1上}
statictext_1.Align:=albottom;
statictext_1.Caption:=sta_txt;
statictext_1.color:=bac_color; {置背景颜色}
//---------------初始化 image_1
image_1:=TImage.create(self); //添加
image_1.Parent :=panel_1; {把image_1置于panel_1上}
image_1.Align:=alclient;
//--------------画缩约图
MakeStretchDraw(image_1);
end;
//------------------------------------------------------------------------------
//**************************************
Procedure Imagepanel.MakeStretchDraw(image_every:Timage) ;
var
var_image :Timage;
begin
var_image:= TImage.create(self); //添加
var_image.Picture:=image_ever.Picture;
image_ever.Picture:=nil;
var_image.AutoSize:=true;
Image_ever.Canvas.StretchDraw(Image_ever.ClientRect,var_Image.Picture.Graphic);
var_image.Picture.Free;
end;
end.
你得好好打基础了,不要急着做vcl控件,这需要较全面的知识,只会让你失去对delphi的信心
我给你讲讲我的经历:有次学写类库,报错说资源找不到,后来加了编译指示{$r *.dfm}就可以了.是不是这问题?
greenwaterbluesky(我的家在碧水蓝天) &
MooseWOler(Mr.Oler) &
david_wwb(时代超人) &&……………………
我会努力学的
to: greenwaterbluesky(我的家在碧水蓝天)
你给我改的我试了比我的强的多!
但还是有些问题的
初始化 可能做得不够!
明天继续!!
谢谢大家!
请E-mail:
shadow-x.sohu.com
将不甚感激!定当有分酬劳!!!!!!!!