Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / запрет на изменение FileName в SaveDialog / 25 сообщений из 30, страница 1 из 2
23.05.2012, 11:34
    #37807397
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
Подскажите пожалуйста, какой функцией в SaveDialog запретить изменение имени файла, которое вормируется программно?
чтобы пользователь не мог не дописать не удалить символы, не изменить

при сохранении имени в фильтр всеравно можно изменить, в опциях тоже нет специальной функции.

у меня написано так: (но не работает)

SD.FileName := 'test_'+CBSh1.Text+'_'+Ed1.Text+'_'+Daten[1]+Daten[2]+Daten[4]+Daten[5]+Daten[7]+Daten[8]+Daten[9]+Daten[10]+'.xls';
SD.Filter := SD.FileName;
[img=]
XL.ActiveWorkBook.SaveAs(SD.FileName);
...
Рейтинг: 0 / 0
23.05.2012, 11:47
    #37807434
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
nilanerdaПодскажите пожалуйста, какой функцией в SaveDialog запретить изменение имени файла, которое вормируется программно?
чтобы пользователь не мог не дописать не удалить символы, не изменить

Тогда надо показывать юзеру не диалог сохранения ФАЙЛА, а диалог ВЫБОРА ПАПКИ.
И всё.
...
Рейтинг: 0 / 0
23.05.2012, 11:53
    #37807444
xen2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
а) игнорировать введенное имя: ExtractFilePath(SD.FileName)+MyFileName
б) использовать диалог выбора папки , а не SaveDialog
...
Рейтинг: 0 / 0
23.05.2012, 11:54
    #37807447
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
так тогда вместо кнопки сохранить будет кнопка открыть
...
Рейтинг: 0 / 0
23.05.2012, 11:56
    #37807451
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
и что там в коде писать? как о диалоге для открытия сохранять?
...
Рейтинг: 0 / 0
23.05.2012, 12:03
    #37807472
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
nilanerdaтак тогда вместо кнопки сохранить будет кнопка открыть
nilanerdaи что там в коде писать? как о диалоге для открытия сохранять?

Мож, поделишься такой забойной травой?
...
Рейтинг: 0 / 0
23.05.2012, 12:06
    #37807484
запрет на изменение FileName в SaveDialog
Если я правильно понял, она в конце концов из экселя сохраняет.
Не ну в принципе конечно можно readonly сделать, но ну его нафиг.
Офисов, ВинОсей всяких поразвелось

Чето какие то задачи у девушки совсем не студенческие
...
Рейтинг: 0 / 0
23.05.2012, 12:09
    #37807493
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
с диалогом выбора папки то же самое
...
Рейтинг: 0 / 0
23.05.2012, 12:19
    #37807521
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
nilanerdaтак тогда вместо кнопки сохранить будет кнопка открытьво-первых, будет кнопка ОК. во-вторых, это можно пофиксить . в-третьих, при желании можно попытаться намудохать рабочий вариант с диалогом выбора файла. в-четвертых, я знаю некоторые программы, в которых выбор папки происходит с помощью диалога выбора файла о_О, там вместо Открыть/Сохранить написано Выбрать папку (пример - uTorrent при создании торрент-файла).

Как это сделано - я и сам не прочь узнать, т.к. для выбора папки диалог открытия файла удобнее, имхо, чем дерево с папками)) перечитать все доки по OpenFileName-функции я чето не смог :)
...
Рейтинг: 0 / 0
23.05.2012, 12:22
    #37807535
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
fd00chКак это сделано - я и сам не прочь узнать, т.к. для выбора папки диалог открытия файла удобнее, имхо, чем дерево с папками)) перечитать все доки по OpenFileName-функции я чето не смог :)похоже, там наговнили кучу из CDM_HIDECONTROL + CDM_SETCONTROLTEXT + CDN_INCLUDEITEM
...
Рейтинг: 0 / 0
23.05.2012, 12:35
    #37807579
запрет на изменение FileName в SaveDialog
Эй теоретики, так я все таки не понял.
Этот диалог из экселя выскочил ?, и она показала совсем не тот кусок кода?

От этого очень сильно зависит возможные пути решения задачи.
а то тут гопнег Леха уже начал намудохивать диалоги вовсю
...
Рейтинг: 0 / 0
23.05.2012, 12:39
    #37807601
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
Диалоги о сохраненияхтак я все таки не понял.
Этот диалог из экселя выскочил ?ога. новый Excel 2012 как раз такой тип файлов прописывает в диалоге))

Диалоги о сохраненияха то тут гопнег Леха уже начал намудохивать диалоги вовсю интересно ж. меня всегда убивала ущербность стандартного SHBrowseForFolder...
...
Рейтинг: 0 / 0
23.05.2012, 12:45
    #37807616
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
Этот диалог не из экселя, а SaveDialog
...
Рейтинг: 0 / 0
23.05.2012, 12:46
    #37807618
