我定义了一个myoutput
type
myoutput=class(tpanel)CMyOutput:array [0..MAXVIEWNUM-1] of myoutput;
窗体创建时创建CMyOutput for i:=0 to combobox1.itemindex do
begin
for j:=0 to combobox1.itemindex do
begin
CMyOutput[m]:=MYOUTPUT.create(Self);
CMyOutput[m].Parent:=frmmain;
CMyOutput[m].Height:=panel2.Height div (combobox1.itemindex+1);
CMyOutput[m].width:=panel2.width div (combobox1.itemindex+1);
CMyOutput[m].top:=panel2.top+(i )*CMyOutput[m].Height ;
CMyOutput[m].left:=panel2.left+(j)*CMyOutput[m].width;
CMyOutput[m].Caption:=inttostr(m);
CMyOutput[m].BevelInner:=bvlowered;
CMyOutput[m].BevelWidth:=2;
CMyOutput[m].PopupMenu:=popupmenu1;
CMyOutput[m].OnClick:=CMyOutput[m]._ButtonClick;
CMyOutput[m].OnMouseDown:=CMyOutput[m]._MouseDown;
cmyoutput[m].m_iPlayhandle:=-1;
CMyOutput[m].setindexi(m);
inc(m);
end; end;点按钮时运行下句
if (CMyOutput[icount].Handle >= 0) then
CMyOutput[icount].StartNet(@selipinfo[icount]);
偶尔就会跳转到controls单元的
procedure TWinControl.HandleNeeded;
begin
if FHandle = 0 then
然后报内存错误如果把if (CMyOutput[icount].Handle >= 0) then去掉,直接运行下句也是偶尔正确,偶尔
在StartNet的事件内跳到system单元的
procedure _HandleFinally;
的 MOV EAX,[ESP+4]行,然后报内存错误
为什么啊?CMyOutput在formshow的时候就创建了,为什么取handle时有时候就报错,有时候没问题啊
type
myoutput=class(tpanel)CMyOutput:array [0..MAXVIEWNUM-1] of myoutput;
窗体创建时创建CMyOutput for i:=0 to combobox1.itemindex do
begin
for j:=0 to combobox1.itemindex do
begin
CMyOutput[m]:=MYOUTPUT.create(Self);
CMyOutput[m].Parent:=frmmain;
CMyOutput[m].Height:=panel2.Height div (combobox1.itemindex+1);
CMyOutput[m].width:=panel2.width div (combobox1.itemindex+1);
CMyOutput[m].top:=panel2.top+(i )*CMyOutput[m].Height ;
CMyOutput[m].left:=panel2.left+(j)*CMyOutput[m].width;
CMyOutput[m].Caption:=inttostr(m);
CMyOutput[m].BevelInner:=bvlowered;
CMyOutput[m].BevelWidth:=2;
CMyOutput[m].PopupMenu:=popupmenu1;
CMyOutput[m].OnClick:=CMyOutput[m]._ButtonClick;
CMyOutput[m].OnMouseDown:=CMyOutput[m]._MouseDown;
cmyoutput[m].m_iPlayhandle:=-1;
CMyOutput[m].setindexi(m);
inc(m);
end; end;点按钮时运行下句
if (CMyOutput[icount].Handle >= 0) then
CMyOutput[icount].StartNet(@selipinfo[icount]);
偶尔就会跳转到controls单元的
procedure TWinControl.HandleNeeded;
begin
if FHandle = 0 then
然后报内存错误如果把if (CMyOutput[icount].Handle >= 0) then去掉,直接运行下句也是偶尔正确,偶尔
在StartNet的事件内跳到system单元的
procedure _HandleFinally;
的 MOV EAX,[ESP+4]行,然后报内存错误
为什么啊?CMyOutput在formshow的时候就创建了,为什么取handle时有时候就报错,有时候没问题啊
解决方案 »
- 离职以我妥协告终。放分,憋却了好几天。顺便帮忙看看我该买哪个笔记本。
- 多年没来Delphi版发贴了, 散分(五).
- 请教关于用第三方控件提取delphi程序界面工具
- 如何通過代碼得到電腦里的某個User是否具有Administrator的權限??
- 送分帖!调试时出现Missing operator or semicolon现象
- 如何判断win98系统下是否装有msxml
- 如何解决字体问题
- DELPHI中的第三方报表控件有没有类似PUWERBBUILDER数据窗的?
- 想写一个类似word的文字处理软件,有什么好方法。 100分哦!
- 回答了1070個問題有221個得分;得分率高嗎?
- Delphi 调用VB写的DLL,VB下调用正常,delphi调用失败
- delphi中调用vc开发com组件运行时报内存错误
for i:=0 to combobox1.itemindex do
begin
for j:=0 to combobox1.itemindex do
begin=>
for i:=0 to combobox1.items.count-1 do
begin
for j:=0 to combobox1.items.count-1 do
begin2.icount是不是>=0了
第二个icount是>=0的,是循环的,showmessage(inttostr(icount))也没错,不过CMyOutput[icount]就不行,如果我把icount去掉,改成CMyOutput[0],CMyOutput[1],这样就不会报错,不知道为什么,还有我不能真的就改成CMyOutput[0],CMyOutput[1]啊,他是要循环的,因为他总共有可能是1,4,9,16还有可能是别的啊
CMyOutput[icount].StartNet(@selipinfo[icount]);