D del520 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #1 如题! 为何在FORM2中使用 n:=FORM1.DbGrid1.SelectedRows.Count 值为空? 而在FORM1中直接使用又是正常的!
岚 岚岚 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #2 再把问题说清楚一点啦,form2必须要use unit form1才行。
D del520 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #4 这个放心了,肯定是有的(USES)。 在FORM1中有一个DBGrid,用CTRL+左键选择一些行之后,打开FORM2, 在FORM2中发现使用FORM1.DbGrid1.SelectedRows.Count 返回值居然为0。 试着在FORM1下试试,返回的数目则是正常。
这个放心了,肯定是有的(USES)。 在FORM1中有一个DBGrid,用CTRL+左键选择一些行之后,打开FORM2, 在FORM2中发现使用FORM1.DbGrid1.SelectedRows.Count 返回值居然为0。 试着在FORM1下试试,返回的数目则是正常。
银 银雨辰 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #6 with Form1 do begin form2.edit1.Text:=inttostr(DbGrid1.SelectedRows.Count); end; ***************************** 调试通过!
with Form1 do begin form2.edit1.Text:=inttostr(DbGrid1.SelectedRows.Count); end; ***************************** 调试通过!
J jsxjd Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #7 到 form2 时 form1 失去焦点,当然 dbgrid 也不会有选择。 设置 dbGrid 的 dgAlwaysShowSelection 为 true 在属性窗口的 options 中。
S shiwee Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #8 在form1中当然正常, 你最好定义一个全局变量,用来保存(不推荐)。 或者form1定义一个 public GetSelectCount:Integer; 用来在Form1之外取得你要的值。 或者用一个form1的变量来保存,在form2中访问这个变量。
在form1中当然正常, 你最好定义一个全局变量,用来保存(不推荐)。 或者form1定义一个 public GetSelectCount:Integer; 用来在Form1之外取得你要的值。 或者用一个form1的变量来保存,在form2中访问这个变量。
D del520 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-20 #9 谢谢大家的参与 刚刚做了测试,问题并不是大家想像的那样,这里我发现一个微妙的问题,真是很奇怪。 我在FORM1中使用N:=DbGrid1.selectedRows.Count,然后ShowMessage(intToStr)正常。 但我使用N:=FORM1.DbGrid1.SelectedRows.Count 则不管是否选择N为0! 很奇怪,于是我在FORM搞一个按钮加上命令 : ShowMessage(name)按理说应该显示 'FORM1' 但却显示为FORM_1 ?????这是为什么啊!! 当然,我所说的FORM1,只是个举例简单化,实际我的程序中并不是FORM1(主FORM)!!
谢谢大家的参与 刚刚做了测试,问题并不是大家想像的那样,这里我发现一个微妙的问题,真是很奇怪。 我在FORM1中使用N:=DbGrid1.selectedRows.Count,然后ShowMessage(intToStr)正常。 但我使用N:=FORM1.DbGrid1.SelectedRows.Count 则不管是否选择N为0! 很奇怪,于是我在FORM搞一个按钮加上命令 : ShowMessage(name)按理说应该显示 'FORM1' 但却显示为FORM_1 ?????这是为什么啊!! 当然,我所说的FORM1,只是个举例简单化,实际我的程序中并不是FORM1(主FORM)!!
银 银雨辰 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-21 #10 implementation uses Unit1; {$R *.DFM} procedure TForm2.FormCreate(Sender: TObject); var n:integer; begin with Form1 do begin n:= DbGrid1.SelectedRows.Count; form2.edit1.Text:=inttostr; end; end; 把问题说清楚点吧!
implementation uses Unit1; {$R *.DFM} procedure TForm2.FormCreate(Sender: TObject); var n:integer; begin with Form1 do begin n:= DbGrid1.SelectedRows.Count; form2.edit1.Text:=inttostr; end; end; 把问题说清楚点吧!
D del520 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-21 #12 没有多个DBGRID1 现在发奇怪问题了。就是我上面说的。 我的实际环境如下: 在FORM1中有一PANEL1 然后使用用一按钮。 form2:=Tform2.create(self); form2.parent:=form1.panel1 form2.show; 然后设置form2.align:=alclient,无边框等。。。 这样点这个按钮,FORM2就会完全显示在form1.panel1这中,看上去就像是FORM1的一部分。 按理说这样搞一下,form2.name应该不会改变。 但是的确是变了,我在FORM2上放一按钮,命令使用:showMessage(name); 应该显示FORM2,可显示为FORM2_1 。 所以我主题上的 n:=form2.dbGrid1.selectedRows.count 返回值不对可能就是这个原因! 因为我使用dbGrid1.selectedRows.count又是正确的,只不过是没有加form2. 。 我正在找原因。。。。。
没有多个DBGRID1 现在发奇怪问题了。就是我上面说的。 我的实际环境如下: 在FORM1中有一PANEL1 然后使用用一按钮。 form2:=Tform2.create(self); form2.parent:=form1.panel1 form2.show; 然后设置form2.align:=alclient,无边框等。。。 这样点这个按钮,FORM2就会完全显示在form1.panel1这中,看上去就像是FORM1的一部分。 按理说这样搞一下,form2.name应该不会改变。 但是的确是变了,我在FORM2上放一按钮,命令使用:showMessage(name); 应该显示FORM2,可显示为FORM2_1 。 所以我主题上的 n:=form2.dbGrid1.selectedRows.count 返回值不对可能就是这个原因! 因为我使用dbGrid1.selectedRows.count又是正确的,只不过是没有加form2. 。 我正在找原因。。。。。