![]() |
Problem mit nem OpenDialog ^^
Hi,
ich möchte gerne per OpenDialog eine Datei öffnen und dann den dateinamen benutzen etwas verunstalten und in eine ähnlich heissende datei wieder reinschreiben und die dann speichern aber egal, denn das klappt :) nur wenn man im OD auf abbrechen klickt, speichert der in der zuletzt gespeicherten datei anstelle vom alten dateinamen gar nichts ab... hm... ![]() ich glaub das da oben versteht eh keiner *g*, kann net erklären naja also noch ein versuch *g* man klickt auf öffnen, dann kommt if opendialog.execute then und so weiter, mein programm macht nu den pfad weg, und ändert beim namen mit pfad die extension... dann speichert er die neue datei mit pfad und schreibt da sozusagen den alten dateinamen ohne pfad rein... soweit ok, wenn man das nochmal und nochmal macht wirds immer wieder klappen, nur wenn man auf abbrechen drückt, speichert er in die alte datei einen leeren dateinamen... ich glaub das versteht man besser :/ kann mir jemand helfen? den code stell ich auch mal hier rein....
Code:
ich hab (zu?)viele variablen is aber egal das säuber ich nachher noch...erstmal solls funktionieren
procedure TForm1.ffnen1Click(Sender: TObject);
var dateiname,dateiname2,dateiname3,dateinamemitpfad,dateinamemitpfad3:string; datei:textfile; begin try if open.execute then dateiname:=extractfilename(Open.Filename); assignfile(datei, ChangeFileExt(open.filename,'.cue')); rewrite(datei); write(datei, 'FILE "'); write(datei, dateiname); writeln(datei, '" BINARY'); writeln(datei, ' TRACK 01 MODE1/2352'); write(datei, ' INDEX 01 00:00:00'); flush(datei); closefile(datei); if deutsch1.checked then label3.caption:='Datei erfolgreich gespeichert als:' else label3.caption:='File successfully saved as'; dateiname2:=ChangeFileExt(Open.Filename,'.cue'); label4.caption:=dateiname2; except error:=true; if deutsch1.checked then begin label3.caption:='Fehler aufgetreten... bitte sende eine e-mail mit einer beschreibung'; label4.Caption:='von dem was du grad gemacht hast an [email]KochFolie@web.de[/email]'; end else begin label3.caption:='Error accured... please send an e-mail with a little error report'; label4.caption:='of your actions in it to [email]KochFolie@web.de[/email] (I know my english ;-)'; end; end; if label3.width<label4.width then form1.Width:=label4.width+10 else form1.Width:=label3.width+10; form1.height:=130; dateiname3:=dateiname; dateinamemitpfad3:=dateinamemitpfad; end; falls wer mein problem noch nich kapiert hat :( ich möchte entweder den abbrechen button im OpenDialog deaktivieren (nicht gut) oder ich möchte verhindern dass ein leerer wert in die alte datei geschrieben wird! danke schonmal :roll: |
Re: Problem mit nem OpenDialog ^^
Moin KochFolie,
erst einmal herzlich Willkommen hier in der Delphi-PRAXiS. Zitat:
Dateiname ist eine lokale Variable, deren Wert zu Beginn der Prozedur unbestimmt ist, und nur gesetzt wird, wenn Du beim OpenDialog nicht auf Abbrechen klickst. Ich sehe da zwei Möglichkeiten:
|
Re: Problem mit nem OpenDialog ^^
hehe irgendwie hab ichs hingekriegt :)
hab das try rausgenommen und alles mit if eingeklammert irgendwie läufts jetzt danke :) Zitat:
oh und danke an marco unter mir, dadurch ist es noch kürzer geworden... da hatte ich das begin echt vergessen ich nuss :S danke
Code:
procedure TForm1.ffnen1Click(Sender: TObject);
var dateiname,dateiname2,dateiname3,dateinamemitpfad,dateinamemitpfad3:string; datei:textfile; begin if open.execute then begin dateiname:=extractfilename(Open.Filename); assignfile(datei, ChangeFileExt(open.filename,'.cue')); rewrite(datei); write(datei, 'FILE "'); write(datei, dateiname); writeln(datei, '" BINARY'); writeln(datei, ' TRACK 01 MODE1/2352'); write(datei, ' INDEX 01 00:00:00'); flush(datei); closefile(datei); if deutsch1.checked then label3.caption:='Datei erfolgreich gespeichert als:' else label3.caption:='File successfully saved as'; dateiname2:=ChangeFileExt(Open.Filename,'.cue'); label4.caption:=dateiname2; if label3.width<label4.width then form1.Width:=label4.width+10 else form1.Width:=label3.width+10; form1.height:=130; dateiname3:=dateiname; dateinamemitpfad3:=dateinamemitpfad; end; end; |
Re: Problem mit nem OpenDialog ^^
Zitat:
Wenn Du hinter if open.execute then ein begin setzt (end; nicht vergessen) wird alles nur dann ausgeführt, wenn Du den Dialog mit Öffnen bestätigst.
Delphi-Quellcode:
begin
if open.execute then begin dateiname:=extractfilename(Open.Filename); assignfile(datei, ChangeFileExt(open.filename,'.cue')); ... end; end; |
Re: Problem mit nem OpenDialog ^^
Moin Kochfolie,
Delphi-Quellcode:
und warum nicht, in Anlehnung an Marcos Vorschlag so:
dateiname:='xyz123987zyx5321abgebrochenblubblub';
if open.execute then dateiname:=extractfilename(Open.Filename); if dateiname<>'xyz123987zyx5321abgebrochenblubblub' then begin
Delphi-Quellcode:
if not open.execute then exit;
dateiname:=extractfilename(Open.Filename); |
Re: Problem mit nem OpenDialog ^^
jetzt hab ich mich noch verlesen *alles um-editier* ^^
danke für die hilfe ihr :) :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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