Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.25;
Скачать: CL | DM;

Вниз

В чем 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]

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



Страницы: 1 вся ветка

Текущий архив: 2002.04.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
1-80931
Ser_Kham1
2002-04-11 16:02
2002.04.25
создание help файла


7-81093
VS
2002-01-31 09:35
2002.04.25
Как при поиске файла на диске переключиться на следующий диск


3-80805
B_A_V
2002-04-03 17:33
2002.04.25
Использую в таблице тип money, datetime


1-80858
G-ray
2002-04-13 14:57
2002.04.25
Несколько нажатых клавишь.


1-80928
Абдурашид
2002-04-11 10:59
2002.04.25
Помогите сделать