Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В чем error? [D5, Win95/98]


Страницы:   1 2

Schummi ©   (2002-03-30 08:12:00) 

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;

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


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

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


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

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


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

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


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

Да, но эта же процедура участвует в копировании, когда просто нажимают кнопочку, и все работает!
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;


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

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


Schummi   (2002-04-04 07:56:00) [6]

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


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

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


Schummi   (2002-04-02 21:04:00) [8]

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


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

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


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

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


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

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


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

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


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

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


Schummi   (2002-03-31 11:31:00) [14]

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


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

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


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

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


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

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


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

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


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

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


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

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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо