Autor Beitrag
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 162

Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.02.09 00:09 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden Delphi-Quelltext
1:
if SaveDialog1.Execute then					
und zweitens sollte das so eigentlich schon funktionieren.

Was funktioniert denn "nicht ganz"?
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.02.09 01:33 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
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.)

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Fr 06.02.09 23:48 
DefaultExt ist eine Property der Klasse TSave/TOpenDialog. Also:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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 :D .
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Sa 07.02.09 00:16 
Da ist natürlich was drann :D .