Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Dateityp im SaveDialog auswählen


schweiky - Do 05.05.11 21:07
Titel: Dateityp im SaveDialog auswählen
Hallo liebes Forum,

ich möchte ein StringGrid als .txt oder als .csv Datei abspeichern können. Dazu soll man bei geöffnetem SaveDialog die untere Scrollbox "Dateityp:" aufklappen und die beiden Dateitypen auswählen können. Hierfür habe ich 2 Filter gesetzt mit

SaveDialog1.Filter:='Text- Dateien (*.txt)|*.txt|CSV- Dateien (*.csv)|*.csv';

und habe erwartet, dass nun in der "Dateityp:"-Scrollbox .txt und .csv angeboten werden ... aber, nix, das Feld bleibt leer.

Was mache ich falsch?

Gruß vom schweiky


jaenicke - Do 05.05.11 21:13

Dann rufst du das wohl nicht auf bevor du den Dialog anzeigst. :nixweiss:

Warum setzt du den Filter eigentlich nicht einfach zur Designzeit im Objektinspektor? ;-)


schweiky - Fr 06.05.11 20:46

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Danke für die rasche Antwort.

Ich habe das, glaube ich, richtig platziert:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.speichern(Sender: TObject);
var zeile: string;
var Tdatei: textfile;
var i: integer;
begin
 if SaveDialog1.Execute then
 begin
  if druck=1 then
  begin
   SaveDialog1.Filter:='Text- Dateien (*.txt)|*.txt|CSV- Dateien (*.csv)|*.csv';
   AssignFile(Tdatei,SaveDialog1.Filename);
   Rewrite(Tdatei);
   with StringGrid1 do
   begin
    writeln(TDatei,'HSP-Übersetzung durch FPA-Helfer');
    for i:=1 to lines-1 do
    begin
     zeile:=Cells[0,i]+';'+Cells[1,i]+';'+Cells[2,i]+';'+Cells[3,i]+';'+Cells[4,i]+';'+Cells[5,i]+';';
     writeln(Tdatei,zeile);
    end;
   end;
   CloseFile(TDatei);
  end;
 end;
end;



Warum werden die Einrückungen nicht übernommen, wenn ich den Text einfüge? Ich glaube, man kann trutzdem erkennen, worum es geht...

Ich setze den Filter im Objektinspektur nicht, weil ich ich im Programmablauf an verschiedenen Stellen den Speicherdialog aufrufe und denn jeweils andere Kombinationen von Dateitypen zu Auswahl stellen möchte.

Gruß vom Schweiky

Moderiert von user profile iconGausi: B- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: U- durch undefined-Tags ersetzt
Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.


Dude566 - Fr 06.05.11 20:48

Bitte verwende die Delphi-Tags um den Quellcode formatiert anzuzeigen. ;)

[*delphi][*/delphi], ohne die Sterne.


Gausi - Fr 06.05.11 20:50

Im Execute wird der Dialog aufgerufen, den Filter setzt du erst danach. Richtig wäre: Erst Filter setzen, dann Execute. :)


schweiky - Mo 09.05.11 16:18

Hallo liebes Forum,

danke für die Tipps bzgl. des Forenbeitrags-Editors und des Save Dialogs.
Der Filter muss natürlich vor dem Aufruf gesetzt werden. Funktioniert jetzt prima.

Gruß vom schweiky