首先要明白一些参数:
fmOpenRead 仅以读访问方式打开
fmOpenWrite 仅以写访问方式打开
fmOpenReadWrite 以读写访问方式打开
fmShareCompat 和FCB打开的方法兼容。不要在跨平台应用程序中使用这个模式
fmShareExclusive 读写访问被拒绝
fmShareDenyWrite 写访问被拒绝
fmShareDenyRead 读访问被拒绝。不要在跨平台应用程序中使用这个模式
fmShareDenyNone 允许其他代码进行完全的访问
要想共享打开文件,相互打开文件的程序不能不能设置互斥的属性,必需兼容模式。
如下例子:
程序A:
procedure TForm1.Button1Click(Sender: TObject);
var
_handle :Integer;
begin
_handle := FileOpen('E:/levi/Code.txt', fmOpenReadWrite or fmShareDenyWrite );
Label1.Caption := IntToStr(_handle);
end;
以读写方式打开文件,其它程序不能写访问
程序B:
procedure TForm1.Button1Click(Sender: TObject);
var
_handle :Integer;
begin
_handle := FileOpen('E:/levi/Code.txt', fmOpenRead or fmShareDenyNone);
Label1.Caption := IntToStr(_handle);
end;
以只读方式打开文件但共享读写,即不会改变其它程序的读写方式