Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 01.07.2019, 13:55   #1
ger555
Новичок
Джуниор
 
Регистрация: 01.07.2019
Сообщений: 1
По умолчанию Не работает сохранение через проводник Win после активации компонента SaveDialog

Всем привет.

Ниже фрагмент кода:

Код:
function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var F : TShFileOpStruct;
begin
  F.Wnd := 0; F.wFunc := FO_COPY;
  FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
  ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
  F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
  result:=ShFileOperation(F) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if savedialog1.execute then begin 
  if not WindowsCopyFile('C:\1.txt', pchar(savedialog1.filename)) then
    ShowMessage('Copy Failed');
end;
end;
При активации компонента SaveDialog копирование через API категорически отказывается работать, причем даже если вызов функции SaveDialog1.execute осуществляется из другой процедуры где-нибудь в программе. Без SaveDialog'a файл льется на ура...

Код:
function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var F : TShFileOpStruct;
begin
  F.Wnd := 0; F.wFunc := FO_COPY;
  FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
  ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
  F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
  result:=ShFileOperation(F) = 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not WindowsCopyFile('C:\1.txt', 'С:\1\') then
    ShowMessage('Copy Failed');
end;
Предполагаю, что в буфере после этого компонента что-то остается. Можете подсказать фрагмент кода, где осуществить выбор директории для копирования можно через SaveDialog, а само копирование провести именно через проводник WIn. (Выбрал директорию, нажал кнопку и пошло копирование с отображением прогресса)

Спасибо.

______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 01.07.2019 в 14:09.
ger555 вне форума   Ответить с цитированием
Старый 01.07.2019, 14:12   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,228
По умолчанию

погодите, а как Вы через savedialog выбираете папку?

поставьте вывод сообщения:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if savedialog1.execute then 
  ShowMessage(savedialog1.filename);
end;
и посмотрите, что там.
Вангую, что там не директория.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 01.07.2019, 14:21   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 4,928
По умолчанию

1.
if not WindowsCopyFile('C:\1.txt', pchar(savedialog1.filename)) then

function WindowsCopyFile(FromFile, ToDir : string) : boolean;

2. if not WindowsCopyFile('C:\1.txt', 'С:\1\') then
if not WindowsCopyFile('C:\1.txt', pchar(savedialog1.filename)) then

C:\1\1\ есть папка
saveDialog1.filename есть файл
Цитата:
(Выбрал директорию, нажал кнопку и пошло копирование с отображением прогресса)
нет выбрал ФАЙЛ в папке.
ExtractFileDir / ExtractFileDir

Цитата:
где осуществить выбор директории для копирования можно через SaveDialog,
function SelectDirectory
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SaveDialog. Повторное сохранение Shouldercannon Общие вопросы Delphi 9 25.03.2015 17:52
Excel и SaveDialog не работает! kta87 Общие вопросы Delphi 1 24.02.2012 08:24
сохранение картинки с компонента Image через SavePictureDialog Karina89 Помощь студентам 5 25.05.2011 21:59
Сохраниение через SaveDialog Asblue Помощь студентам 1 02.12.2010 13:44
Сохранение в savedialog Михаил Юрьевич Общие вопросы Delphi 5 23.10.2009 18:01


03:00.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.