Autor Beitrag
danielpt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 15:48 
Frage: ich will, dass das Prog den Nutzer fragt (wenn er auf "neues Dokument" klickt) ob er das derzeitige speichern will...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Neu1Click(Sender: TObject);
var
  S: String; 
begin 
  if messageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?', 
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin 
    if savedialog1.execute then 
       begin 
    S:=SaveDialog1.FileName; 
    if Pos('*.rtf',S)=0 then 
       richedit1.lines.savetofile(S+'.rtf'); 
       end 
       else 
       RichEdit1.Clear; 
end; 
end;


In der Version von oben MUSS man aber "JA" wählen, sonst funktioniert das mit dem "neuen Dokument" nicht.

_________________
cu daniel
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 07.08.03 16:26 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Neu1Click(Sender: TObject);
var
  S: String; 
begin 
  if messageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?', 
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin 
    if savedialog1.execute then begin 
      S:=SaveDialog1.FileName; 
      if Pos('.rtf',S)=0 then 
        richedit1.lines.savetofile(S+'.rtf'); 
    end;
  end
  else 
     RichEdit1.Clear; 
end;


Damit sollte es klappen

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 16:55 
Hi,

ich würde es so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Neu1Click(Sender: TObject);
var
  S: String; 
begin 
  if messageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?', 
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin 
    if savedialog1.execute then begin 
      S:=SaveDialog1.FileName; 
      if Pos('.rtf',S)=0 then 
        richedit1.lines.savetofile(S+'.rtf'); 
    end;
  end
  RichEdit1.Clear; 
end;


da man sonst auf "Nein" drücken muß, um ein neues Dokument zu erstellen. (Jetzt müßteste noch nen Abbrechen einbauen ;) )

Au'revoir,
Aya~

PS: danielpt, du solltest mal anfangen deinen Code zu formatieren.. also richtig einzurücken etc, dann hättest du den fehler sicherlich von alleine gefunden ;)

_________________
Aya
I aim for my endless dreams and I know they will come true!
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 17:33 
thx @all: ich habe jetzt CenBells-Variante genommen...

Was anderes: Wie kann ich vermeinden, dass er das auch fragt, selbst wenn "richedit1" leer ist?

JS: if(richedit1 != "") { .. }

Aber das geht ja leider bei Delphi nicht... :D

_________________
cu daniel
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 17:36 
Hi,

mh.. mist :P

Ne, also ernsthaft... nach CenBells Methode wird bei Ja das dokument gespeichert, aber offen gelassen. Bei Nein wird es nich gespeichert und neu gemacht..

Aber schau dir mal andere Programme an, diese haben 3 Buttons:

Ja - Dokument Speichern + Neu
Nein - Dokument nicht Speichern + Neu
Abbrechen - Dokument nicht Speichern + nicht Neu

Ich fände es doof, wenn ich auf "Neues Dokument" klicke, dann gefragt werde "Wollen sie Speichern?" -> "Ja" und dann nochmal auf "Neues Dokument" klicken soll und da dann als Antwort "Nein" wählen muß...;)

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 17:55 
@aya: wie mach ich sowas (mit dem Abbrechen) ?

und

Wie kann ich vermeinden, dass er das auch fragt, selbst wenn "richedit1" leer ist?

_________________
cu daniel
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 18:04 
Hi,

einfach noch ein mbCancel bei der MessageBox als Button dazumachen ;)

Und, damit die frage nur kommt wenn im Richedit was drin steht:

ausblenden Delphi-Quelltext
1:
2:
if RichEdit1.Text<>'' then begin
  [...]


Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 18:24 
thx, wenn ich aber nur "mbCancel" einbauen, löscht er den Ihnalt, wenn ich auf "Abbrechen" klicke bei CenBells Variante trotzdem und bei deiner (Aya) löscht er den Text dafür bei "Nein" nicht!...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Neu1Click(Sender: TObject);
var
  S: String;
begin
 if RichEdit1.Text<>'' then begin
  if messageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?',
      mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrYes then begin
    if savedialog1.execute then begin
      S:=SaveDialog1.FileName;
      if Pos('.rtf',S)=0 then
        richedit1.lines.savetofile(S+'.rtf');
     end;
    RichEdit1.Clear;
  end;
 end;
end;

_________________
cu daniel
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 18:33 
Hi,

mach's mal so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Neu1Click(Sender: TObject);
var
  S: String;
begin
 if RichEdit1.Text<>'' then begin
  case MessageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of
    mrYes: begin
             if savedialog1.execute then begin
               S:=SaveDialog1.FileName;
               if Pos('.rtf',S)=0 then
                 richedit1.lines.savetofile(S+'.rtf');
             end;
             RichEdit1.Clear;
           end;
    mrNo: RichEdit1.Clear;
  end;
 end;
end;


Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Do 07.08.03 18:35 
Du solltest vielleicht einen Anfänger zeigen, was, was macht :mahn:

:wink2:
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 18:40 
Hi,

onlinehome hat folgendes geschrieben:
Du solltest vielleicht einen Anfänger zeigen, was, was macht :mahn:

Mh.. was eine Case Abfrage macht, ließt er am besten in der Hilfe nach (Besser als wie es da geschrieben ist, kann man es nicht erklären ;) ), und wenn er weiß was eine Case Abrafe macht, sollte der rest klar sein :)

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 18:59 
:rofl: Case Abfrage? *gg*

_________________
cu daniel
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Do 07.08.03 19:31 
danielpt hat folgendes geschrieben:
:rofl: Case Abfrage? *gg*


Ohh, ich glaube da habe ich dir was falsch erklärt *schäm*, denn ich denke Aya weiß was CASE ist. Ich wusste gar nicht das es ne Abfrage ist *nochmehrschäm*.
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Do 07.08.03 21:17 
:D ähmm, zurück zu meiner Frage:

Kann mir jemand denn richtigen, funktionieren Sourcecode geben? (Bitte dieser Case Abfrage...)

please!

thx delphidanielpt

_________________
cu daniel
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 07.08.03 21:19 
Hi,

danielpt hat folgendes geschrieben:
Kann mir jemand denn richtigen, funktionieren Sourcecode geben?

Was funktioniert denn an meinem Code von oben nicht???

Zitat:
(Bitte dieser Case Abfrage...)

Hä? *guckt verwirrt*

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
danielpt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81

Windows 2000 Professional SP4
D6 Personal
BeitragVerfasst: Fr 08.08.03 06:48 
Sorry, den hab ich übersehen... ^^ :oops:

thx, der funzt sans problem! ;)

_________________
cu daniel
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 08.08.03 11:24 
ich weiß jetzt nicht ob das problem behoben ist, aber hier nochmal ne variante von mir, wo das mit dem abbrechen noch nich eingebaut ist:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Neu1Click(Sender: TObject); 
var 
  S: String; 
begin 
  if RichEdit1.Text<>'' then begin 
    if messageDlg('Möchtest du das momentane Dokument speichern bevor du ein Neues beginnst?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrYes then begin 
      if savedialog1.execute then begin  // ruft das save dialog auf
        S:=SaveDialog1.FileName; 
        if Pos('.rtf',S)=0 then  richedit1.lines.savetofile(S+'.rtf');  // speichert ab
      end; 
    end;  // Abfrage speichern oder nicht speichern    
    RichEdit1.Clear; 
  end;  // if RichtEdit <> Text
end;

_________________
MFG
Michael Springwald, "kann kein englisch...."