with Query do
var
S:String;
StringList:TStringList;
begin
...
StringList:=TStringList.Create
First;
while not eof do
begin
S:='';
for I:=0 to Fields.Count-1 do
S:=S+#9+Fields.AsString
//字段间以Tab分隔
if S<>'' then
System.Delete(S,1,1)
//删除最前面的Tab
StringList.Add(S)
//加入到StringList中
Next
//下一条记录
end;
StringList.SaveToFile('C:/黑老板日记/本月宰人记录.txt');
StringList.Free;
end;
在Form的OnCloseQuery事件中写:
begin
with Query do
if State in dsEditModes then //判断DataSet当前状态
begin
MessageBox(Self.Handle,'当前记录未保存!','警告',
MB_IconWarning or MB_OK)
//警告
CanClose:=False
//不允许退出
end;
end;