Страница 1 из 1

Загрузка процессора при работе с приложением

Добавлено: 20 апр 2006, 09:37
Пушкин
После 10-15 минут работы с приложением, использующем TTimer и TImage в роли фона форм (хотя, это, наверное, не при чём), загрузка процессора идёт на 98-100%, и сохраняется до перезагрузки компьютера.

Приложение написано мной, использует файловую систему по сети (сервер - на \\server, клиенты - у всех менеджеров, используется один файл базы "dblist.dat" для чтения и записи.

Если запускать приложение не из среды разработки (не из Delphi), то ничего не тормозит...

В чём может быть проблема?

Добавлено: 20 апр 2006, 10:45
Duncon
Ты б чего показал...

Добавлено: 20 апр 2006, 11:01
Пушкин
Ты мне скажи, что ты хотел бы увидеть...

Добавлено: 20 апр 2006, 11:35
Игорь Акопян
может отладчик тупит? если без ИДЕ работает нормально - забить ;)

Добавлено: 20 апр 2006, 12:29
Пушкин
Игорь Акопян, думаю на DCOM и прочую чушь (оно видно с XP несовместимо)...

Вот ещё новая проблема:

if (cmbDataVer.ItemIndex=1) then begin
if (odExcel.Execute) then begin
F := odExcel.Filename;
if (not (FileExists(F))) then goto n;

AssignFile(Text, F);
try
Reset(Text);
except
Showmessage('Âûáðàííûé ôàéë çàíÿò äðóãîé ïðîãðàììîé!');
Exit;
end;
AssignFile(Datafile, FN_DATABASE+'.imp');
Rewrite(Datafile);
while not eof(Text) do begin
// reading data...
ReadLn(Text, Tmp);
Tmp := Trim(Tmp);
// showmessage(tmp);
Excel.Name :=
StringReplace(
StringReplace(Explode(Tmp, ';', 1), '~', ';', [rfReplaceAll]),
'"', '', [rfReplaceAll]);
// if (Name='') then Continue;
Excel.Category := StringReplace(Explode(Tmp, ';', 2), '~', ';', [rfReplaceAll]);
Excel.RukovodName := StringReplace(Explode(Tmp, ';', 3), '~', ';', [rfReplaceAll]);
Excel.Region:= StringReplace(Explode(Tmp, ';', 4), '~', ';', [rfReplaceAll]);
Excel.AdressCity := StringReplace(Explode(Tmp, ';', 5), '~', ';', [rfReplaceAll]);
Excel.AdressStreet := StringReplace(Explode(Tmp, ';', 6), '~', ';', [rfReplaceAll]);
Excel.AdressIndex := StringReplace(Explode(Tmp, ';', 7), '~', ';', [rfReplaceAll]);
Ph :=StringReplace(Explode(Tmp, ';', 8), '~', ';', [rfReplaceAll]);//òåë-íû
Oh := Ph;
for J := 1 to AnsiPos(')', Ph) do Ph[J] := #32;
Ph := Trim(Ph);
Ph := 'Testdata';//SelectPrimaryPhone(CharCount(Ph, ','), Ph, Excel.Name);
Excel.OfficePhoneN := Ph;
Excel.ExtPhones := Oh;

if (StringReplace(Explode(Tmp, ';', 9), '~', ';', [rfReplaceAll])='Äà') then
Excel.Prozvon := psPM else Excel.Prozvon := psNeprozvoneno;

Excel.Vozrast := tsNew;
Excel.Email := StringReplace(Explode(Tmp, ';', 9), '~', ';', [rfReplaceAll]);
Excel.WWW := StringReplace(Explode(Tmp, ';', 10), '~', ';', [rfReplaceAll]);
Write(Datafile, Excel);
Imp := Imp + 1;
// showmessage(inttostr(filesize(text)));
end;
CloseFile(Text);
CloseFile(Datafile);
CloseFile(Database);

Reset(Database);
Reset(Datafile);
Seek(Database, FileSize(Database));
Read(Datafile, Excel);
Write(Database, Excel);
CloseFile(Datafile);
CloseFile(Database);

DeleteFile(PAnsiChar(FN_DATABASE+'.imp'));

Не переходит на область CloseFile(Text);
почему не пойму.

Добавлено: 20 апр 2006, 15:24
Игорь Акопян
чрезвычайно сложно и ломотно разбираться в коде, который так приведён, отредактируй пожалйста свой сообщение с использованием тэга CODE при вставке кода