社区
Delphi
帖子详情
在以模式窗口方式显示的窗口中动态创建控件后再free时,报"abstract error"错误,请问怎么解决?
DumDum
2008-06-11 08:45:44
在以模式窗口方式显示的窗口中动态创建控件后再free时,报"abstract error"错误,请问怎么解决?
例示我的form1窗口以ShowModal方式显示,然后在窗口上创建panel,并在panel上再创建一个button,然后点击button后把panel 给free掉,上时就会报“abstract error"错误,为什么会这样,有什么办法解决吗?
...全文
110
14
打赏
收藏
在以模式窗口方式显示的窗口中动态创建控件后再free时,报"abstract error"错误,请问怎么解决?
在以模式窗口方式显示的窗口中动态创建控件后再free时,报"abstract error"错误,请问怎么解决? 例示我的form1窗口以ShowModal方式显示,然后在窗口上创建panel,并在panel上再创建一个button,然后点击button后把panel 给free掉,上时就会报“abstract error"错误,为什么会这样,有什么办法解决吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DumDum
2008-06-11
打赏
举报
回复
OK,明白了~~!
ysai
2008-06-11
打赏
举报
回复
真要释放,不要用free方法,而用postmessage((sender as tbutton).Parent.handle, WM_CLOSE ,0, 0);
ysai
2008-06-11
打赏
举报
回复
和这个帖子里的问题一样
http://topic.csdn.net/u/20080522/14/5f2e8cce-0c76-46d5-9f69-f9147d9f9f94.html
请看Free方法的帮助:
Warning: Never explicitly free a component within one of its own event handlers or the event handler of a component it owns or contains. For example, don't free a button, or the form that owns the button, in its OnClick event handler.
不要试图在控件的事件中释放自身.
在Button.OnClick中释放它的Parent会把自己也释放了,违反了这个规则
DumDum
2008-06-11
打赏
举报
回复
能在D6中解决吗?公司是用D6做开发的
wywry
2008-06-11
打赏
举报
回复
到这个网站下载个D7或D2007的精简版,D7最小才5M
http://bbs.yd153.com/index.asp?boardid=25
DumDum
2008-06-11
打赏
举报
回复
是delphi 6版本,其他的就不清楚了,是公司别人安装的~~!
ZyxIp
2008-06-11
打赏
举报
回复
楼主你用的版本是火星版的吧。
DumDum
2008-06-11
打赏
举报
回复
Form1要以showmodal方式显示,并且把showmodal结果返回给调用窗口~~!
DumDum
2008-06-11
打赏
举报
回复
Form1要以showmodal方式显示的~~!
wywry
2008-06-11
打赏
举报
回复
我在D2007下调试你的代码,没有问题啊
ZyxIp
2008-06-11
打赏
举报
回复
这样子不会出错啊!!!
DumDum
2008-06-11
打赏
举报
回复
这个还没有说清楚?
就是form1用showmodal方式显示以后,窗口上动态创建一个panel和一个button,点击button后把panel.free;
下面是form1的代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Panel1: TPanel;
Button2: TButton;
procedure ButtonClick(sender:TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ButtonClick(sender:TObject);
begin
if tbutton(sender).Parent.ClassType = tpanel then
(sender as tbutton).Parent.Free ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1:=TPanel.Create(nil) ;
Panel1.Parent := self;
Panel1.Top := 50;
Panel1.Left :=50;
Panel1.Width := 200;
Panel1.Height := 150;
Button2:=TButton.Create(nil);
Button2.Parent := Panel1;
Button2.OnClick:=ButtonClick ;
end;
end.
ZyxIp
2008-06-11
打赏
举报
回复
你没有说清楚.
7年
2008-06-11
打赏
举报
回复
是因为button1的parent没了吧
Android界面
控
件难点精讲
在Android开发
中
,如果能够使用MVC
模式
进行开发,则开发效率会高很多,此
时
,我们则可以使用AdapterView与Adapter高级
控
件来实现类似MVC的
模式
进行开发,从而大大提高开发效率本课
中
会给出AdapterView与Adapter的...
13:
创建
窗口
与Applet
14:
创建
窗口
与Applet设计的宗旨是"能轻松完成简单的任务,有办法完成复杂的任务"。[74]最初设计Java 1.0的GUI类库
时
,Sun的目标是,要让程序员能在所有平台下都能做出非常漂亮的界面。但是这个目标没能实现。相反用...
微软
错误
代码大全(
中
文和英文)
微软
错误
代码 2.1
中
文 0 操作成功完成。 1 功能
错误
。 2 系统找不到指定的文件。 3 系统找不到指定的路径。 4 系统无法打开文件。 5 拒绝访问。 6 句柄无效。 7 存储
控
制块被损坏。 8...
open cv+C++
错误
及经验总结(十)
1.DicomTest.exe
中
的 0x536c437b (mfc100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x6131314c
时
发生访问冲突 0xC0000005 应用程序初始化
错误
0x00000004 内存地址 请查看否存内存分配
错误
建议你调试...
delphi
控
件使用
1- Tlistbox
控
件 重要属性items.* 举例,界面设计如下左,执行结果如下右: 代码为 procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text := listbox1.Items.CommaText; edit2.Text := ...
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章