Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SaveDialog. Как убрать путь? [D6, Win95/98]


Страницы:   1 2

AL2002 ©   (2002-10-09 19:23:00) 

При повторном сохранении файла в окошке SaveDialoga в поле "Имя файла" появляется C:\Path\FileName.txt
Как избавиться от этого бага (или фичи)? Т.е. чтобы было только имя файла. Без пути к нему.


Song   (2002-10-11 15:08:00) [1]

Во первых это событие, оно ничего не меняет, оно возникает при изменении типа файла. А менять должны Вы.


AL2002   (2002-10-11 15:04:00) [2]

>Song © (11.10.02 14:56)
Знаю. Но он меняет тип в памяти, а не визуально.
А я хочу, чтобы и в памяти, и чтоб видно сразу было, какое расширение будет.


Song   (2002-10-11 14:56:00) [3]

Дык это ж очевидно: TSaveDialog.onTypeChange


AL2002   (2002-10-11 14:54:00) [4]

>Song © (11.10.02 14:46)
Смотрите, имя файла — SSS.TXT. Я меняю расширение на BMP, а файл такой же и остаётся — SSS.TXT
В фотошопе он сразу же меняется на SSS.BMP

Вот.


Song   (2002-10-11 14:46:00) [5]

Подождите, дык какая празница какой DefaultExt. Ведь файл-то сохраняете Вы, а не TSaveDialog?! Поэтому какое имя зададите такое и будет.


AL2002   (2002-10-11 14:40:00) [6]

>Song © (11.10.02 14:31)
Вот здесь AL2002 © (09.10.02 20:35)


>Best Before 2024 (11.10.02 14:34)
Брык, моя радость. Вот уж да то да.


Best Before 2024   (2002-10-11 14:34:00) [7]

>>Вот Фотошоп при сохранении может менять расширение файла сразу >>же, как только пользователь это расширение меняет

Тогда фотошоп и вызывай!


Song   (2002-10-11 14:31:00) [8]

2AL2002 © (11.10.02 14:26)
А в чём проблема-то?


AL2002   (2002-10-11 14:26:00) [9]

Всё это фигня. Вот Фотошоп при сохранении может менять расширение файла сразу же, как только пользователь это расширение меняет. Не лохи, значит, его делали.


Best Before 2024   (2002-10-11 13:30:00) [10]

alena.svt © (10.10.02 22:04)
>>Плиз нате если так хотите.

S := ExtractFileName(RemoveFilenameExt("AAA.CCC.BBB.CCC"));

Спасибо :)))
И зачем городить целую свою функцию?
С уважением,


REA   (2002-10-11 13:20:00) [11]

А разрешить менять текущий каталог если во флагах компонента?


Song   (2002-10-11 13:17:00) [12]

Действительно, Алён, вариант с вырезом части имени, неправилен, далеко не все люди используют "правильные" имена файлов. Наиболее легко действительно через ChangeFileExt(), но если хочется поизвращаться, тогда можно так:
With SaveDialog1 Do FileName:=StringReplace(FileName,ExtractFileExt(FileName),"",[rfReplaceAll]);


Pumpkin   (2002-10-11 11:10:00) [13]

2alena.svt
а если "file.txt.001.txt"?
Надо ChangeFileExt( FileName,".");


alena.svt   (2002-10-10 22:04:00) [14]

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));


Best Before 2024   (2002-10-10 18:23:00) [15]

2 Anatoly Podgoretsky © (09.10.02 22:44)
Не посмотрел, извините
:))


Best Before 2024   (2002-10-10 18:22:00) [16]

2 alena.svt © (09.10.02 23:26)
А что, в имени файла точки быть не может? ;)
Dialog.Filename:=ExtractFileName(ChangeFileExt(Dialod.filename, ""));


AL2002   (2002-10-10 18:14:00) [17]

Как в этом сейвдиалоге поменять (или очистить) поле "Имя файла"?
Какую сендмессагу слать?


alena.svt   (2002-10-09 23:26:00) [18]

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));


Anatoly Podgoretsky   (2002-10-09 22:44:00) [19]

Dialog.Filename := ChangeFileExt(ExtractFileName(Dialog.Filename,""));:-)


AL2002   (2002-10-09 22:35:00) [20]

Да, ExtractFileName немного помог — убрал нафиг путь к файлу.
Зато расширение осталось, паскуда. Его, наверное, придётся грубо выдернуть. Вместе с точкой.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо