Главная страница
    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
3-7773
Lion
2002-09-13 00:22
2002.10.03
Индексы в FoxPro


3-7852
Guardian
2002-09-11 13:50
2002.10.03
Не передаются параметры в функцию dbiAddIndex


3-7832
Старик
2002-09-12 14:57
2002.10.03
Запрос


4-8238
Yuri Btr
2002-08-15 15:17
2002.10.03
Выбор папки с подпапками


14-8157
MJH
2002-09-07 19:45
2002.10.03
NitroAmp 074XPbeta2 - вышла в свет новая версия





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