Autor Beitrag
Thomas78
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 04.11.04 08:48 
Hallo Leute,

habe ein Problem mit SaveDialog. Ich möchte die ausgewählte Extension an den Dateinamen anhängen, wenn der eingegebene Dateiname keine Erweiterung hat.

z.B.: *.csv *.txt *.xlc als Auswahl
wurde jetzt der Dateiname 'test' eingegeben und in der Combobox *.txt gewählt, so soll die Datei auch als test.txt gespeichert werden. Ich bekomme aber nicht raus, was für ne Extension gewählt wurde. FilterIndex wird ja nur beim Öffnen des Dialogs ausgelesen.
Hat jemand nen Ansatz :?:

MfG

Thomas
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Do 04.11.04 08:55 
Probiers mal mit dem Filterindex. (nicht getestet)
Wenn du weist welcher Filterindex gewählt wurde musst du nur wissen was für eine Extension der gewisse Filterindex hat.

Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Do 04.11.04 12:27 
Eigentlich hat doch jeder Dateiname aus einem SaveDialog immer eine Endung, oder liege ich da falsch?

_________________
Linux und OpenSource rulez!
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Do 04.11.04 12:59 
wenn du "DefaultExt" ausfüllst, macht er das automatisch :roll:

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
Thomas78 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 05.11.04 10:31 
Ich glaube ihr habt mich falsch verstanden :(

1. Ich habe doch mehrere auswählbare Extensionen zur Verfügung. Da hilft mir ein Eintrag der DefaultExt wenig, denn dann wird ja in jedem Fall (wenn der eingegebende Dateiname keine Endung hat) die DefaultExt angehangen.

2. Die Eigenschaft FilterIndex ist nicht verwertbar, denn sie wird bei der Auswahl einer Extension nicht gesetzt. Sie wird lediglich beim Öffnen des Dialoges ausgelesen. Damit wird die Extension festgelegt, die beim Öffnen des Dialoges zuerst aktiv ist.

Hinweis: Ich nutze Delphi 5Prof.. Es kann natürlich sein, dass die Dialoge bei höheren Versionen anders reagieren. Bitte mal überprüfen und mit meinen Aussagen vergleichen.

Hat sonst noch jemand nen Lösungsvorschlag für mein Problem?

Danke für eure Mühen

Thomas
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 05.11.04 11:21 
Also. Wenn ich
ausblenden Delphi-Quelltext
1:
2:
opendialog1.Execute;
showmessage(inttostr(opendialog1.FilterIndex));
mache, dann wird nach schließen des opendialogs immer der korrekte Filterindex angezeigt. Ich habe allerdings D6 Pers, aber ich denke mal, dass auch bei D5 das so funktioniert. Alles andere wäre irgendwie sinnfrei...

zu deinem Problem: Überprüfe, ob der Filename eine Endung enthält. Da gibts ne Routine zu. Wenn ja -> alles in Ordnung.
Wenn nein ->
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
// muss du noch syntaktisch korrigieren ;)
Case filterindex of
     1: filename:=filename+'.txt';
     2: filename:=filename+'.tmp';
     3: filename:=filename+'.dat'
end;

_________________
We are, we were and will not be.
Thomas78 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 05.11.04 15:57 
Hat sich alles geklärt.

Es lag am AgSaveDialog, den ich gewähnlich benutze. Den hatte ich mal runtergeladen (Delphi-Forum oder Delphi-Praxis). Er sollte wie ein normaler SaveDialog arbeiten. Zusätzlich stellt er sich aber auf das vorhandene Betriebsystem ein und zeigt sich beispielsweise unter WinXP nicht mehr in dem Win98 Design sondern mit dem "schönen" XP-Aussehen.

Aber naja, die Schönheit muss natürlich der Funktionalität weichen. Also raus damit.

Danke nochmal für eure Hinweise.