запрет на изменение FileName в SaveDialog
fd00ch,
Меня эта хрень очень сильно смущает:
Код: pascal
1.
XL.ActiveWorkBook.SaveAs(SD.FileName); 



Размышления вслух:
А если ее диалог не из экселя...
У Рей Конопка(raize) вроде как свои диалоги были, там вроде как можно было делать все что угодно.
...
Рейтинг: 0 / 0
23.05.2012, 12:47
    #37807622
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
а название файла из программы добавляется, и надо, чтобы оно таким же и оставалось
...
Рейтинг: 0 / 0
23.05.2012, 12:49
    #37807628
запрет на изменение FileName в SaveDialog
nilanerdaЭтот диалог не из экселя, а SaveDialog
Запуск диалога, выполняется методом Execute , у тебя этого не видно.
Ты нас не путай
...
Рейтинг: 0 / 0
23.05.2012, 12:51
    #37807636
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
Daten := DateToStr(Date);

sd.InitialDir := GetDirect + '\ExcelReports';
sd.FileName := 'test_'+CBSh1.Text+'_'+Ed1.Text+'_'+Daten[1]+Daten[2]+Daten[4]+Daten[5]+Daten[7]+Daten[8]+Daten[9]+Daten[10]+'.xls';
// if AnsiCompareStr(sd.FileName,buf) <> 0 then sd.FileName := buf;

buf := sd.FileName;
if sd.Execute then begin
v := 0;
vv := 0;
w := 1;
XL.ActiveWorkBook.Saveas(sd.FileName);
end;
...
Рейтинг: 0 / 0
23.05.2012, 13:09
    #37807680
xen2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
я же тебе предложил ExtractFilePath!!!
Код: pascal
1.
2.
3.
4.
MyFileName := 'test_'+CBSh1.Text+'_'+Ed1.Text+'_'+Daten[1]+Daten[2]+Daten[4]+Daten[5]+Daten[7]+Daten[8]+Daten[9]+Daten[10]+'.xls';
...
if SD.Execute then
  XL.ActiveWorkBook.Saveas(ExtractFilePath(SD.FileName)+MyFileName)
...
Рейтинг: 0 / 0
23.05.2012, 13:27
    #37807732
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
спасибо, сейчас попробую, я просто не знала где это написать
...
Рейтинг: 0 / 0
23.05.2012, 13:27
    #37807734
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
xen2, изящно - дать юзеру выбор и следом наплевать на него))
...
Рейтинг: 0 / 0
23.05.2012, 13:31
    #37807749
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
дату в имени файла правильно писать как yyyymmdd, для правильной сортировки имен файлов.
соответственно, и всякие другие цифры, время, и т.п. должны идти после даты, а не до.
...
Рейтинг: 0 / 0
23.05.2012, 13:44
    #37807789
Sergij Gromov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
kdvдату в имени файла правильно писать как yyyymmdd, для правильной сортировки имен файлов.
соответственно, и всякие другие цифры, время, и т.п. должны идти после даты, а не до.

главное чтобы системные функции возвращения даты не юзались, ибо заменит юзер в ОС разделитель на "/" - и привет всем стараниям
...
Рейтинг: 0 / 0
23.05.2012, 13:54
    #37807827
nilanerda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
получилось, спасибо xen2
...
Рейтинг: 0 / 0
23.05.2012, 14:06
    #37807855
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрет на изменение FileName в SaveDialog
nilanerdaс диалогом выбора папки то же самоеSelectDirectory. И не нужно обманывать пользователей
...
Рейтинг: 0 / 0
23.05.2012, 16:52
    #37808254
запрет на изменение FileName в SaveDialog
Это наверное никому нахрен не пригодится, но тему все таки нужно раскрыть.
Раз уж зашел разговор...
И умнее этого, чето ни чо не придувается

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
procedure TForm1.Button1Click(Sender: TObject);
begin
  SaveDialog1.FileName:='test.txt';
  SaveDialog1.OnShow:=MySaveDialogShow;
  SaveDialog1.Execute;
end;

procedure TForm1.MySaveDialogShow(Sender: TObject);
var
  h: THandle;
  Buf: array[0..255] of Char;
  S: String;
  L: Integer;
begin
  h:=SaveDialog1.Handle;
  while h<>0 do
  begin
    h:=GetWindow(h,GW_HWNDPREV);
    L:=GetClassName(h,@Buf,SizeOf(Buf));
    SetString(S,PChar(@Buf),L);
    if S='ComboBoxEx32' then
    begin
      h:=GetWindow(h,GW_CHILD);
      h:=GetWindow(h,GW_CHILD);
      SendMessage(h,EM_SETREADONLY,Ord(True),0);
      Break;
    end;
  end;
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / запрет на изменение FileName в SaveDialog / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]