-
Когда приложение запускается из под среды при возникновении исключения всплывает окно отладчика с информацией об исключении: http://s2.ipicture.ru/uploads/090119/1X925CUaU7.jpg(зеркало): http://s47.radikal.ru/i117/0901/b1/0db2c8b51aa2.jpgИ получается забавно в случае с приложением, которое развернуто на весь экран поверх всех окон. С одной стороны во время наступления исключения отладчик тормозит выполняющиеся потоки до момента закрытия этого диалогового окна и приказа продолжить выполнение. С другой стороны, этого всплывающего диалога из под приложения "поверх всех окон" просто не видно. В результате все висит и нихрена не сделаешь ( Как можно отключить выдачу данного окошка при выполнении определенных строк кода? Я сразу отмечу, что не хочу в принципе отключать данное всплывающее окно отладчика. Также я не хочу убирать реагирование на данный тип исключения. Просто чтобы на определенных строках кода данное окошко не всплывало, но исключение отрабатывалось операторами try..except в рантайме.
-
> Добежал (19.01.09 19:34) > Я сразу отмечу, что не хочу в принципе отключать данное > всплывающее окно отладчика. Также я не хочу убирать реагирование > на данный тип исключения.
Убери на весь экран поверх всех. Все равно, оно лишнее.
-- Regards, LVT.
-
Нравится мне этот форум. Люди понятия не имеют о задачах, но все равно думаю что они умнее всех и лучше автора знают что ему надо.
-- Regards, Pit.
-
Блин, судя по молчанию здесь, по отзывам знающих людей проблема просто не имеет решения впрямую.
-
> [3] Добежал (20.01.09 14:18) > Блин, судя по молчанию здесь, по отзывам знающих людей проблема > просто не имеет решения впрямую.
Желание странное. Запускай не из среды.
-
> Желание странное. Запускай не из среды.
иногда бывает желание забить на исключения в функции А, но обращать внимание на исключения в функции Б.
-
> Добежал (20.01.09 11:54) [2]
> но все равно думаю что они умнее всех и лучше автора знают > что ему надо.
Я тоже так думаю. Это ж надо - "развернуто на весь экран поверх всех". Эмуляция десктопа, млин.
-- Regards, LVT.
-
На время отладки - почему бы действительно не отключить "поверх всех"? После отладки - включить обратно.
-
> Это ж надо - "развернуто на весь экран поверх всех". > Эмуляция десктопа, млин
а как по-твоему платежные терминалы работают?
> На время отладки - почему бы действительно не отключить > "поверх всех"?
ну так и делаю. Вопрос только как определять, что запущено из под среды. Выбрал способ с isDebuggerPresent.
-
Добежал (20.01.09 15:39) [8] Ты когда сдавать будеш тогда включи, зачем тебе во время отладки/написания лишние трудности?
-
> Добежал (20.01.09 15:39) [8]
> > Эмуляция десктопа, млин
> а как по-твоему платежные терминалы работают?
Если они работают так, то их надо выкинуть на помойку.
-- Regards, LVT.
-
> Ты когда сдавать будеш тогда включи, зачем тебе во время > отладки/написания лишние трудности?
мне то все равно. Но если другой человек вдруг из под среды запустить приложение и там в настройках будет стоять не дебаг режим - то он натолкнется на глюк такой. Я лично очень не сразу понял что за нафиг.
> Если они работают так, то их надо выкинуть на помойку.
а как надо работать?
-
> Добежал (20.01.09 15:54) [11] > а как надо работать?
Например, на отдельном десктопе.
-- Regards, LVT.
-
> Как можно отключить выдачу данного окошка при выполнении > определенных строк кода?
Те. нужно отключить выдачу определенного исеключения во время работы в среде. ну так делай собственный тип исключения, и добавляй его в Debugger Options >> language Exception.
-
> Например, на отдельном десктопе.
а можно поподробнее: какие при этом будут преимущества, как создавать десктоп, как выводить его на активный экран?
Например, если к компьютеру подключено два монитора, то при обычном запуске можно управлять, перетащить на каком мониторе будет отображаться, если делать на отдельном десктопе возможно ли это будет делать, насколько просто?
> ну так делай собственный тип исключения, и добавляй его > в Debugger Options >> language Exception.
были мысли... Но в общем проблема решена с помощью isDebuggerPresent
-
>[14] Добежал (2009-01-20 16:35:00) а чего, на msdn перманентный бан?
--- Do what thou wilt shall be the whole of the Law.
-
перманентная нехватка времени. Не могу себе позволить изучать там что-то (тем более долго, а пока не знаю - не имею представления долго ли), чтобы потом понять, что мне это не подходит.
-
>[16] Добежал (2009-01-20 17:27:00) >перманентная нехватка времени. Не могу себе позволить изучать там что-то нивапрос. проконсультирую. за деньги, натурально. потому что мы, знаешь ли, тоже не дети Ротшильдов, и время своё драгоценное таки тратили на изучение. а ты хочешь, чтобы тебе теперь бесплатно всё разжевали и ещё запить поднесли. нет пути.
--- Do what thou wilt shall be the whole of the Law.
-
> Добежал (20.01.09 16:35) [14]
program Project1;
uses
Forms,
Windows,
Unit1 in 'Unit1.pas' ;
var
NewDesktop, thisdesktop : HDESK;
begin
thisdesktop := GetThreadDesktop(GetCurrentThreadId);
Application.Free;
NewDesktop := CreateDesktop( 'MyDeskTop', nil, nil, 0,
GENERIC_ALL, nil );
SetThreadDesktop( NewDesktop );
Application := TApplication.Create(nil);
SwitchDesktop( NewDesktop );
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
SetThreadDesktop( thisDesktop );
SwitchDesktop( thisDesktop );
CloseDesktop( NewDesktop );
end.
> Добежал (20.01.09 17:27) [16]
> перманентная нехватка времени
У нас этого времени - вагон. Везде успевает тот, кто никуда не торопится. -- Regards, LVT.
-
> ketmar © (20.01.09 17:45) [17]
> нет пути.
А, это был воспитательный прием. Sorry.
-- Regards, LVT.
|