Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MessageDlg в потоке [D6, Win2k]


denis24 ©   (2005-01-20 18:27:00) 

В создаваемом на главной форме потоке выполняю цикл в конструкции try..except..end
При ошибке в секции except юзера спрашишает продолжить/нет
Так вот ,в среде  делфи все вроде ок(ошибка,идет в except .спрашивает ,если mrno то exit из цикла,иначе продолжаем.
А запуская сам экзешник на  этом вопросе при нажатии на "да" все равно не продолжает и вылетает из цикла.
Где грабли?


Digitman   (2005-01-21 16:21:00) [1]


> denis24   (21.01.05 16:12) [8]


остается надеяться, что ты понялВСЕ отличия MessgaeDlg от MessageBox


denis24   (2005-01-21 16:12:00) [2]

Спасибо GuAV ©
Помогло


AlexG   (2005-01-21 15:26:00) [3]

Покажи Execute потока. Полностью.


Eraser   (2005-01-21 14:56:00) [4]

denis24
Уточни параметры при вызове MessgaeDlg.


GuAV   (2005-01-21 13:23:00) [5]

И нужем вам этот Messgae Dlg?
Не лучше ли воспользоваться Message Box?


Digitman   (2005-01-21 12:44:00) [6]

тело MessageDlg() обращается к VCL-объектам, а это НЕдопустимо в контексте доп.трэда.


Poirot   (2005-01-21 12:41:00) [7]

А мб ошибка возникает просто в другом месте?:))
ЗЫ: а код можно было оформить нормально? тут теги даже есть для этого!


denis24   (2005-01-21 12:37:00) [8]

Создаю поток
frmSplash:=TfrmSplash.Create(self);
with  Tworking_select.Create1(true,DirectoryEditvd.Text,DirectoryEditv1.Text,FilenameEdit1.Text,ComboBox1.text,choice,cmbFile. ItemIndex) do
try
       FreeOnTerminate:=true;
       OnTerminate:=frmSplash.Working_ReportFinished ;
       resume;
       frmSplash.ShowModal;

finally
       frmSplash.free;
end;

В потоке
Создаю тейблы
потом цикл
while  tablehelp.Eof=false  do
.
. case choice of
1:
begin
try
.
.
.
except
if MessageDlg('Ошибка ....Продолжить)=mrno then
begin
tablehelp.Close; Screen.; exit;
end;
end;
end;
2:
 begin
try
.
.
.
except
if MessageDlg('Ошибка ....Продолжить)=mrno then
begin
tablehelp.Close; Screen.; exit;
end;
end;
end;
tablehelp.next;
end;

В run-time все ок.На ответ да продолжается цикл.
Запуская чистый экзешник вылетает на ошибке доже не предлагая вопрос продолжить Да/нет


begin...end   (2005-01-20 18:30:00) [9]

> denis24   (20.01.05 18:27)

> В создаваемом на главной форме потоке

Уже смешно.

> Где грабли?

Где код?


Наверх

Титульная страница Поиск, карта сайта Написать письмо