Řešim problém jak udělat aby při pokusu o uložení souboru proběhla kontrola zda již soubor neexistuje nebo není-li otevřen... Podle helpu jsem to sesmolil takto:

Kód:
procedure TForm1.UlozClick(Sender: TObject);
var JmenoSouboru:string;
    index1,index2:byte;
    Tabulka:TextFile;

begin
  If SaveDialog1.Execute then
    begin
      JmenoSouboru:=SaveDialog1.FileName;
      If FileExists(SaveDialog1.FileName) then
        begin
          If (FileOpen(SaveDialog1.FileName, fmOpenWrite or fmShareDenyNone	)>0) then
            begin
              If (MessageDlg('Soubor již existuje, přepsat?',mtConfirmation, [mbYes, mbNo],0))=mrYes then
                begin
                  index1:=1;
                  index2:=2;
                  AssignFile(Tabulka,SaveDialog1.FileName);
                  ReWrite(Tabulka);
                  ZapisDoSouboru(Tabulka,index1);
                  WriteLn(Tabulka);
                  WriteLn(Tabulka);
                  ZapisDoSouboru(Tabulka,index2);
                  CloseFile(Tabulka);
                end
              else
                begin
                  MessageDlg('Soubor neuložen',mtInformation, [mbOk],0);
                end;
            end
          else
            begin
              MessageDlg('Soubor je otevřen, zavřete jej nebo změnte název ukládaného souboru a opakujte akci',mtInformation, [mbOk],0);
            end;
        end
      else
        begin
          index1:=1;
          index2:=2;
          AssignFile(Tabulka,SaveDialog1.FileName);
          ReWrite(Tabulka);
          ZapisDoSouboru(Tabulka,index1);
          WriteLn(Tabulka);
          WriteLn(Tabulka);
          ZapisDoSouboru(Tabulka,index2);
          CloseFile(Tabulka);
        end;
    end;
end;
Funguje to až na to, že když soubor existuje a chci ho přepsat tak to spadne na radku s ReWrite(Tabulka); a hodi to hlasku:
Kód:
Project Project1.exe raised exception class EInOutError with message 'I/O error 32'. Process stopped. Use Step or Run to continue.
Mám tedy ten soubor před uložením smazat? To by ho ale ReWrite měl přepsat sám ne?