Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Вниз

В чем error? 


Schummi   (2002-03-30 08:12) [0]

function FileOperation(FileListBox:TFileListBox;ToPath:string;Action:integer):boolean;
{копирование, перемешение и удаление}
var SHFO: TSHFileOpStruct;
i,c : integer;
FromPath,st,fn : string;
begin
with SHFO do begin
wnd := Application.Handle;
wFunc := Action;
FromPath:= "";
c:=FileListBox.Items.Count-1;
for i:=0 to c do
begin
st:=FileListBox.Items.Strings[i];
Fn:=FavorPath+Form1.ListBox1.Items.Strings[Form1.ListBox1.ItemIndex]+st;
if FileListBox.Selected[i] then
FromPath:=FromPath+Fn+#0;
end;
{FromPath := FromPath+#0;}
pFrom := PChar(FromPath);
pTo := PChar(ToPath);
fFlags := FOF_ALLOWUNDO;
end;
Result := SHFileOperation(SHFO)=0;
end;

...

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var T:Integer;Selected:String;FileL:TFileListBox;
begin
FileL:=Source as TFileListBox;
T:=FileListBox1.TopIndex;
Selected:=FavorPath+ListBox1.Items.Strings[(Y div ListBox1.ItemHeight)+ListBox1.topindex];
ShowMessage(Selected);
case CheckListBox1.Checked[5] of
True:FileOperation(FileL,Selected,FO_MOVE);
False:FileOperation(FileL,Selected,FO_COPY);
end;
FileListBox1.Update;
FileListBox1.TopIndex:=t;
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:="Всего файлов в этой папке: "+IntToStr(FileListBox1.Items.Count);
end;

Заранее спасибо!



Eug201   (2002-03-30 10:44) [1]

Schummi: Признаюсь честно: так неохота вникать - напиши хоть в чем проблема.



rog   (2002-03-30 10:51) [2]

Посмотри пример в папке delphi/Demos/doc/fi*/

в юните Futils написано несколько функций, для копирования, переименования, удаления и.т.п файлов.



Anatoly Podgoretsky   (2002-03-30 11:10) [3]

Как минимум в этом

pFrom := PChar(FromPath);
pTo := PChar(ToPath);



Schummi   (2002-03-30 15:51) [4]

Выдается ошибка - "Не удается скопировать файл. Ошибка файловой системы(1026).



Schummi   (2002-03-30 15:53) [5]

Дело все вот в чем: Имеется ни форме ListBox с папками. В него из FileListBox перетаскиваются файлы и они должны методами Windows либо копироваться, либо перемещаться, а вылетает ошибка!



Anatoly Podgoretsky   (2002-03-30 16:08) [6]

Ну в чем проблема, используй SHFileOperation, не умеешь с ней работать, используй что попроще, например CopyFile/MoveFile



Schummi   (2002-03-31 09:44) [7]

2Anatoly Podgoretsky То тогда ещё надо проверять наличие файла в той папке...



Anatoly Podgoretsky   (2002-03-31 09:57) [8]

Естественно, но с SHFileOperation у тебя же не получается!



Schummi   (2002-03-31 11:31) [9]

В пргограмме есть ещё и функция копирования выделенных файлов в выбранную папку. Но хочется упростить использование, понимаешь? Да и потом, чего пристал? Мот, посмотрел бы, сам нашел бы ошибку? А?



Schummi   (2002-03-31 15:26) [10]

Мот, кто знает, че за ошибка такая - "Не удается скопировать файл. Ошибка файловой системы(1026).



Anatoly Podgoretsky   (2002-03-31 15:31) [11]

Ты хочешь, чтобы я за тебя написал программу?
Я тебе привел две ошибки для начала, ты исправил код, как он теперь у тебя выглядит?.



Anatoly Podgoretsky   (2002-03-31 15:46) [12]

В принципе это не ошибка, ошибка в другом, неинициализирована структура SHFO
А 1026 означает недопустимые параметры



Schummi   (2002-04-02 07:46) [13]

А как тогда быть? Я просто прошу тя мне помочь! И вовсе для ентого не надо за меня прогу писать!



Anatoly Podgoretsky   (2002-04-02 13:51) [14]

Так проиничиализируй SHFO



Schummi   (2002-04-02 21:04) [15]

А как это? (Тяжело в ученье - легко в бою!)



Anatoly Podgoretsky   (2002-04-03 11:24) [16]

Ты смотрел в хелпе описание структуры?
Так вот там не только три используемых тобой поля, но и еще есть, как ты думаешь какое у них значение?
Не знаешь, так присвой этим полям нулевые значения.



Schummi   (2002-04-04 07:56) [17]

Присвоить каким полям нулевое значение?



Anatoly Podgoretsky   (2002-04-04 09:14) [18]

Полям SHFO, тип которой TSHFileOpStruct
Инициализировать нужно ВСЕ поля, а не только три, у тебя же они черт знает какое значения имеют, от булды.



Schummi   (2002-04-06 07:46) [19]

Да, но эта же процедура участвует в копировании, когда просто нажимают кнопочку, и все работает!
procedure TForm1.CopyClick(Sender: TObject);
//копирование
var
i,t:integer;
Selected,Dir:string;
begin
i:=FileListBox1.SelCount;
if i=0 then
begin
MessageDlg("Нечего копировать!",mtWarning,[mbOK],0);
exit;
end;
if CheckListBox1.Checked[3] then Dir:=FavorPath else Dir:="";
if not SelectDirectory("Выберите папку для копирования в неё",Dir,Selected) then exit;
t:=FileListBox1.TopIndex;
if Selected[Length(Selected)]<>"\" then Selected:=Selected+"\";
FileOperation(FileListBox1,Selected,FO_COPY);
FileListBox1.Update;
FileListBox1.TopIndex:=t;
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:="Всего файлов в этой папке: "+IntToStr(FileListBox1.Items.Count);
end;



Schummi   (2002-04-07 08:32) [20]

Не молчите, плз!



Schummi   (2002-04-07 21:06) [21]

Ну, пожалуйста!



Schummi   (2002-04-13 06:57) [22]

Все, разобрался. Всем спасибо!




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.75 MB
Время: 0.104 c
14-81060          bos                   2002-03-20 09:11  2002.04.25  
минимальные требования IB6?


7-81089           SoftOne               2002-01-30 02:11  2002.04.25  
I/O error, 32


1-80990           volodya_              2002-04-12 15:00  2002.04.25  
Как сделать чтобы при нажатии на форме стандартной


3-80795           Draculenok            2002-03-21 12:54  2002.04.25  
Вопрос по QReporty!!!!!!!!


4-81104           Romul                 2002-02-18 12:29  2002.04.25  
Как воостановить подключение к сетевому диску?