Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe: Wie fragen, ob man speichern will? (https://www.delphipraxis.net/128159-hilfe-wie-fragen-ob-man-speichern-will.html)

coolio 25. Jan 2009 13:08


Hilfe: Wie fragen, ob man speichern will?
 
Guten Tag

Habe ein Problem. Und zwar habe ich einen kleinen Editor programmiert und möchte nun, dass wenn man auf den Button "Neu" klickt, gefragt wird ob man vorher noch speichern möchte oder eben nicht. Habe es bis jetzt nur mit Showmessage hinbekommen, aber da kann man ja nur ok klicken. Habe es auch schon mit einer neuen Form probiert, doch von der neuen Form aus kann ich irgendwie nicht mehr auf die Prozdeduren von meiner anderen Form zugreifen.
Hoffe ihr könnt mir helfen, Danke im Vorraus!

MFG


[edit=Matze]Im Titel "specihern" durch "speichern" ersetzt, damit man über die Suche leicht fündig wird. MfG, Matze[/edit]

Die Muhkuh 25. Jan 2009 13:09

Re: Hilfe: Wie fragen, ob man specihern will?
 
Hi,

schau Dir mal die Delphi-Referenz durchsuchenMessageBox an, mit der kannst Du sowas machen.

mkinzler 25. Jan 2009 13:10

Re: Hilfe: Wie fragen, ob man specihern will?
 
Vielliecht mit einer MessageBox oder einem MessagDlg

craash 25. Jan 2009 13:26

Re: Hilfe: Wie fragen, ob man specihern will?
 
hi,

ich hab das in einem kleinen netzwerkchat mal so gelöst

Delphi-Quellcode:

procedure speichern;
begin
     if
       form1.savedialog1.execute  //auf form1 liegt eine TSaveDialog-Komponente
     then
         try
            form1.mem1.lines.savetofile(form1.savedialog1.filename);
         except
            showmessage('Fehler beim Speichern des Verlaufs!');
     end;
end;


[...]
if mem1.lines.text <> '' //der chatverlauf wird in einem memo angezeigt
     then
         if messagedlg('Achtung! Sie sind im Begriff das Programm zu verlassen. Wollen sie den Chatverlauf zuvor speichern?', mtwarning, [mbyes, mbno], 0) = mryes
         then
           begin
             speichern;  //procedure speichern aufrufen
             close;
           end
         else close
else close;

ist evtl etwas umständlich aber ich hoffe es hilft dir :D


mfg

mkinzler 25. Jan 2009 13:29

Re: Hilfe: Wie fragen, ob man specihern will?
 
Warum eine freie Prozedur und keine Methode?

craash 25. Jan 2009 13:32

Re: Hilfe: Wie fragen, ob man specihern will?
 
sollte ja nur ein gutgemeinter vorschlag sein von noob zu noob :(

mkinzler 25. Jan 2009 13:34

Re: Hilfe: Wie fragen, ob man specihern will?
 
Dann fasse meine Nachfrage als gutgemeinten Verbesserungsvorschlag auf. :zwinker:

coolio 25. Jan 2009 13:35

Re: Hilfe: Wie fragen, ob man specihern will?
 
Danke für die Antworten, aber entweder bin ich blind, oder es gibt keine Messagebox bei mir. Ich finde nix :( @crash: Danke dafür, aber ich versuche es erst lieber selbst zu lösen;)

Hansa 25. Jan 2009 13:39

Re: Hilfe: Wie fragen, ob man specihern will?
 
Das ist eine WinAPI-Funktion. Die Unit Windows muss deshalb in der uses-Liste stehen.

DeddyH 25. Jan 2009 13:52

Re: Hilfe: Wie fragen, ob man specihern will?
 
Oder Application.MessageBox nehmen, die Unit Forms ist ja vermutlich bereits eingebunden.

sx2008 25. Jan 2009 13:52

Re: Hilfe: Wie fragen, ob man specihern will?
 
Zitat:

Zitat von coolio
... und möchte nun, dass wenn man auf den Button "Neu" klickt, gefragt wird ob man vorher noch speichern möchte oder eben nicht.

Wenn du deinen Editor als MDI-Anwendung programmierst, dann ist der Benutzer nicht gezwungen seine aktuelle Datei zu speichern oder zu verwerfen.
Aus Sicht des Benutzer ist das wesentlich angenehmer und produktiver, wenn er mehrere Dateien nebeneinander editieren kann.
In den Beispielen von Delphi müsste übrigens ein kleiner Editor (MDI-Anwendung) dabei sein.
Dort kannst du abschauen, wie das geht.

coolio 25. Jan 2009 17:01

Re: Hilfe: Wie fragen, ob man specihern will?
 
Verstehe ich alles nicht. Kann mir das einer genau erklären? Oder wie löse ich mein Problem jetzt am einfachsten?

mkinzler 25. Jan 2009 17:04

Re: Hilfe: Wie fragen, ob man specihern will?
 
Was verstehst du nicht?

DeddyH 25. Jan 2009 17:07

Re: Hilfe: Wie fragen, ob man specihern will?
 
Ich nehme mal an, dass Du ein Merkmal hast, an dem Du erkennst, ob sich irgendetwas geändert hat und nenne das jetzt mal Modified.
Delphi-Quellcode:
procedure TDeinForm.ButtonNeuClick(Sender: TObject);
begin
  if Modified then
    case MessageBox(Handle,'Möchten Sie die Änderungen speichern?','Bestätigen',MB_YESNOCANCEL or MB_ICONQUESTION) of
      idYes  : Speichern; //musst Du natürlich implementieren
      idNo   : NeuesDokument; //siehe oben
      idCancel: exit; //gar nichts tun
    end;
  //weiterer Code
end;

coolio 25. Jan 2009 18:12

Re: Hilfe: Wie fragen, ob man specihern will?
 
Zitat:

Zitat von DeddyH
Ich nehme mal an, dass Du ein Merkmal hast, an dem Du erkennst, ob sich irgendetwas geändert hat und nenne das jetzt mal Modified.
Delphi-Quellcode:
procedure TDeinForm.ButtonNeuClick(Sender: TObject);
begin
  if Modified then
    case MessageBox(Handle,'Möchten Sie die Änderungen speichern?','Bestätigen',MB_YESNOCANCEL or MB_ICONQUESTION) of
      idYes  : Speichern; //musst Du natürlich implementieren
      idNo   : NeuesDokument; //siehe oben
      idCancel: exit; //gar nichts tun
    end;
  //weiterer Code
end;

Danke! Hat funktioniert ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz