Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-81108
Vladimir Bolotin
2002-01-10 20:33
2002.04.25
прозрачность в win2k


3-80820
VAleksey
2002-04-05 12:41
2002.04.25
Возвращение к теме удаления (ODAC)


1-80960
EsKor
2002-04-12 09:00
2002.04.25
Блокируется вывод в Edit в цикле


1-80925
Fareader
2002-04-11 11:23
2002.04.25
Русский язык в F1Book


7-81087
Ura
2002-01-23 12:46
2002.04.25
Определение принтера в системе (Повтор)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский