System Error. Code: 1400.
, в чем проблемма?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.141] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
System Error. Code: 1400.
, в чем проблемма?
|
Сообщ.
#1
,
|
|
|
|
В ХР под дельфями прога запускается нормально.
Если просто запускаешь, в конце подвисает с сообщением. Цитата Exception EOSError in module Project1.exe at 0000E3D6. System Error. Code: 1400. Недопустимый дескриптор окна. А за ней Цитата Access violation at address 74E10B09. Read of address 74E10B09. В 98 тоже всё нормально. Никаких коммерческих компонентов не используется, кроме Rx. Работает в два потока. У кого какие соображения. |
|
Сообщ.
#2
,
|
|
|
|
Вероятно пытаешся выполнить какето действия с разрушенным объектом ядра.
Покажи код завершения... |
|
Сообщ.
#3
,
|
|
|
|
Тут в начале идет код поиска файлов, а затем поиск внутри файлов.
Цитата ............................... тут поиск ............................... Form1.ProgressBar1.Max := 100; Form1.ProgressBar1.Position := 100; Form1.RichEdit1.Text := ResFls.Text; ResFls.SaveToFile(Form1.Edit1.Text+'_'+FormatDateTime('ddmm', Date)+'.TXT');// последний выполненный код MessageDlg('Найдено '+ IntToStr(z)+ ' записей, которые сохранены в файл '+ Form1.Edit1.Text+'_'+FormatDateTime('ddmm', Date)+'.TXT', mtInformation,[mbOk], 0); except MessageDlg('Неизвестная ошибка. Выполнение программы прервано !', mtError,[mbOk], 0); end; Form1.Button1.Enabled := True;; Form1.DateEdit1.Enabled := True; Form1.DateEdit2.Enabled := True; Form1.Edit1.Enabled := True; Form1.RichEdit1.Enabled := True; Что интересно. Файл сохраняется и после этого прога подвисает. P.S. Как оказалось под дельфями тоже подвисает иногда. |
|
Сообщ.
#4
,
|
|
|
|
А чего потоки делают? Похоже что дела в них
|
|
Сообщ.
#5
,
|
|
|
|
У меня была подобная ошибка, когда я в потоках забывал разрушать созданные рантаймом объекты.
Добавлено Или пытался разрушить несколько раз один и тотже. |
|
Сообщ.
#6
,
|
|
|
|
Цитата Хома @ 29.10.04, 09:31 созданные рантаймом объекты. Добавлено Сегодня, 09:32 Или пытался разрушить несколько раз один и тотже. F это что такое? |
|
Сообщ.
#7
,
|
|
|
|
Объекты, созданные не в режиме конструктора (дизайна), а в процессе работы приложения.
|
|
Сообщ.
#8
,
|
|
|
|
Ага. Опередили с ответом
|
|
Сообщ.
#9
,
|
|
|
|
Я там ничего не создаю. Только бегаю по dbf (штук 1500) и ищу подстроку в строке и складываю в StringList. К каждой таблице обращаюсь через прямой путь, который подставляю в DataBaseName(что бы не привязываться к директории приложения). Это происходит в отдельном потоке. Мне кажется проблемма в BDE. Тут наверно надо использовать в дополнение TSession. Где то читал что в потоке так нужно обращаться к BDE. Что скажете.
зы. Может кто может исходники глянуть и найти ошибку. Переделал. Не помогло. |
|
Сообщ.
#10
,
|
|
|
|
Методом исключения выяснил что ошибка в
MessageDlg. Закоментировал эти месседжи и всё стало нормально. Теперь думаю чем заменить. ShowMessage тоже не катит. P.S.Для модера.Что то теги не работают. |
|
Сообщ.
#11
,
|
|
|
|
Вообщем сам спросил и сам ответил.Решение такое. Использовать в потоках
MessageBox(Form1,'Текст сообщения','Заголовок окна', MB_ICONINFORMATION); MB_ICONINFORMATION - иконка. Если текст сообщения будет содержать переменные типа String, то не забудьте преобразовать их в PChar MessageBox(Form1,PChar('Найдено '+ IntToStr(z)+ ' записей.'),'Результат', MB_ICONINFORMATION); Всем спасибо. Тема закрыта. |
|
Сообщ.
#12
,
|
|
|
|
Цитата PalR, 30.10.04, 23:47 MessageBox(Form1,'Текст сообщения','Заголовок окна', MB_ICONINFORMATION); корректнее будет ![]() ![]() MessageBox(Form1.Handle, 'текст сообщения', 'Caption', MB_ICONINFORMATION or MB_OK); Первый параметр - Handle окна, а не указатель на класс формы, в последнем - MB_OK это явное задание кнопки ОК |
|
Сообщ.
#13
,
|
|
|
|
Mischka,
Естественно. Привычная дельфовая подсказка не выскачела, вот и забыл. |