Форум: "Система";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
ВнизРабота с SysTray Найти похожие ветки
← →
Zergling (2002-07-23 09:32) [0]Господа, помогите!!! У меня проблема SysTray.
1. Приложение работает в SysTray и в отдельном потоке производит копирование файлов по сетке. После копирвания файлов в потоке и восстановления приложения из Tray на форме не видны ProgressBar, не могу кликнуть мышей по SpeedButton.
2. После тогоже копирования пытаюсь закрыть программу, но вываливается сообщение такого типа:
EOSError
A call to an OS function failed
3. При попытке выхода из Windows прога не хечет закрываться, как послать ей сообщение, что система завершает работу и проге нужно закрыться.
{ тот самый поток }
Type
TCopyThread=class(TThRead)
Protected
Procedure Execute;override;
end;
procedure TCopyThread.Execute;
begin
CopyFiles(ListCopyFile,ListDir);
end;
{ вызываю поток так }
Copir:=TCopyThread.Create(False);
{ Процедура создания каталогов }
Procedure DirCreate(FullPath:String);
Var I:Word;
NewDir:String;
begin
For i:=1 to Length(FullPath) do
begin
if FullPath[i]="\" then
begin
NewDir:=Copy(FullPath,1,I-1);
CreateDir(NewDir);
end;
end;
CreateDir(FullPath);
end;
{ Процедура копирования }
{ CopyFiles(полное имя файла, путь к каталогу) }
Procedure CopyFiles(SrcName,DestPath:array of string);
var
SrcFile, DestFile: File;
BytesRead, BytesWritten, TotalRead: Integer;
Buffer: array[1..500] of byte;
FSize, I: Integer;
Begin
for i:=0 to High(SrcName) do
begin
DirCreate(DestPath[I]); // Создаем каталог
AssignFile(SrcFile, SrcName[I]);
AssignFile(DestFile, DestPath[I]+"\"+"toto");
Reset(SrcFile, 1);
try
Rewrite(DestFile, 1);
try
try
TotalRead := 0;
FSize := FileSize(SrcFile);
repeat
try
BlockRead(SrcFile, Buffer, SizeOf(Buffer), BytesRead);
except
on EInOutError do
Begin
MessageDlg("Ошибка копирования "+SrcName[I],mtError,[mbOk],0);
End;
end;
if BytesRead > 0 then
begin
BlockWrite(DestFile, Buffer, BytesRead, BytesWritten);
if BytesRead <> BytesWritten then
MessageDlg("Ошибка копирования "+SrcName[I],mtError,[mbOk],0)
else begin
TotalRead := TotalRead + BytesRead;
end;
end
until BytesRead = 0;
except
Erase(DestFile);
raise;
end;
finally
CloseFile(DestFile);
end;
finally
CloseFile(SrcFile);
end;
end;
end;
← →
Zergling (2002-07-24 07:35) [1]Проблема в компоненте трея. Форма становится неактивной когда я пользуюсь PopupMenu. Как мне првильно обработать менюшку. Могу выслать исходный код компонента (Дельфи 6).
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c