Bonjour,

Le programme ci-après réagit différemment selon qu'il est compilé avec Delphi7
ou avec BDS.2006 VCL.NET.

a) Compilation avec Delphi7
La seconde tentative d'ouverture de fichier provoque le message:
"Impossible d'ouvrir le fichier....car ce fichier est utilisé par un autre
utilisateur..
C'est normal, c'est le but recherché.

b) Compilation avec BDS.2006 VCL.NET
Dans ce cas, les deux ouvertures successives du fichier ne provoquent
pas d'erreur.
Est-ce un "Bug" dans BDS.2006 VCL.NET ou une erreur de ma part, ou
autre chose ?

Merci d'avance à celui qui connaît la réponse.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}  //$R *.nfm en VCL.NET
 
Var Projet,Chemin:string;
    F2:TFilesTream;
 
procedure CreerFichier;
begin
F2:=TFileStream.Create(chemin,fmCreate OR fmShareExclusive);
F2.Free;
end;
 
procedure OuvrirFichier;
begin
F2:=TFileStream.Create(chemin,fmOpenReadWrite OR fmShareExclusive);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Projet:='Dossier01';
chemin:='C:\'+Projet+'.FX1';
CreerFichier;
OuvrirFichier;
showmessage('Après ce message, seconde tentative d''ouverture du fichier');
OuvrirFichier;
showmessage('Après seconde ouverture');
F2.Free;
end;
 
end.