Mam taki kawałek kodu:
procedura odczyt;
var
FileStream : TFileStream;
i : integer;
begin
FileStream := TFileStream.Create('KAT.ini', fmOpenRead);
FileStream.ReadComponent(Image2);
FileStream.ReadComponent(pNoweGUI);
for i:=0 to ComponentCount - 1 do
if Components[i] is TSpeedButton then
if Copy(TSpeedButton(Components[i]).Name, 0, 5) <> 'Speed' then
FileStream.ReadComponent(TSpeedButton(Components[i]));
for i:=0 to ComponentCount - 1 do
if Components[i] is TLabel then
if TLabel(Components[i]).Tag <> 0 then
FileStream.ReadComponent(TLabel(Components[i]));
FileStream.Free;
end;
procedura zapis;
var
FileStream : TFileStream;
i : integer;
begin
if FileExists('Kat.ini') then * jezeli istnieje plik
FileStream := TFileStream.Create('Kat.ini', fmOpenWrite)
else * otworz plik tylko do zapisu
FileStream := TFileStream.Create('Kat.ini', fmCreate); * w przeciwnym wypadku stworz plik
FileStream.WriteComponent(Image2);
FileStream.WriteComponent(pNoweGUI);
for i:=0 to ComponentCount - 1 do
if Components[i] is TSpeedButton then
if Copy(TSpeedButton(Components[i]).Name, 0, 5) <> 'Speed' then
FileStream.WriteComponent(TSpeedButton(Components[i]));
for i:=0 to ComponentCount - 1 do
if Components[i] is TLabel then
FileStream.WriteComponent(TLabel(Components[i]));
FileStream.Free; * zwolnij zmienna
end;
Jeśli plik KAT.INI próbuje otwierać dwóch użytkowników jednocześnie to dostaje error.
Jak się przed tym zabezpieczyć? a może w kodzie jest coś nie tak.
Z góry dziękuję.