| Autor |
Beitrag |
Tony-S
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 05.02.09 15:33
Hallo Community, ich bin gerade dabei eine Art Wordpad zu programmieren.
Funktioniert auch alles wunderbar, das Speichern macht mir aber noch Probleme.
procedure TForm1.Speichern1Click(Sender: TObject);
begin
savedialog1.Options := [ofOverwritePrompt]; // <-- Das hier hätte ich gedacht verhindert, das eine Datei doppelt da ist.
savedialog1.Filter:='rtf files (*.rtf)|*.rtf';
if savedialog1.Execute=true then
//RichEdit1.Lines.SaveToFile(SaveDialog1.Filename); // so hätte ich gedacht ist es richtig, da das nicht ganz funktioniert hab ich es erstmal so gelöst
-->
RichEdit1.Lines.SaveToFile('Notiz.rtf');
end;
Könnt ihr mich auf meinen Denkfehler hinweisen ^^? viel kann ja nicht falsch sein.
|
|
hazard999
      
Beiträge: 162
Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
|
Verfasst: Do 05.02.09 15:35
Du meinst überschreiben?
wie wärs mit FileExists?
_________________ MOV EAX, Result;MOV BYTE PTR [EAX], $B9;MOV ECX, M.Data;MOV DWORD PTR [EAX+$1], ECX;MOV BYTE PTR [EAX+$5], $5A;MOV BYTE PTR [EAX+$6], $51;MOV BYTE PTR [EAX+$7], $52;MOV BYTE PTR [EAX+$8], $B9;MOV ECX, M.Code;MOV DWORD PTR [EAX+$9], ECX
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 05.02.09 15:39
ofFileMustExist heißt es übrigens ^^, naja es soll mich halt Fragen ob ich die Datei die auch so heißt löschen will, wie es auch üblich ist.
Wollte halt den Namen selber vergeben, so das die Datei nicht immer Notiz heißt, und da hakt es noch 
|
|
AnyKey
      
Beiträge: 26
|
Verfasst: Do 05.02.09 15:47
Hi,
du musst erst prüfen ob die Datei schon existiert, so wie hazard999 schon sagte. Das machst du über die Funktion FileExists in etwa so:
if FileExists('Notiz.rtf') then
begin
... hier kommt dann das hin was er machen soll wenn es die Datei schon gibt.
end;
vor dein Notiz.rtf musst du allerdings noch den Pfad schreiben in dem er suchen soll.
Gruß
AnyKey
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 05.02.09 23:57
Danke schonmal, und wie schreib ich den Dialog um, damit ich eigene Namen vergeben kann? also nicht Notiz.rtf sondern ??
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.02.09 00:09
Tony-S hat folgendes geschrieben : | if savedialog1.Execute=true then
//RichEdit1.Lines.SaveToFile(SaveDialog1.Filename); // so hätte ich gedacht ist es richtig, da das nicht ganz funktioniert |
Erstens ist die erste Zeile falsch, das muss so heißen: Delphi-Quelltext 1:
| if SaveDialog1.Execute then | und zweitens sollte das so eigentlich schon funktionieren.
Was funktioniert denn "nicht ganz"?
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Fr 06.02.09 01:19
Nein falsch ist das nicht, eher egal würde ich meinen, wenn ich die Zeile so schreibe,
und meine Datei auf den Desktop speichere, ist das ganz einfach keine Datei, ich müsste erst "öffnen mit" jeses mal machen um es zu öffnen.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.02.09 01:33
Tony-S hat folgendes geschrieben : | | Nein falsch ist das nicht, eher egal würde ich meinen, wenn ich die Zeile so schreibe, |
Nein, es ist nicht egal, denn es funktioniert ganz einfach nicht immer...
www.delphi-treff.de/...olean-werten/page/4/
Mal abgesehen davon, dass es unlogisch ist, oder sagst du: "Wenn 'draußen regnet es' wahr ist, dann nehme ich den Regenschirm mit."? Nein, du sagst: "Wenn es draußen regnet, dann nehme ich den Regenschirm mit."
Also was gibt es für einen Grund das in Delphi plötzlich anders zu machen? (Von der möglichen Fehlerquelle einmal ganz abgesehen.)
Tony-S hat folgendes geschrieben : | | und meine Datei auf den Desktop speichere, ist das ganz einfach keine Datei, ich müsste erst "öffnen mit" jeses mal machen um es zu öffnen. |
Dann fehlt die Dateierweiterung...
Wenn eine automatisch ergänzt werden soll, wenn im Dialog keine angegeben wird, dann musst du dafür DefaultExt beim SaveDialog entsprechend setzen.
Du solltest zumindest auf deinem Entwicklungs-PC die Dateierweiterungen auch einblenden. Das geht im Windows Explorer unter "Extras --> Ordneroptionen... --> Ansicht --> Erweiterungen bei bekannten Dateitypen ausblenden", das musst du nur deaktivieren.
Denn nur dann siehst du die Erweiterungen wie .rtf usw. auch bzw. siehst, wenn sie fehlen. 
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Fr 06.02.09 23:36
Dann fehlt die Dateierweiterung...
Wenn eine automatisch ergänzt werden soll, wenn im Dialog keine angegeben wird, dann musst du dafür DefaultExt beim SaveDialog entsprechend setzen.
Inwiefern macht man das denn (mit dem Defaultex), ich hätte jetzt angenommen, das dass mit in die Savedialog.options mit reinkommt, ist aber wohl nicht so ^^
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Fr 06.02.09 23:48
DefaultExt ist eine Property der Klasse TSave/TOpenDialog. Also:
Delphi-Quelltext 1:
| SaveDialog1.DefaultExt := ... |
Lässt sich auch direkt im OI setzen. Weitere Infos und ein Beispiel findest Du in Deiner DOH. 
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Fr 06.02.09 23:59
Danke war ja doch relativ "leicht", nur Wissen muss man das erstmal - was ich ja jetzt tue
Damit auch mal seht wobei ihr mir geholfen habt, lad ich es mal mit hoch.
Ein paar Fehler hat es noch aber ^^ da bin ich drann das schaff ich  .
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.02.09 00:07
Die Frage am Ende sollte eher sein, ob gespeichert werden soll. Und wenn ich dann ja wähle und ich im Speichern-Dialog (z.B. ais Versehen) auf Abbrechen drücke, dann sollte nicht geschlossen werden. 
|
|
Tony-S 
      
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Sa 07.02.09 00:16
Da ist natürlich was drann  .
|
|
|