Problem z Savedialog

0

Witam

Problem polega na tym, ze w pewnym miejscu programu uzytkownik MUSI zapisac zmienne z edit'ow do pliku. Sam sposob zapisania opracowalem, ale chodzi mi o to ze gdy wyskoczy savedialog i ktos zamiast kliknac Zapisz walnie w Anuluj to dane sie nie zachowaja... Chcialbym aby kod zapetlal sie do momentu klikniecia zapisz tak aby uniemozliwic anulowanie zapisu.

Probowalem tak:

savedialog1.execute;
if fileexists('c:\mojplik') then;

kod wykonuje sie szybciej niz zapisanie pliku wiec nawet jesli ktos kliknie zapisz to if fileexist wykona sie zanim plik realnie powstanie na dysku

Probowalem tez tak:

repeat savedialog1.execute until savedialog1.execute:=true;

ale taka linia powoduje ze owszem, zapetlenie jest, natomiast kiedy klikniemy Save, to onko pokazuje sie po raz kolejny ..

Pomocy ;-(

0

Możesz spróbować ze znienawidzoną przez programistów procedurą

goto
label SaveAgain;
begin
SaveAgain:
SaveDialog1.Execute;
IF SaveDialog1.FileName = ''' then goto SaveAgain;
end;
0

ja bym to zrobił tak :

var zapisano : Boolean

begin
   Repeat
      zapisano := False;
      if savedialog.execute then
        begin
           // zapis do pliku;
           zapisano := True; 
        end
   Until zapisano;
end

może kodzik trochę przydługawy, ale nie ma goto :-8

0

Tak jest prościej:

var
  Zapisano : Boolean;
begin
  zapisano := false ;
  while not Zapisano do
    Zapisano := savedialog1.execute;
end;
0

to może jeszcze prościej:

while not savedialog1.Execute do;

1 użytkowników online, w tym zalogowanych: 0, gości: 1