|
Тема |
Tova vremenno go zariazvam :( [re: Beco_] |
|
Автор | 11OO1 (Нерегистриран) | |
Публикувано | 21.04.07 20:04 |
|
|
Tova vremenno go zariazvam :(
Za 2-3 dni imam po-speshna zadacha,
Dnes 3-4 chasa se opitvah da vidia kak sym reshil podoben problem v edin star proekt (3-4 godini) i ne uspiah :)
Това временно го зарязвам (2-3 дни имам много спешен проблем), но трябва да го направя тоя сокет.
В един проект от преди 3-4 години съм го решил някакси и помня, че правих нещо друго, освен try/Except и OnError, но дне 3-4 часа го рових (клиентът е 320 000 реда), но не го открих - срам, срам :)
Стигам до tApplication (Uses Forms) - в стария проект FOnException е Assigned, в новия не е.
А юнитите (моите юнити), с които са компилирани двата проекта са едни и същи. Направо да побеснях - не мога да видя как съм прихванал хендлера на изключенията на апликейшъна (проверих всякви начини, които съм ползвал през годините - и не го намерих).
procedure TApplication.HandleException(Sender: TObject);
begin
if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
if ExceptObject is Exception then
begin
if not (ExceptObject is EAbort) then
if Assigned(FOnException) then
FOnException(Sender, Exception(ExceptObject))
else
ShowException(Exception(ExceptObject));
end else
SysUtils.ShowException(ExceptObject, ExceptAddr);
end;
Впрочем, вика се от
procedure TCustomWinSocket.WndProc(var Message: TMessage);
begin
try
Dispatch(Message);
except
Application.HandleException(Self);
end;
end;
Проверих подробно и ползваната хватка с пренаписваната на
function SetErrorProc(ErrorProc: TSocketErrorProc): TSocketErrorProc;
НИЩО - НИКАКЪВ РЕЗУЛТАТ - ексцепшъна пак си излиза 11001 - ба си!
|
| |
|
|
|