Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
ВнизSaveDialog. Как убрать путь? Найти похожие ветки
← →
AL2002 (2002-10-09 19:23) [0]При повторном сохранении файла в окошке SaveDialoga в поле "Имя файла" появляется C:\Path\FileName.txt
Как избавиться от этого бага (или фичи)? Т.е. чтобы было только имя файла. Без пути к нему.
← →
Darlock (2002-10-09 19:30) [1]Динамически создавай диалог.
Щас еще посмотрю чего можно...
← →
Darlock (2002-10-09 19:33) [2]А у меня при повторном и выводится только имя файла, без пути...
Детальнее жалуйся...
← →
Song (2002-10-09 19:41) [3]Очеидно FileName очищать.
← →
AL2002 (2002-10-09 20:01) [4]>Song © (09.10.02 19:41)
>Очевидно, FileName очищать.
Немножко не того, потому что хочется, чтоб пользователь не потел, повторно набирая имя файла или модифицируя его имя.
>Darlock (09.10.02 19:33)
Очень, ЁПРСТ, странно. Все, ЕПРСТ, свойства по умолчанию.
А чё там детальнее. Первый раз сохранил. Назвал файл Вася. Сохранил, скажем, в каталог с:\виндовс\СтартМеню
Когда второй раз жму на кнопку, в которой событие онклик="Иф ОпенДиалог.Ексикьют, тогда...", выводится этот же диалог, но в поле для имени файла есть преждесохранённый файл, но, ЕПРСТ, с полным путём, т.е. с:\виндоус\СтатрМеню\Вася.
Преждесохранённый файл мне нужен, а вот путь к нему — нет.
Чувствую, ЁПРСТ, что точно придётся ФайлНейм чистить.
← →
Song (2002-10-09 20:18) [5]Имя выводится, если каталог в диалоге не тот что в пути, поэтому надо InitialDir=ExtractFileDir(FileName), а FileName:=ExtractFileName(FileName)
← →
AL2002 (2002-10-09 20:24) [6]>Song © (09.10.02 20:18)
Да. А что ж ещё делать.
А можно заодно откинуть и расширение?
← →
Song (2002-10-09 20:26) [7]Вообще по умолчанию файл показывается без расширения, если оно есть в DefaultExt, поэтому можно и расширение срезать.
← →
AL2002 (2002-10-09 20:35) [8]>Song © (09.10.02 20:26)
Эта пакость не сохраняет имя с расширением, если дефолтЭкст пустой. К тому же постоянно сохраняет с одним и тем же расширением, если ДефолтЭкст не пустой.
Пришлось добавить событие ТайпЧейндж, где "иф филтериндекс=1 тогда дефолтэкст=вах".
Так что не прокатит, гадство. Ладно, думаю никто не помрёт, если расширение будет торчать. Ха! Как это не помрёт?
А если раз сохранил, а потом опять сохраняешь и другой формат выбираешь? Вот твою мать. Чё ж делать то?
Блин, надо как-то и расширение отрезАть. Вот только как?
← →
AL2002 (2002-10-09 20:57) [9]Блин, почему в других прогах расширение меняется динамически.
Как они это делают?
← →
alexj (2002-10-09 22:14) [10]ChangeFileExt
← →
Anatoly Podgoretsky (2002-10-09 22:23) [11]AL2002 © (09.10.02 19:23)
Dialog.Filename := ExtractFileName
AL2002 © (09.10.02 20:35)
Это ничего сохранять и не должно, твоя это задача, а для управления свойствами диалога вполне хватает нужных свойств, основные InitialDir, Filename, DefaultExt, filter и Options
AL2002 © (09.10.02 20:57)
они анализируют результаты диалога, OnTypeChange, только что ты будешь делать для сложных фильтров, например *.txt, *.lst
← →
AL2002 (2002-10-09 22:35) [12]Да, ExtractFileName немного помог — убрал нафиг путь к файлу.
Зато расширение осталось, паскуда. Его, наверное, придётся грубо выдернуть. Вместе с точкой.
← →
Anatoly Podgoretsky (2002-10-09 22:44) [13]Dialog.Filename := ChangeFileExt(ExtractFileName(Dialog.Filename,""));:-)
← →
alena.svt (2002-10-09 23:26) [14]function RemoveExt(const FileName: string): string;
begin
if Pos(".",FileName) <> 0 then
Result:= Copy(FileName,1,Pos(".",FileName)-1)
else
Result:=FileName;
end;
Потом
Dialog.Filename:=ExtractFileName(RemoveExt(Dialod.filename));
← →
AL2002 (2002-10-10 18:14) [15]Как в этом сейвдиалоге поменять (или очистить) поле "Имя файла"?
Какую сендмессагу слать?
← →
Best Before 2024 (2002-10-10 18:22) [16]2 alena.svt © (09.10.02 23:26)
А что, в имени файла точки быть не может? ;)
Dialog.Filename:=ExtractFileName(ChangeFileExt(Dialod.filename, ""));
← →
Best Before 2024 (2002-10-10 18:23) [17]2 Anatoly Podgoretsky © (09.10.02 22:44)
Не посмотрел, извините
:))
← →
alena.svt (2002-10-10 22:04) [18]Best Before 2024 (10.10.02 18:22)
Эта функция вылезла совсем из другого разговора с автором ветки
И мы уже посмеялись , что сносит все напрочь. Но вылезла она из того что ваш код ему не поиогал.
Плиз нате если так хотите.
function RemoveFilenameExt(FileName : string) : string;
var Ext : string;
begin
Result := ExtractFileName(FileName);
Ext := ExtractFileExt(FileName);
if Ext <> "" then
Delete(Result, Pos(Ext, Result), Length(Ext));
end;
Dialog.Filename:=ExtractFileName(RemoveFilenameExt(Dialod.filename));
← →
Pumpkin (2002-10-11 11:10) [19]2alena.svt
а если "file.txt.001.txt"?
Надо ChangeFileExt( FileName,".");
← →
Song (2002-10-11 13:17) [20]Действительно, Алён, вариант с вырезом части имени, неправилен, далеко не все люди используют "правильные" имена файлов. Наиболее легко действительно через ChangeFileExt(), но если хочется поизвращаться, тогда можно так:
With SaveDialog1 Do FileName:=StringReplace(FileName,ExtractFileExt(FileName),"",[rfReplaceAll]);
← →
REA (2002-10-11 13:20) [21]А разрешить менять текущий каталог если во флагах компонента?
← →
Best Before 2024 (2002-10-11 13:30) [22]alena.svt © (10.10.02 22:04)
>>Плиз нате если так хотите.
S := ExtractFileName(RemoveFilenameExt("AAA.CCC.BBB.CCC"));
Спасибо :)))
И зачем городить целую свою функцию?
С уважением,
← →
AL2002 (2002-10-11 14:26) [23]Всё это фигня. Вот Фотошоп при сохранении может менять расширение файла сразу же, как только пользователь это расширение меняет. Не лохи, значит, его делали.
← →
Song (2002-10-11 14:31) [24]2AL2002 © (11.10.02 14:26)
А в чём проблема-то?
← →
Best Before 2024 (2002-10-11 14:34) [25]>>Вот Фотошоп при сохранении может менять расширение файла сразу >>же, как только пользователь это расширение меняет
Тогда фотошоп и вызывай!
← →
AL2002 (2002-10-11 14:40) [26]>Song © (11.10.02 14:31)
Вот здесь AL2002 © (09.10.02 20:35)
>Best Before 2024 (11.10.02 14:34)
Брык, моя радость. Вот уж да то да.
← →
Song (2002-10-11 14:46) [27]Подождите, дык какая празница какой DefaultExt. Ведь файл-то сохраняете Вы, а не TSaveDialog?! Поэтому какое имя зададите такое и будет.
← →
AL2002 (2002-10-11 14:54) [28]>Song © (11.10.02 14:46)
Смотрите, имя файла — SSS.TXT. Я меняю расширение на BMP, а файл такой же и остаётся — SSS.TXT
В фотошопе он сразу же меняется на SSS.BMP
Вот.
← →
Song (2002-10-11 14:56) [29]Дык это ж очевидно: TSaveDialog.onTypeChange
← →
AL2002 (2002-10-11 15:04) [30]>Song © (11.10.02 14:56)
Знаю. Но он меняет тип в памяти, а не визуально.
А я хочу, чтобы и в памяти, и чтоб видно сразу было, какое расширение будет.
← →
Song (2002-10-11 15:08) [31]Во первых это событие, оно ничего не меняет, оно возникает при изменении типа файла. А менять должны Вы.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.008 c