关于quickrep控件的问题。
我用以下语句创建一个子窗口
procedure TMainForm.Createprint(const Name: string);
var
  Child: Tprintv;
begin
  { create a new MDI child window }
  Child := Tprintv.Create(Application);
  Child.Caption := Name;
end;
此窗口上放了一个quickrep控件以及一个ADOquery控件,
procedure Tprintv.FormCreate(Sender: TObject);
begin
  quickrep1.Preview;{预览输出} //我执行以下语句后,按quickrep控件
  自带的close按钮后,程序退出时报错:
  “说当前记录包括一个bof或eof,或者我目前浏览的一行数据已经被删除,必须操作当前行”。
  我不明白什么意思?听说delphi5的adoquery有一些问题,不知道是不是指这个,请高手帮忙解决。
  close;
end;
procedure Tprintv.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action:=caFree;
end;/////////////////////////////////////////////////////////////////////////////
关于mdi窗口的问题。
我使用delphi的向导创建了一个mdi窗口程序。
我要在打开主窗口(最大话)的时候,弹出登陆界面,所以
我创建了一个nomal型的窗口叫denglu。
并且我在主窗口的active事件的添加代码:
denglu.showmodal;
现在出现了以下问题,我是在1024*768下运行此程序的,在主窗口
最大化过程中,就是弹出登陆窗口的同时,屏幕上出现主窗口的残影。
如果我把屏幕的分辨率调为800*600就没有此情况,或者我把登陆窗口去掉,
此情况也会消失,请高手指点。
//////////////////////////////////////////////////////////////////////////////
怎么把dbgrid的内容存为文本文件,或excel或其他格式的文件。
请高手提供方法,或告诉我那里有例程。

解决方案 »

  1.   

    問題一﹕這可能是D5的一個BUG﹐我同事的也是這樣﹐但我的D6及D7都沒有。
    如果解決了請告訴一聲。
    問題二﹕你可建一個密碼窗口為MDI窗口﹐通過密碼確認后把它Hide﹐則不會出現以上問題。或在主窗口中放一個Panel或其它控件上面放上Edit,Button,確認后Hide即可。
    問題三﹕﹖
      

  2.   

    1:你把quickrep1.Preview放在form的show事件里试一下。
      

  3.   

    2:登陆窗口放在active事件里不好吧。你为什么不放在主窗体的show事件里
    显示呢?
      

  4.   

    3:由于不知道你要的保存格式,以下把dbgrid的内容存为文本文件的代码仅供参考:
    var
     savetext:Tstrings;
    i,j:integer;
    begin
      savetext:=TstringList.create;
    try
      for i:=0 to Dbgrid1.datasource.dataset.recordcount-1 do
        for j:=0 to Dbgrid1.datasource.dataset.FieldCount-1 do
          savetext[i]:=savetext[i]+','+Dbgrid1.datasource.dataset[j].asstring;
    savetext.SaveToFile('123.txt')
    finally
     saveText.free;
    end;
    end;