AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Floating Point division by zero

Ein Thema von Erutan · begonnen am 18. Aug 2013 · letzter Beitrag vom 3. Sep 2013
 
nahpets
(Gast)

n/a Beiträge
 
#12

AW: Floating Point division by zero

  Alt 19. Aug 2013, 01:15
PWert ist nicht zwingend mit einem sinnvollen Wert befüllt.

Bei Button1 wird PWert erst nach dem Webbrowser1.Navigate befüllt, hat also vorher ggfls. einen undefinierten Wert (irgendein Integer).

Gib hier bitte mal FieldName mit aus, damit man weiß, bei welchem Feld der Fehler auftritt.
Delphi-Quellcode:
  except
    on E: Exception do
      ShowMessage('Fehler vom Typ: ' + E.ClassName + ', Meldung: ' + E.Message + ' , Feld: ' + FieldName);
  end;
Mir ist der Fehler nur bei Offenes-Presseportal.de ca. 46 mal um die Ohren gehauen worden. Auf der Seite scheinen alle Eingabefelder... innerhalb von FieldSets zu stehen. Es kann sein, dass das FillForm dafür nicht geeignet ist, da die Eingabefelder nicht direkt im Form liegen, sondern in FieldSets.

Die Seite von Fair-News.de enthält mehrere Formulare. Welches dieser Formulare erwischst Du denn mit Deinem Programm?
Buttons sind auch Felder in einem Formular, sie haben aber nicht zwingend einen Namen. Damit kann FormItem.Item(j).Name leer sein. Hier könntest Du mal probieren, ob eine Abfrage mit EmptyVar funktioniert.

Weiß nicht, ob sowas funktionieren könnte:
Delphi-Quellcode:
        
        if Not (FormItem.Item(j).Name = EmptyVar)
        and (FormItem.Item(j).Name = FieldName) then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
Dashier ist äußerst ungeschickt:
Delphi-Quellcode:
      except
        Exit;
      end;
Damit ignorierst Du Deine Fehler und verlierst die Fehlermeldung.
Da Du den Rückgabewert von FillForm nie benutzt, könntest Du diesen auf String ändern und dann die Fehlermeldung zurückgeben.
Delphi-Quellcode:
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): String;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := 'setze ' + FieldName + '=' + Value;
...
  Except
    on E: Exception do
      Result := Result + #13 + 'Fehler vom Typ: ' + E.ClassName + ', Meldung: ' + E.Message + ' Feld: ' + FieldName;
      ShowMessage(Result);
  end;
end;
Dann spendierst Du dem Programm noch ein Memofeld (unterhalb der Buttons?) und gibst dort den Rückgabewert von FillForm aus.
Delphi-Quellcode:
 
MemoLog.Lines.Clear;
MemoLog.Lines.Add(FillForm(WebBrowser1, 'homepage', 'http://www.swissdelphicenter.ch'));
...
In der endgültigen Programmversion kannst Du das Memo dann unsichtbar machen.
Alternativ kannst Du die Fehler auch in eine LOG-Datei schreiben.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz