Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2007, 20:00   #1
xTANATOSx
Подтвердите свой е-майл
 
Регистрация: 15.07.2007
Сообщений: 72
Смущение Окна ошибки

Если в программе прийсходит ошибка,то виводитса сообщения о ней.
Как ето отключить?Што б при ошибки нечиво не высвечивалась и программа продолжала работать себе дальше.
Например когда сервер отключен то при пропитки коннекта видаетса "Anynchronous socket error 10061"
xTANATOSx вне форума Ответить с цитированием
Старый 30.10.2007, 20:13   #2
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Это не совсем ошибка. Это исключение - механизм, поддерживаемый операционной системой и позволяющий уведомить приложение что что-то пошло не так. И давить исключения не нужно, их нужно обрабатывать. Вот прямо с этого сайта статья:
http://pblog.ru/?p=89
а вот из Рихтера:
http://wm-help.net/books-online/book/59464/59464.html (часть V)

Хотя в Delphi обрабатывать исключения можно еще одним способом: прописать обработчик Application.OnException, например так:
1. Кидаем на форму ApplicationEvents с закладки Additional
2. Пишем такой обработчик OnException:
Цитата:
procedure TForm1.ApplicationEvents1Exception( Sender: TObject;
E: Exception);
begin
// Do nothing
end;
И все, окошки выскакивать не будут. Но повторяю, исключения давить, а не обрабатывать - нот гуд

PS: А что именно использовать - try..except или Application.OnException - зависит от задачи. В вашем случае видимо лучше try..except, хотя кода вашего я не видел, так что это предположение.

Последний раз редактировалось Slovinsky; 30.10.2007 в 20:21.
Slovinsky вне форума Ответить с цитированием
Старый 22.01.2008, 21:17   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
Вопрос

У меня есть функция которая сидит в библиотеке и проверяет наличие файла на сьемных дисках (флоппи, флеш).
Если дискета есть в дисководе - все нормально, а если нет то выводиться сообщение "диск не найден" и проверяется флешка (но почему-то этот цыкл проходит не один раз, а три ).
Вопрос: Как можно подавить "скрыть" от глаз сообщение об отсутствующей дискете??? .... или убрать тройной повтор цыкла???
Код:
function CheckDrive :string; stdcall;
var
Dist:string;
ii :integer;
F :TextFile;
begin
Result:='';
for ii := 0 to 25 do
begin
    if (CheckDriveType(ii) = 'FLASH') then
      begin
      try
      Dist:=PChar((Format('%s',[Chr(ii+$41)])+':\'));
      if FileExists(Dist)=True then begin Result:='NOT_READY'; Abort; end
      else
      begin
        AssignFile(F,Dist+'1.txt');
        Reset(F);
        Result:=Dist;
      end;
      Except
      Result:='NOT_READY';
      end;
      end;
end;
end;
CheckDriveType - функция возвращающая тип носителя!
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две ошибки Crivel Помощь студентам 10 31.07.2008 12:18
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Размер окна в зависимости от размера окна Reverent JavaScript, Ajax 1 02.02.2008 15:49
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13