TSaveDialog aufrufen
spacer
Autor Nachricht
ConditionZero
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 190

Win XP
Delphi 7 PE, C++ (Dev-C++), HTML+PHP (Dreamweaver MX), JavaScript(MS FrontPage)
BeitragVerfasst: Di 03.04.07 20:05 
tach,
möcht in meine form ein SaveDialog aufrufen der auf Button1.Click aufgehen soll.

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.SaveAsClick(Sender: TObject);
begin

Create(self:TSaveDialog);
TSaveDialog.Execute;

end;


aber das klappt irgendwie nicht wie ich will, was ist da falsch?

LG
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Di 03.04.07 20:30 
Probiers so :
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
  With TSaveDialog.Create(self) do begin
     If Execute Then begin
       ShowMessage(Filename);
     end;
  end;


Dein Fehler : du hast einen TSaveDIalog einfach so erstellt ohne ihn zu benutzen, TSaveDialog ist nach Create auch noch keine Variable!
Du musst das "kombineren"

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
ConditionZero Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 190

Win XP
Delphi 7 PE, C++ (Dev-C++), HTML+PHP (Dreamweaver MX), JavaScript(MS FrontPage)
BeitragVerfasst: Di 03.04.07 20:39 
ah ok danke hat geklappt,
öhm mal noch so ne frage: kann man die liste im SaveDlg wo de dateityp steht noch benutzen also was reinschreiben?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 03.04.07 20:43 
Ich empfehl dir, mal die Komponente TSaveDialog auf die Form zu ziehen, da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: Mi 04.04.07 12:58 
Warum denn das JayEff???
Man muss nich aufs Formular ziehen, das geht mit Filter so:
Also so "dynamisch" ist das doch viel geschickter!
Filter funktioniert so:
Filter:='Bitmap|*.bmp';
Der User wählt Dateityp Bitmap und sieht alle Dateien mit *.bmp.

Um mehr als einen Dateityp einzutragen einfach mehrere solcher Trennzeichen nutzen:
Filter:='Bitmap|*.bmp|Jpegs|*.jpg';

Und wenn man jetzt noch mehrere Dateiendungen pro Dateityp nutzen woll sieht das so
aus:
Trennzeichen für Endungen ist ein Semikolon
Filter:='Bilder|*.jpg;*.bmp|Lieder|*.mp3;*.wav';

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
  With TSaveDialog.Create(self) do begin
    Filter:='Bilder|*.bmp;*.jpg;*.gif|Lieder|*.mp3;*.wav';  
     If Execute Then begin
       ShowMessage(Filename);
     end;
  end;

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Mi 04.04.07 13:12 
Ich hab heut irgendwie meinen Klugscheißertag...

auf Konstrukte wie 'with TSomeClass.create do' sollte man möglichst verzichten, stattdessen das erzeugte Objekt in eine Variable schreiben und damit arbeiten.

Grund:

Bei einer Erweiterung des Code kann man auch außerhalb des with-Blocks auf das Objekt zugreifen. Ausserdem werden diese with-Geschichten bei längerem Code schnell unübersichtlich.

In unseren Programmierrichtlinien ist das Konstrukt deshalb auch verboten, hat zu oft zu Fehlern geführt wie auch hier, der Dialog wird hier niemals freigegeben und schimmelt im Speicher rum.

Bitte das nicht als Angriff verstehen, nur als Anregung :)

_________________
Bravery calls my name in the sound of the wind in the night...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1571
Erhaltene Danke: 5

Win 7, Win Vista, Win XP, Win 98
TP7, D7, VS 2010 (VB.net), MsSQL (T-SQL), Edit+ (HTML, CSS, PHP, MySQL)
BeitragVerfasst: Mi 04.04.07 13:16 
Nur der Form halber, es ist üblich die Benutzen Filter nochmal in Klammern beim Name aufzuführen.
Ebenfalls wäre eventuell ein "Alle Dateien" sinnvoll.

Es würde dann so aussehen:

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
  With TSaveDialog.Create(self) do begin 
    Filter:='Bilder (*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif|Lieder (*.mp3;*.wav)|*.mp3;*.wav|Alle Dateien (*.*)|*.*';   
     If Execute Then begin 
       ShowMessage(Filename); 
     end
  end

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Mindforce
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 358

Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
BeitragVerfasst: Mi 04.04.07 13:35 
HI,

erstell doch einfach erstmal ein SaveDialog in der Liste "Dialoge".

Dann einfach den Filter im OM ändern und dann

ausblenden Delphi-Quelltext markieren
1:
SaveDialog1.Execute;


Mindforce

_________________
Our force; in mind.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 04.04.07 22:31 
Fighter#1 hat folgendes geschrieben:
Warum denn das JayEff???
Man muss nich aufs Formular ziehen, das geht mit Filter so:
Also so "dynamisch" ist das doch viel geschickter!

Mag ja sein, aber ... :
JayEff hat folgendes geschrieben:
[...], da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.

Übersichtlicher als im Objektinspektor bekommst du selbige nicht aufgelistet, ausserdem sieht man dort, nach welchem Schema man Filter einen String zuweisen muss... :roll:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 715
Erhaltene Danke: 4

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mi 04.04.07 23:08 
und der dialog wird immer noch nicht freigegeben!

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mi 04.04.07 23:19 
Muss Er denn überhaupt selbst erzeugt werden, oder kann man Ihn nicht einfach aufs Formular ziehen !?.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 05.04.07 00:02 
JayEff hat folgendes geschrieben:
Ich empfehl dir, mal die Komponente TSaveDialog auf die Form zu ziehen, da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.


Fighter#1 hat folgendes geschrieben:
Warum denn das JayEff???
Man muss nich aufs Formular ziehen, das geht mit Filter so:
Also so "dynamisch" ist das doch viel geschickter!


JayEff hat folgendes geschrieben:
Mag ja sein, aber ... :
JayEff hat folgendes geschrieben:
[...], da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.

Übersichtlicher als im Objektinspektor bekommst du selbige nicht aufgelistet, ausserdem sieht man dort, nach welchem Schema man Filter einen String zuweisen muss... :roll:


Beantwortet das deine Frage, Blackheart? ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 05.04.07 09:48 
JayEff hat folgendes geschrieben:
JayEff hat folgendes geschrieben:
Ich empfehl dir, mal die Komponente TSaveDialog auf die Form zu ziehen, da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.


Fighter#1 hat folgendes geschrieben:
Warum denn das JayEff???
Man muss nich aufs Formular ziehen, das geht mit Filter so:
Also so "dynamisch" ist das doch viel geschickter!


JayEff hat folgendes geschrieben:
Mag ja sein, aber ... :
JayEff hat folgendes geschrieben:
[...], da siehst du ihre Eigenschaften. Was du suchst, müsste 'Filter' sein.

Übersichtlicher als im Objektinspektor bekommst du selbige nicht aufgelistet, ausserdem sieht man dort, nach welchem Schema man Filter einen String zuweisen muss... :roll:


Beantwortet das deine Frage, Blackheart? ;)


Nein - Ich meinte ConditionZero muss es denn unbedingt ein dynamisch erstellter SaveDialog sein ? (Wenn Ja dann ist meine Frage beantwortet) :wink:
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home