看看我给的这一段代码procedure TfrmOleMDIParent.FormShow(Sender: TObject);
var
i: Integer;
memStr: TMemoryStream;
begin
frmGenReportRWer:=nil;
Rights:='R';
DocModel:=''; if ParamCount>1 then
begin
bLocalFile:=false;
bNewReport:=true;
if ParamStr(1)='readreport' then bNewReport:=false;
filename:=ParamStr(2);
Rights:=ParamStr(3);
if (Rights='W') or (Rights='w') then
begin
for i:=0 to MainMenu1.Items[0].Count-1 do
begin
MainMenu1.Items[0].Items[i].Enabled:=true;
end;
end;
end; if ParamCount<=1 then
begin
bNewReport:=true;
ShowMessage('外部未传入远程存放路径信息!');
end; if bNewReport then
begin
memStr:=TMemoryStream.Create;
memStr:=aBDSrv.BlobData2Stream(filename);
if memStr.Size>0 then bNewReport:=false;
memStr.Free;
if bNewReport then
begin
frmReportChoose:=TfrmReportChoose.Create(Self);
frmReportChoose.ShowModal;
DocModel:=frmReportChoose.SelectedURL;
frmReportChoose.Free;
end;
end; frmGenReportRWer:=TfrmGenReportRWer.Create(Self);
end;
var
i: Integer;
memStr: TMemoryStream;
begin
frmGenReportRWer:=nil;
Rights:='R';
DocModel:=''; if ParamCount>1 then
begin
bLocalFile:=false;
bNewReport:=true;
if ParamStr(1)='readreport' then bNewReport:=false;
filename:=ParamStr(2);
Rights:=ParamStr(3);
if (Rights='W') or (Rights='w') then
begin
for i:=0 to MainMenu1.Items[0].Count-1 do
begin
MainMenu1.Items[0].Items[i].Enabled:=true;
end;
end;
end; if ParamCount<=1 then
begin
bNewReport:=true;
ShowMessage('外部未传入远程存放路径信息!');
end; if bNewReport then
begin
memStr:=TMemoryStream.Create;
memStr:=aBDSrv.BlobData2Stream(filename);
if memStr.Size>0 then bNewReport:=false;
memStr.Free;
if bNewReport then
begin
frmReportChoose:=TfrmReportChoose.Create(Self);
frmReportChoose.ShowModal;
DocModel:=frmReportChoose.SelectedURL;
frmReportChoose.Free;
end;
end; frmGenReportRWer:=TfrmGenReportRWer.Create(Self);
end;
我这几天看了一下classes中的源代码,基本了解清楚了这些类的用法,但是还是又一些技巧性的问题尚待解决,例如:
1.能否直接使用write函数存储整个类.如:sampleclasss.FStream.write(sampleclass,sizeof(sampleclass));
2.如果想编写一个控件能够直接读写固定格式的文件该怎样做,为什么按照预定格式顺序使用seek, read语句无法读出文件内容.
3.我想了解文件存储在硬盘上和在内存中是否有不同,如有不同是什么?
谢谢各位大虾指点!