| Autor |
Beitrag |
danielpt
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: 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...
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
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Do 07.08.03 16:26
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
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 07.08.03 16:55
Hi,
ich würde es so machen:
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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: 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... 
_________________ cu daniel
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 07.08.03 17:36
Hi,
mh.. mist
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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: 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
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: 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:
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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: 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!...
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
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 07.08.03 18:33
Hi,
mach's mal so:
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.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Do 07.08.03 18:35
Du solltest vielleicht einen Anfänger zeigen, was, was macht

|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Do 07.08.03 18:40
Hi,
| onlinehome hat folgendes geschrieben: | Du solltest vielleicht einen Anfänger zeigen, was, was macht |
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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: Do 07.08.03 18:59
 Case Abfrage? *gg*
_________________ cu daniel
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Do 07.08.03 19:31
| danielpt hat folgendes geschrieben: | 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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: Do 07.08.03 21:17
 ähmm, zurück zu meiner Frage:
Kann mir jemand denn richtigen, funktionieren Sourcecode geben? (Bitte dieser Case Abfrage...)
please!
thx delphidanielpt
_________________ cu daniel
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: 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 
      
Beiträge: 81
Windows 2000 Professional SP4
D6 Personal
|
Verfasst: Fr 08.08.03 06:48
Sorry, den hab ich übersehen... ^^
thx, der funzt sans problem! 
_________________ cu daniel
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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:
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 S:=SaveDialog1.FileName; if Pos('.rtf',S)=0 then richedit1.lines.savetofile(S+'.rtf'); end; end; RichEdit1.Clear; end; end; |
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|