Главная страница
    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.006 c
3-7816
SteelHorse
2002-09-12 10:20
2002.10.03
Кодировки в dBase-файлах, импорт в Office


14-8177
Сергей Суровцев
2002-09-06 20:14
2002.10.03
Народ, американский флаг никто не брал?


6-8087
skeeper
2002-08-02 13:48
2002.10.03
Заполнение формы


14-8142
MAXHO
2002-09-08 23:29
2002.10.03
Нужен учебник по делфи.


3-7792
Uliana
2002-09-11 15:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский