CYFROWY BARON • PROGRAMOWANIE • Zobacz wÄ…tek - SaveDialog rozszerzenie

SaveDialog rozszerzenie

dział ogólny

SaveDialog rozszerzenie

Nowy postprzez rafalskraba » piÄ…tek, 1 marca 2013, 15:29

Witam

Jak zapisać plik za pomocą komponentu SaveDialog plik, wraz rozszerzeniem.
Mozna zapisać ustawiając w inspektorze obiektów DefaultExt np .txt

Kod: Zaznacz cały
..... SaveToFile(SaveDialog1+DefaultExt);


Ja chcę natomiast zapisać rozszerzenie wybrane z listy zdefiniowanych rozszerzeń we właściwościach Filter, tak aby wybrane z listy rozwijalnej zostało przypisane nazwie pliku.

Pozdrawiam

Rafał
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
PodziÄ™kowaÅ‚ : 2
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows XPFirefox

Re: SaveDialog rozszerzenie

Nowy postprzez Cyfrowy Baron » piÄ…tek, 1 marca 2013, 15:52

Musisz ustawić filtry w SaveDialog1, ale to już chyba wiesz?! Nie bardzo rozumiem z czym masz problem, przecież po wywołaniu okna dialogowego SaveDialog1 wybierasz typ rozszerzenia , podajesz nazwę pliku i klikasz Zapis:

KOD cpp:   •  UKRYJ  •
if( SaveDialog1->Execute() ) /* przywołanie okna dialogowego */
{
 ...SaveToFile( SaveDialoig1->FileName );
}


To wszystko. Nie trzeba niczego więcej.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: SaveDialog rozszerzenie

Nowy postprzez rafalskraba » piÄ…tek, 1 marca 2013, 22:18

Witaj,

dokładnie tak mam zrobione

Kod: Zaznacz cały
Lista->SaveToFile( SaveDialog1->FileName);


ale plik zapisuje siÄ™ bez rozszerzenia.

Nie chce wpisywać domyslnego rozszerzenia, a przy zapisie rozszeczenie nie zostaje dodane do pliku

pozdrawiam

Rafał
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
PodziÄ™kowaÅ‚ : 2
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows 7Firefox

Re: SaveDialog rozszerzenie

Nowy postprzez Cyfrowy Baron » sobota, 2 marca 2013, 01:29

Musisz dodać domyślne rozszerzenie inaczej nie będzie działać prawidłowo. Domyślne rozszerzenie niczego nie zmienia, to nie musi być nawet rozszerzenie występujące w filtrach, ale coś tam być musi. To domyślne rozszerzenie nie ma wpływu na to jak plik zostanie zapisany, gdyż po wybraniu filtra i tak zostanie zapisany z wybranym filtrem. Jeżeli filtra nie wybierzesz to plik zostanie zapisany z pierwszym filtrem na liście gdyż decyduje o tym nie właściwość DefailtExt lecz FilterIndex. To prawdopodobnie błąd biblioteki w środowisku C++Builder XE2, gdyż np. podobny komponent, wyglądający lepiej LMDSaveDialog już tego nie wymaga.

Proponuję przed przywołaniem okna dialogowego wyczyścić FileName:

KOD cpp:   •  UKRYJ  •
SaveDialog1->FileName = "";
 if( SaveDialog1->Execute() ) Memo1->Lines->SaveToFile( SaveDialog1->FileName );


To oczywiście niczego nie zmienia jeśli chodzi o DefaultExt. Ja tam na ogół wstawiam gwiazdkę.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: SaveDialog rozszerzenie

Nowy postprzez rafalskraba » sobota, 2 marca 2013, 13:43

Witaj

dokładnie jest tak jak opisałeś. A co ciekawe w wystarczy w metodzie DefaultExt wpisać samą gwizdkę i też działa poprawnie.
Ten dziwny przypadek występuje też we wcześniejszych wersjach RADStudio

Pozdrawiam

Rafal
"Jednym z rodzajów szczęśliwości jest zdolność podejmowania dobrych decyzji."

- Platon-
Avatar użytkownika
rafalskraba
Intelektryk
Intelektryk
 
Posty: 122
Dołączył(a): czwartek, 5 marca 2009, 10:20
PodziÄ™kowaÅ‚ : 2
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Windows 7 x64
Kompilator: RAD Studio XE2 Update 4 HotFix 1
SKYPE: rafal.skraba
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 46 gości