SaveDialog – âèçóàëüíûé êîìïîíåíò. Îí èñïîëüçóåòñÿ äëÿ âûáîðà ïîëüçîâàòåëåì èìåíè ôàéëà ïðåäíàçíà÷åííîãî äëÿ ñîõðàíåíèÿ.
Îñíîâíûå ñâîéñòâà:
– Title – èñïîëüçóåòñÿ äëÿ óñòàíîâêè çàãîëîâêà äèàëîãà;
–FileName – âûäàåò èìÿ ôàéëà, çàäàííîå ïî óìîë÷àíèþ äëÿ ñîõðàíåíèÿ (èíà÷å, ïîëå èìåíè ôàéëà áóäåò ïðîáåëîì);
– DefaultExt – îïðåäåëÿåò ðàñøèðåíèå, êîòîðîå áóäåò äîáàâëÿòüñÿ ê ïîëüçîâàòåëüñêîìó èìåíè ôàéëà, åñëè îíî ïå÷àòàåòñÿ âðó÷íóþ (à íå âûáèðàåòñÿ èç ñïèñêà ôàéëîâ). Åñëè ýòèõ ôèëüòðîâ ðàñøèðåíèé äâà èëè áîëüøå, òî ýòî çíà÷åíèå èãíîðèðóåòñÿ. Îíè äîëæíû áûòü ïîìåùåíû â ðàñêðûâàþùèéñÿ ñïèñîê çíà÷åíèé ðàñøèðåíèÿ;
– Filter – ïîçâîëÿåò îòîáðàæàòü è âûáèðàòü òîëüêî íåêîòîðûå òèïû ôàéëîâ. Òåêñò ôèëüòðà îòîáðàæàåòñÿ â íèñïàäàþùåì ïîëå, ÷óòü íèæå ïîëÿ èìåíè ôàéëà. Ñëåäóþùèé ïðèìåð âûáèðàåò òîëüêî òåêñòîâûå ôàéëû:
saveDialog.Filter := 'Text files only|*.txt';
Ðàñêðûâàþùèéñÿ ñïèñîê ïîêàçûâàåò òåêñò, íàõîäÿùèéñÿ ïåðåä ðàçäåëèòåëåì |. Ïîñëå ðàçäåëèòåëÿ ìîæíî îïðåäåëèòü ìàñêó, êîòîðàÿ âûáèðàåò ôàéëû:
saveDialog.Filter := 'Text files|*.txt|Word files|*.doc';
– FilterIndex – îïðåäåëÿåò, êàêîé ôèëüòð íèñïàäàþùåãî ïîëÿ áóäåò îòîáðàæåí ïåðâûì.
– InitialDir – óñòàíàâëèâàåò íà÷àëüíûé êàòàëîã â äèàëîãå.
Äëÿ îòîáðàæåíèå äèàëîãà âûçûâàåì ìåòîä TSaveDialog:
if saveDialog.Execute then ...
Execute âîçâðàòèò èñòèíó, åñëè ïîëüçîâàòåëü âûáðàë ôàéë è íàæàë OK.
ÏÐÈÌÅÐ: Ñîõðàíåíèå ñîäåðæèìîãî êîìïîíåíòà Memo1 â ôàéë ÷åðåç êîìïîíåíò SaveDialog1
if SaveDialog1.Execute then
begin
AssignFile(f,SaveDialog1.FileName);
rewrite(f);
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
CloseFile(f);
end;
|