| Autor |
Beitrag |
ConditionZero
      
Beiträge: 190
Win XP
Delphi 7 PE, C++ (Dev-C++), HTML+PHP (Dreamweaver MX), JavaScript(MS FrontPage)
|
Verfasst: Di 03.04.07 19:05
tach,
möcht in meine form ein SaveDialog aufrufen der auf Button1.Click aufgehen soll.
Delphi-Quelltext 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
|
|
Fighter#1
      
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
|
Verfasst: Di 03.04.07 19:30
Probiers so :
Delphi-Quelltext 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
|
|
ConditionZero 
      
Beiträge: 190
Win XP
Delphi 7 PE, C++ (Dev-C++), HTML+PHP (Dreamweaver MX), JavaScript(MS FrontPage)
|
Verfasst: Di 03.04.07 19: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?
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Di 03.04.07 19: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.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Fighter#1
      
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
|
Verfasst: Mi 04.04.07 11: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'; Delphi-Quelltext 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
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Mi 04.04.07 12: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...
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Mi 04.04.07 12: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:
Delphi-Quelltext 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
|
|
Mindforce
      
Beiträge: 358
Win XP Pro / MCE, Win 98, Slax (Linux)
Delphi 07 PRO, Delphi 3+7 (mit Prdx)
|
Verfasst: Mi 04.04.07 12:35
HI,
erstell doch einfach erstmal ein SaveDialog in der Liste "Dialoge".
Dann einfach den Filter im OM ändern und dann
Delphi-Quelltext
Mindforce
_________________ Our force; in mind.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 04.04.07 21: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... 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Mi 04.04.07 22: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
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mi 04.04.07 22: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)
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 04.04.07 23: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...  |
Beantwortet das deine Frage, Blackheart? 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 05.04.07 08: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...  |
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) 
|
|