1.我在显示一个窗体时,首先创建这个窗体。
xs_jd:=Txs_jd.Create(application);
xs_jd.Show;
当我在xs_jd的oncreate事件中写入
xs_jd.StringGrid1.Cells[1,0]:='序号';
xs_jd.StringGrid1.Cells[2,0]:='类别';
时出现错误Project CRM.EXE raised exception class EAccessViolation with message'Access violation at address 004E6E57 in module 'CRM.EXE''.如果不写入代码又正常显示
2.我设了一个窗体为主窗体的子窗体。由于在关闭子窗体时,他只会最小化,我在子窗体的onclose中加入
action := cafree;
frmClsld := nil;才正常关闭。由于我需要这个子窗体在关闭时,返回一个字段值给另一个子窗体。于是加入
if form1.khxscs=1 then
if dm.kh_query.RecordCount>0 then
begin
if cs=3 then
dm.kh_query.Last;
form1.edit1.Text:=dm.kh_query['khmc'];
form1.combobox3.SetFocus;
end;
action := cafree;
frmClsld := nil;
可也出现上面的错误提示。
请问这两个是什么原因,另外如何解决。
其实我主要目的是一个主窗口,当点击菜单时,弹出窗口。用show显示时,可当鼠标点主窗口时,该窗口会自动关闭。另外用showmodal时,当需要点击菜单上的其它窗口时,必须关闭此窗口。我需要的是点击主窗口时即不会自动关闭,而需要点另外窗口时,也不需要关闭此窗口。我是菜鸟请多多指点。
还有一个小问题是关于DGBRIDeh的。我想设置其中一列是可编辑的,其它是不可的,如果用readonly来设的话,当我修改了可编辑这列的最后一个字段值时,如果按鼠标向下方向健的话,会出现一个空白行。会出错,由于我是从表里直接读出来的数据不需要增加。只需修改就可了。这如何解决
xs_jd:=Txs_jd.Create(application);
xs_jd.Show;
当我在xs_jd的oncreate事件中写入
xs_jd.StringGrid1.Cells[1,0]:='序号';
xs_jd.StringGrid1.Cells[2,0]:='类别';
时出现错误Project CRM.EXE raised exception class EAccessViolation with message'Access violation at address 004E6E57 in module 'CRM.EXE''.如果不写入代码又正常显示
2.我设了一个窗体为主窗体的子窗体。由于在关闭子窗体时,他只会最小化,我在子窗体的onclose中加入
action := cafree;
frmClsld := nil;才正常关闭。由于我需要这个子窗体在关闭时,返回一个字段值给另一个子窗体。于是加入
if form1.khxscs=1 then
if dm.kh_query.RecordCount>0 then
begin
if cs=3 then
dm.kh_query.Last;
form1.edit1.Text:=dm.kh_query['khmc'];
form1.combobox3.SetFocus;
end;
action := cafree;
frmClsld := nil;
可也出现上面的错误提示。
请问这两个是什么原因,另外如何解决。
其实我主要目的是一个主窗口,当点击菜单时,弹出窗口。用show显示时,可当鼠标点主窗口时,该窗口会自动关闭。另外用showmodal时,当需要点击菜单上的其它窗口时,必须关闭此窗口。我需要的是点击主窗口时即不会自动关闭,而需要点另外窗口时,也不需要关闭此窗口。我是菜鸟请多多指点。
还有一个小问题是关于DGBRIDeh的。我想设置其中一列是可编辑的,其它是不可的,如果用readonly来设的话,当我修改了可编辑这列的最后一个字段值时,如果按鼠标向下方向健的话,会出现一个空白行。会出错,由于我是从表里直接读出来的数据不需要增加。只需修改就可了。这如何解决
解决方案 »
- 公司要做这样一个程序---把MEMO中的数据以一行为单位,上传到网上的数据库(为一个字段) 用UDP或TCP
- 打包小问题,帮帮我呀
- 请问:F1Book有关的问题——
- 请问那位大侠知道,在访问内存时,得到了数组的句柄,怎样才能知道这个数组的大小!
- 怎么使dbgird的数据可以不即时更新,也就是说要可以控制它的写入(用一个按钮)?
- 高分请教:如何使用函数来设置窗体大小?
- 简单问题,关于RICHEDIT拖拽问题
- 我的TIMER事件怎么不好用?急。在线等待。
- copy_paste(木石三) 进来拿分
- 我想结合主域服务器的组、用户等,一句话,就是能用API完成域用户管理器的工作,是不是很复杂呢?另外,我是针对NT4,并不是对于WIN2000(因为WIN2000可以用ADSI),怎么办呢?Delphi高手们可以写一段程序给我学习吗?help!!!
- 新建delphi群,欢迎加入!
- 请教几个硬件接口的问题(门外汉),各位富翁们别骂我哦,不过很多朋友想了解的
xs_jd:=Txs_jd.Create(application);
xs_jd.Show;
当我在xs_jd的oncreate事件中写入
xs_jd.StringGrid1.Cells[1,0]:='序号';
xs_jd.StringGrid1.Cells[2,0]:='类别';
//试问既然StringGrid1在这个Txs_jd里面,为什么还xs_jd.StringGrid1这样。就直接可以StringGrid1.Cells[1,0]:='序号';这样写嘛。 lz仔细检查Txs_jd里面是否有StringGrid1这个组件2.因为你创建的时候Owner指定的为Application,所以你在Onclose里面就不能action := cafree;
frmClsld := nil;,因为你在主窗口退出的时候Vcl会去检查xs_jd是否已经释放,而此时你在子窗体关闭的时候已经释放了,所以非法访问内存。
正确做法: xs_jd:=Txs_jd.Create(nil);
begin
tabsheet1.TabVisible:=true;
tabsheet2.TabVisible:=false;
if form1.khxscs=1 then //khxscs是判定此窗口3是由菜单打开的,还是由另一个子窗口1打开的。后者返回个参数给那个子窗口1(注,在这个子窗口3打开的时候窗口1是没有关闭的。,)
if dm.kh_query.RecordCount>0 then
begin
if cs=3 then
dm.kh_query.Last;
form1.edit1.Text:=dm.kh_query['khmc'];
form1.combobox3.SetFocus;
end;
form3:=Tform3.Create(nil);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
khxscs:=1;
form3:=Tform3.Create(application);
form3.Show;
end;
form3:=Tform3.Create(application);
form3.Show;
我是点击菜单上的打开子窗口的。退出就出错