プログラムの複数のインスタンスで特定のテーブルを開くのに問題があります。ユーザーが現在のテーブル (データ ディクショナリの一部 - FileForm.ImagesTable) を開いて古いテーブル (データ ディクショナリに含まれていない) に置き換えられるようにしようとしています。プログラムの1つのインスタンスではうまく機能しますが、別のインスタンスで同じファイルを同時に開こうとすると. 次のエラーが表示されます。
FileName.ADT このファイルは使用中です。新しい名前を入力するか、別のプログラムで開いているファイルを閉じます。
以下は、テーブル名とデータパスを選択したテーブルに再割り当てしたコードです。
OpenDialog1.FileName := '*.adt';
OpenDialog1.Filter := 'Software 6.0 Files (*.adt)|*.adt|Software 5.x Files (*.dbf)|*.dbf';
OpenDialog1.InitialDir := DataPath;
if OpenDialog1.Execute then
begin
Str1 := Trim(OpenDialog1.FileName);
if Length(Str1) = 0 then
Exit;
DSImage.Enabled := False;
with FileForm.ImagesTable do
begin
Active := False;
AfterOpen := FileForm.TableOther.AfterOpen;
DataBaseName := ExtractFilePath(Str1);
TableName := ExtractFileName(Str1);
Active := True;
end;
end;
編集* Advtantage 8.1 を使用すると、ダイアログ ウィンドウでエラーが発生するため、Windows エラーのようです。はい、Exclusive は false に設定されています。
なぜこれが起こっているのか、そしてこれをどのように解決できるのかについてのご意見をお待ちしております。
ありがとう