Autor Beitrag
schweiky
Hält's aus hier
Beiträge: 5

Win xP

BeitragVerfasst: Do 05.05.11 21:07 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 5

Win xP

BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Fr 06.05.11 20:48 
Bitte verwende die Delphi-Tags um den Quellcode formatiert anzuzeigen. ;)

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

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
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 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. :)

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

Win xP

BeitragVerfasst: 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