Autor Téma: Chybové hlášení EZERODIVIDE  (Přečteno 2722 krát)

Offline pospisil.lada

  • Plnoletý
  • ***
  • Příspěvků: 155
  • Karma: 2
    • Verze Delphi: D7
Chybové hlášení EZERODIVIDE
« kdy: 15-03-2013, 16:03:55 »
Prosím o pomoc,
z nějakého důvodu mi dnes začala aplikace hlásit "Floating point division by zero" ...
A nevím kde -  v příloze přikládám chybové hlášení a CALLSTACK okno s názvem celého projektu ...

jediné co se změnilo, je ranní instalace IE 10 .... (v projektu je TWEBBROWSER).

A aby byla sranda větší, hlášení se objevuje sem, tam ...
Zkoušel jsem v čistém projektu jen TWEBBROWSER a volání stránky, bez chyby....

Kde je chybka? Díky za pomoc.
PS: nulou nedělím a ani nechci  >:(

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2611
  • Karma: 103
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chybové hlášení EZERODIVIDE
« Odpověď #1 kdy: 15-03-2013, 16:22:38 »
mam ve zdrojacich naslednika WebBrowseru a v nem tohle, tak zkus

Kód: Delphi [Vybrat]
  1. constructor TXWebBrowser.Create(Owner: TComponent);
  2. begin
  3.   fwFPControlWord := Get8087CW;
  4.   inherited;
  5. end;
  6.  
  7. destructor TXWebBrowser.Destroy;
  8. begin
  9.   System.Set8087CW(fwFPControlWord);
  10.   inherited;
  11. end;
  12.  
  13. procedure TXWebBrowser.gSetFPControlWord;
  14. begin
  15.   //http://stackoverflow.com/questions/8200581/twebbrowser-crashes-with-embedded-youtube-clips
  16.   // www.bsalsa.com/ewb_propert.html
  17.   System.Set8087CW($133F); // Disable all fpu exceptions
  18. end;
  19.  

pak volam SetFPControlWord
Embarcadero MVP - Czech republic

Offline pospisil.lada

  • Plnoletý
  • ***
  • Příspěvků: 155
  • Karma: 2
    • Verze Delphi: D7
Re:Chybové hlášení EZERODIVIDE
« Odpověď #2 kdy: 15-03-2013, 18:12:38 »
ok, zkusím, díky moc. Pokud se dívám dobře na poznámku, vypíná to všechny chybové hlášky. Proč to používáš ty?


a netuchujete někdo, co tu moji chybu způsobuje? a proč jen někdy? a proč až dneska? a proč zrovna jááá !!!  ::)

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1142
  • Karma: 42
    • Verze Delphi: 7, 2010
Re:Chybové hlášení EZERODIVIDE
« Odpověď #3 kdy: 15-03-2013, 19:30:19 »
ja bych urcite aktualizoval ten TWebBrowser (odinstalovat a smazat balicek) a pak naimportovat jako ActiveX,
pokud dobre vidim, tak to je D7 a tam je to sakra stary ... (i kdyz myslim, ze primo TWebBrowser nebude ta chyba ...)

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2611
  • Karma: 103
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chybové hlášení EZERODIVIDE
« Odpověď #4 kdy: 15-03-2013, 19:38:27 »
ok, zkusím, díky moc. Pokud se dívám dobře na poznámku, vypíná to všechny chybové hlášky. Proč to používáš ty?

protože mám embednutý explorer  a někdy to vyhazuje dělení nulou - myslím, že to bylo během načítání. Dělá to tak i Balsa - asi nejlepší zapouzdreni IE pro Delphi. Zapínám to jen v dialogu s IE. Nevím - možná se to projevuje jen při přepnutí do editace.

Citace
a netuchujete někdo, co tu moji chybu způsobuje? a proč jen někdy? a proč až dneska? a proč zrovna jááá !!!  ::)

Dělení nulou?
Osobně si myslím, že je to v nějaké obsluze toho ActiveX, kdy IE něco očekává a dostane něco jiného - myslím, že jsem tehdy podezření na scrollbary.
Od té doby co to používám mám pokoj.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2611
  • Karma: 103
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chybové hlášení EZERODIVIDE
« Odpověď #5 kdy: 15-03-2013, 19:40:02 »

vypíná to všechny chybové hlášky.

Ne, jen to maskuje vyjimky matematického koprocesoru, jako napr. deleni nulou.
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2790
  • Karma: 134
    • Verze Delphi: D2007, XE3, DX10
Re:Chybové hlášení EZERODIVIDE
« Odpověď #6 kdy: 15-03-2013, 21:26:41 »
a netuchujete někdo, co tu moji chybu způsobuje? a proč jen někdy? a proč až dneska? a proč zrovna jááá !!!  ::)
AFAIK, tak je to desetileti znamy a zdokumentovany problem. Uz je to nejmene v Helphu D6....
Borland ma matematicky koprocesor nastaveny by default tak, aby vyvolaval exceptions, zatimco treba OpenGL, TWebBrowser apod. si na exceptions nehraji a pokud je program pouziva, je treba exception koprocesoru potlacit.

Pokud jsme pouzivali napr. TWebBrowser, tak jsme v .dpr pred Application.Init  zmenili to nastaveni ridiciho slova.