Avatar billede decko Nybegynder
09. oktober 2003 - 21:00 Der er 4 kommentarer og
1 løsning

Åbn filer

Jeg har et problem med mit tekstprogram. Det skal spørge om man vil gemme før man åbner en opdialog. Jeg kan godt få det til at virke hvis der er rettet, ellers ikke. Hvad er der galt med min kode?

if rettet then
begin
Beep;
  Case MessageBox(Handle, 'Vil du gemme det nuværende dokument?.', 'Freepad dokument',  MB_ICONQUESTION



+MB_YESNOCANCEL) of
        idYes:Speedbutton3Click (Sender);
        idNo:if Opendialog1.Execute then
        begin        Memo1.Lines.LoadFromFile(Opendialog1.FileName); end;
        idCancel:  Exit;

else
Opendialog1.Execute;
end;
Avatar billede Slettet bruger
09. oktober 2003 - 21:04 #1
if rettet then
begin
  Beep;
  Case MessageBox(Handle, 'Vil du gemme det nuværende dokument?.', 'Freepad dokument',  MB_ICONQUESTION+MB_YESNOCANCEL) of
        idYes:Speedbutton3Click (Sender);
end;
if Opendialog1.Execute then
begin
Memo1.Lines.LoadFromFile(Opendialog1.FileName); end;
Opendialog1.Execute;
Avatar billede Slettet bruger
09. oktober 2003 - 21:06 #2
Ups..

  if rettet then
  begin
    Beep;
    if MessageBox(Handle, 'Vil du gemme det nuværende dokument?.', 'Freepad dokument',  MB_ICONQUESTION+MB_YESNOCANCEL) = idYes then Speedbutton3Click (Sender);
  end;
  if Opendialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  end;
Avatar billede Slettet bruger
09. oktober 2003 - 21:10 #3
if Memo1.Modified then
  begin
    Beep;
    Case MessageBox(Handle, 'Vil du gemme det nuværende dokument?.', 'Freepad dokument',  MB_ICONQUESTION+MB_YESNOCANCEL) of
        IDYES:Speedbutton3Click (Sender);
        IDCANCEL:Exit;
    end;
  end;
  if Opendialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  end;
Avatar billede decko Nybegynder
10. oktober 2003 - 07:30 #4
Hvis man vil gemme, åbner gemdialogen. Hvis man så trykker annuller i den, åbner en gang til for at gemme det dokument man lige har åbnet.
Avatar billede Slettet bruger
10. oktober 2003 - 07:36 #5
Prøv det her istedet:

function Gem: Boolean;
begin
Result := False;
if Form1.SaveDialog1.Execute then
begin
  Form1.Memo1.Lines.SaveToFile(Form1.SaveDialog1.FileName);
  Result := True;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    if Memo1.Modified then
  begin
    Beep;
    Case MessageBox(Handle, 'Vil du gemme det nuværende dokument?.', 'Freepad dokument',  MB_ICONQUESTION+MB_YESNOCANCEL) of
        IDYES: if not Gem then Exit;
        IDCANCEL:Exit;
    end;
  end;
  if Opendialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  end;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester