procedure TForm1.Timer1Timer(Sender: TObject);
var
i :integer;
begin
i:=3;
while I > 0 do
begin
i:=i-1;
fom2.show;
end;
end;
我的问题是我想在执行这个循环过程中每减少一个I数值,fom2.show显示一次,如图所示应该是fom2.show显示3次!但是我执行的时候,他就显示一次为何啊?
大虾帮我实现!

解决方案 »

  1.   

    主程序是fom1控制,因为我要在fom2.show中分三次显示内容!要求他启动三次,!那怎么办啊!
      

  2.   

    不是这样的了!就是上次你给我的哪个MSN例子!我想在循环中将他分三次启动!
    //Qrysltz.Open ;
     //Qrysltz.First;
     sQry1 := TQuery.Create(nil);
     sQry1.DatabaseName := '_DB';
     sQry1.Sql.Add('SELECT * FROM  sltz ');
     sQry1.Open;
     sQry1.First;
     while not sQry1.Eof do
     begin
     sQry := TQuery.Create(nil);
     sQry.DatabaseName := '_DB';
     sQry.Sql.Add('select cpmc from xzhz ');
     sQry.Sql.Add('where xzhz_xh = :xzhz_xh');
     sQry.ParamByName('xzhz_xh').AsString := sQry1.FieldByName('xzhz_xh').asstring;   //传一个产品序号过来以判断当前产品是否已经受礼
     sQry.Open;
     date1 := Date;
     date2 := sQry1.FieldByName('fzrq').AsDateTime;
     day := DaysBetween(date1, date2);
     if day >180  then
     begin
     If Not Assigned(FrmMSN) Then
     FrmMSN:=TFrmMSN.Create(application);
     FrmMSN.HeightMax:=121;  //121
     FrmMSN.WidthMax:=176;  //147
     FrmMSN.Label3.Caption:='';
     FrmMSN.Label3.Caption :=sQry.FieldByName('cpmc').AsString;
     FrmMSN.ScrollWindow;
     Application.MessageBox(PChar('经过受理该'+#13+#10+'“'+sQry.FieldByName('cpmc').AsString +'”。'+#13+#10+'已经过期,请办理'), '错误', MB_ICONWARNING or Mb_OK);
     sQry1.Next;
     end;
    end;
    end;
    执行的时候希望将数据库中检索到的符合条件的产品分几次显示,这样就需要弹出几次窗体啊!
      

  3.   

    在Form2中自定义一过程,调用该过程主动完成显示内容的改变
      

  4.   

    怎么调用啊!我要求从数据库中找到符合条件的产品记录,然后在MSN窗体里分几次显示!但是你说的办法我还是搞不清!
    能不能给点代码看啊!模拟的也可以!反正你那里有!
      

  5.   

    你给我一个联系地址,我把程序给你发过去!!关于MSN的!