Форум: "Основная";
Текущий архив: 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]Все, разобрался. Всем спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c