有关MDI和F1BOOK的问题:(100分)

  • 主题发起人 主题发起人 刘永学
  • 开始时间 开始时间

刘永学

Unregistered / Unconfirmed
GUEST, unregistred user!
弟最近遇见一个有关MDI和F1BOOK的问题:
由程序产生一个MAINFORM和一个CHILDFORM(自动创建),CHILDFORM上放置一个F1BOOK,
再手动创建若干个CHILDFORM(同上),此时将文件(*.VTS or *.txt)读入到其中的
activeform中的F1BOOK中没有问题。接着问题出现:
问题1: 但是一旦想将ACTIVEFORM中的数据另存为一个文件时,程序出错
"project "*.Exe" raised exception class eloeexception with message 'invalid argument'.....";
问题2: 在关闭全部CHILDFORM 后,再打开文件时,即出现出错信息
"project "*.Exe" raised exception class eaccesssviolation with message 'access violation at address 004645ef in ' read of address ffffffff ";
恳请各位高手解决:相关代码如下:

procedure TMainForm.CreateChild(const Name: String);
var
Child: TChildForm;
begin
Child := TChildForm.Create(Application);
Child.Caption := Name;
end;

procedure TMainForm.FileNewClick(Sender: TObject);
begin
CreateChild('Untitled' + IntToStr(MDIChildCount + 1));
end;

procedure TMainForm.FileOpenClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
CreateChild(Lowercase(OpenDialog1.FileName));
with ActiveMDIChild as TChildForm do
begin
filename:=opendialog1.filename;
extname:=ExtractFileExt(FileName);
besaved:=true;
if extname='.vts' then
begin
fType:=F1FileFormulaOne3
end
else if extname='.xls' then
begin
fType:=F1FileExcel5;
end
else if extname='.txt' then
begin
fType:=F1FileTabbedText
end
else
begin
MessageDlg('后缀名不合法', mtInformation,[mbOk], 0);
end;
LoadData(FileName,ftype);
filesaveitem.Enabled:=true;
filesaveasitem.Enabled:=true;
ToolButton2.Enabled:=true;
end;
end;
end;

procedure TMainForm.FileSaveClick(Sender: TObject);
begin
if Pos('Untitled', ActiveMDIChild.Caption) = 1 then FileSaveAsClick(Sender)
else
begin
with ActiveMDIChild as TChildForm do
begin
if savedialog1.execute then
begin
filename:=savedialog1.filename;
extname:=ExtractFileExt(filename);
if extname='.vts' then
begin
fType:=F1FileFormulaOne3
end
else if extname='.xls' then
begin
fType:=F1FileExcel5;
end
else if extname='.txt' then
begin
fType:=F1FileTabbedText
end;
SaveData(FileName,ftype);
end;
end;
end

end;

procedure TMainForm.FileSaveAsClick(Sender: TObject);
var
FExt,extname1:string;
fType:SmallInt;
begin
with SaveDialog1 do
begin
FileName := ActiveMDIChild.Caption;
end;
if SaveDialog1.Execute then
begin
with ActiveMDIChild as tform11 do
begin
filename:=savedialog1.filename;
extname1:=ExtractFileExt(filename);
if extname1='.vts' then
begin
fType:=F1FileFormulaOne3
end
else if extname1='.xls' then
begin
fType:=F1FileExcel5;
end
else if extname1='.txt' then
begin
fType:=F1FileTabbedText
end;
SaveData(FileName,ftype);
end;
end;
besaved:=true;
end;


procedure TMainForm.WindowCloseAllClick(Sender: TObject);
var
I: Integer;
begin
for I := MDIChildCount - 1 downto 0 do
MDIChildren.Close;
end;
end.
*******************
childform的部分源码:
public
procedure LoadData(VAR FfileName: String;VAR fftype:SmallInt);virtual;
procedure SaveData(VAR FfileName: String;VAR fftype:SmallInt);virtual;
end;

var
ChildForm: TChildForm;

implementation

{$R *.DFM}

procedure TChildForm.LoadData(VAR fFileName: String;VAR fftype:SmallInt);
begin
F1Book1.Read(WideString(ffilename),ffType);
end;

procedure TChildForm.SaveData(VAR fFileName: String;VAR fftype:SmallInt);
begin
F1Book1.write(WideString(ffileName),ffType);
end;
end.
 
为什么非要用MDI呢?
 
弟深感失望!!!,高手都跑到哪里去了???是不是都去看奥运会???
现在谁寄给我一个带注册码的f1book6,
就给谁加分。信箱地址 yanshouguang@263.net。
大家加油呀!!!
 
我好象发过去了,没收到吗
 
对不起!!liuchuanbo同志,信箱里没有,请再发一次,货到即送分,
顺便说一下,这些天,我一直比较忙,上网的时间可能会少一点,海请多多谅解。
 
对不起!!liuchuanbo同志,信箱里没有,请再发到bixuejian@sina.com 一次,
货到即送分,顺便说一下,这些天,我一直比较忙,上网的时间可能会少一点,
还请多多谅解。
 
F1Book是干什么的,望高手赐教
 
加分了!!
谢谢,各位老少爷们。
 
谢谢,加分!!!
 
后退
顶部