if  assigned(Tb_jh_pss_form(b_jh_pss_form)) then
begin
b_jh_pss_form.edit3.Text:=trim(self.adoquery1.Fieldbyname('name').AsString);
b_jh_pss_form.edit11.Text:=trim(self.adoquery1.Fieldbyname('dep').AsString);
end;
if  assigned(Tm_wh_fm(m_wh_fm))  then
begin
m_wh_fm.edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
m_wh_fm.edit6.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
end;
    .........
 当我打开多个子窗体,时就会出现问题?我的意思是当前最上面那个mdichild窗体得到我的传的值
这样有一个致命的问题,如果我打开多个

解决方案 »

  1.   

    没看清是Delphi版的.没学过delphi
      

  2.   

    b_jh_pss_form.edit3.Text:=trim(self.adoquery1.Fieldbyname('name').AsString);
    b_jh_pss_form.edit11.Text:=trim(self.adoquery1.Fieldbyname('dep').AsString);我想楼主主要是上面两句的赋值问题,改为以下即可
      for I := 0 to Screen.FormCount - 1 do
      if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
      begin
        Tb_jh_pss_form(Screen.Forms[I]).Edit1.Text := ...
        Tb_jh_pss_form(Screen.Forms[I]).Edit2.Text := ...
      end;
      

  3.   

    for I := 0 to Screen.FormCount - 1 do
      if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
      begin
        Tb_jh_pss_form(Screen.Forms[I]).Edit1.Text := ...
        Tb_jh_pss_form(Screen.Forms[I]).Edit2.Text := ...
        Break;
      end;
      

  4.   

    我测试过了,可以的,只对最上层的那个MDI子窗口起作用。楼主还是贴段代码吧
      

  5.   

    for I := 0 to Screen.FormCount - 1 do
    begin
      if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
      begin
        Tb_jh_pss_form(Screen.Forms[I]).Edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tb_jh_pss_form(Screen.Forms[I]).Edit11.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
        break;
      end;
      if Screen.Forms[I].ClassName = 'Tjh_pss_form' then
      begin
        Tjh_pss_form(Screen.Forms[I]).Edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tjh_pss_form(Screen.Forms[I]).Edit11.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
        break;
      end;
    end;
    if  assigned(Tn_ygda_fm(n_ygda_fm))  then
    begin
    n_ygda_fm.edit8.Text:=trim(adoquery1.Fieldbyname('name').AsString);
    n_ygda_fm.edit6.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
    end;这是我的部分程序,请高手指点!!!!!
      

  6.   

    for I := 0 to Screen.FormCount - 1 do
    begin
      if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
      begin
        Tb_jh_pss_form(Screen.Forms[I]).Edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tb_jh_pss_form(Screen.Forms[I]).Edit11.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
        break;
      end;
    end;
    for I := 0 to Screen.FormCount - 1 do
    begin
      if Screen.Forms[I].ClassName = 'Tjh_pss_form' then
      begin
        Tjh_pss_form(Screen.Forms[I]).Edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tjh_pss_form(Screen.Forms[I]).Edit11.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
        break;
      end;
    end;
      

  7.   

    for I := 0 to Screen.FormCount - 1 do
    begin
      if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
      begin
        Tb_jh_pss_form(Screen.Forms[I]).Edit3.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tb_jh_pss_form(Screen.Forms[I]).Edit11.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
        break;
      end;
    end;
    for I := 0 to Screen.FormCount - 1 do
    begin
      if  Screen.Forms[I].ClassName = 'Tn_ygda_fm' then
      begin
        Tn_ygda_fm(Screen.Forms[I]).edit8.Text:=trim(adoquery1.Fieldbyname('name').AsString);
        Tn_ygda_fm(Screen.Forms[I]).edit6.Text:=trim(adoquery1.Fieldbyname('dep').AsString);
      end;
      Break;
    end;
    看我这次的
      

  8.   

    这段代码有问题了,那位高手在给看看
     for I := 0 to Screen.FormCount - 1 do
        begin
                    if Screen.Forms[I].ClassName = 'Tb_jh_pss_form' then
                                           begin
                    if  not (b_jh_pss_form.ADOQuery1.State  in [dsEdit,dsInsert])  then  b_jh_pss_form.ADOQuery1.Edit;
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['prd_no']:=ADOQuery1.FieldValues['prd_no'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['prd_name']:=ADOQuery1.FieldValues['name'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['wh']:=ADOQuery1.FieldValues['wh'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['wh_name']:=ADOQuery1.FieldValues['wh_name'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['unit']:=ADOQuery1.FieldValues['m_ut'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['tax_pto']:=ADOQuery1.FieldValues['spc_tax'];
                             Tb_jh_pss_form(Screen.Forms[I]).ADOQuery1.FieldValues['up']:=0.0000;
                    end;
        break;
        end;
     {}
            for I := 0 to Screen.FormCount - 1 do
            begin
                    if Screen.Forms[I].ClassName = 'Tjh_pss_form' then
                    begin
                    if  not (jh_pss_form.ADOQuery1.State  in [dsEdit,dsInsert])  then
                             jh_pss_form.ADOQuery1.Edit;
                             jh_pss_form.ADOQuery1.FieldValues['prd_no']:=ADOQuery1.FieldValues['prd_no'];
                             jh_pss_form.ADOQuery1.FieldValues['prd_name']:=ADOQuery1.FieldValues['name'];
                             jh_pss_form.ADOQuery1.FieldValues['wh']:=ADOQuery1.FieldValues['wh'];
                             jh_pss_form.ADOQuery1.FieldValues['wh_name']:=ADOQuery1.FieldValues['wh_name'];
                             jh_pss_form.ADOQuery1.FieldValues['unit']:=ADOQuery1.FieldValues['m_ut'];
                             jh_pss_form.ADOQuery1.FieldValues['tax_pto']:=ADOQuery1.FieldValues['spc_tax'];
                             jh_pss_form.ADOQuery1.FieldValues['up']:=0.0000;
                    end;
            break;
            end;
      

  9.   

    我看出来了,楼主请注意,一个窗体里的代码,必须写在同一个循环里面
    for I := 0 to Screen.FormCount - 1 do
    begin
      //.......
      break;
    end;
      

  10.   

    是同一个循环,是一个adoquery的批量数据的提交!!!