Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.007 c
1-8057
vich
2002-09-22 16:44
2002.10.03
Как сделать чтобы программа отображала русские знаки?


1-7968
The
2002-09-24 13:28
2002.10.03
Вопрос, может, в корне глупый, но все-таки.


1-7979
Shadow
2002-09-19 20:52
2002.10.03
Handle


14-8141
Oleg_Gashev
2002-09-07 19:24
2002.10.03
Задачка


1-8049
Карлсон
2002-09-22 15:05
2002.10.03
преобразование времени.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский