Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#8

Re: Fehlermeldungen Applikationsweit unterdrücken...

  Alt 31. Okt 2006, 20:25
Ok, ich versuchs mal zu umschreiben, und zu beschreiben, da es mit Code etwas zu viel des Guten wäre. Das Projekt hat mehrere Tausend Zeilen Code.

Der Fehler tritt eigentlich nur bei Programmstart auf. Also was passiert alles beim Programmstart.
  • Kopieren eines kompletten Template-Ordners in einen Pages-Ordner, welcher vom Webbrwoser benutzt wird.
  • Laden der about_blank im TWebbrowser
  • Einlesen aller CP-Dateien aus einem festen Ordner. Daraus werden XML-Dateien generiert.
  • Erstellen aller Navigationsdateien/Seiten

Zu sehen ist das Ergebnis dann hier. Ich habe mal alles hochgeladen. LiveScore Die Seiten sind nur für den IE gemacht, bitte keine Meckereien auch nicht wegen der Ladezeiten. Das Projekt läuft nur auf lokalen Clients, die per UDP befüttert werden und sich dann bei jedem Punkt und jeder neuen Statistik aktualisieren...

Wenn man auf LiveScore geht, dann erhält man links ein Frame mit den Links zu den Spielen, in dem Fall nur noch das Finalspiel und rechts wird dann das Spiel angezeigt. Die History funktioniert so ähnlich.

Wenn ein Livespiel zu ende geht oder mehrere neue Livespiele gestartet werden, dann wird auf der linken Seite die Linkliste mit dieser funktion aktualisiert.

Delphi-Quellcode:
procedure TForm1.UpdateNavyXML(ID,Content:String);
var
  doc, fdoc: IHTMLDocument2;
  e: IHTMLElement;
  va: OleVariant;
  markup: String;
begin
  doc := web_cis.Document as IHTMLDocument2;
  va := VarArrayCreate([0, 1], varVariant);
  va[0] := 1;
  va[1] := 'main_left';
  if doc <> nil then
  begin
    fdoc := GetDeepFrameDoc(doc, va);
    e := fdoc.all.item(ID, 0) as IHTMLElement;
    if Transform(Content, markup)
      then
        try
          //von hier kommt der fehler, scheinbar ist die seite noch nicht fertig geladen
          //weshalb er das member nicht finden kann!? aber wenn ich eine globale var zum einsatz
          //bringe, klappts auch nicht...
          fdoc.body.innerHTML := markup
        except
          on E: Exception do
          ShowMessage(E.Message);
        end
      else ;
  end;
end;
Wie man sieht, habe ich es schon in Watte eingepackt und mit try-except versucht, aber wenn ich es mit Delphi starte, schmiert er direkt nach dem Createn, dem Show und dem Activate, wenn er versucht das erste mal diese procedure auszuführen ab, weil er wohl das member nicht finden kann, so die Fehlermeldung. Ich habe schon im TWebBrowser so viel onDocumentComplete und OnBeforeBrowse versucht, dass ich echt nicht mehr weiter weiss...Der Fehler kommt nicht immer, aber dafür fast immer. Erst kommt die Fehlermeldung, dass die Datei LScore.xml nicht geschrieben werden kann und dann die Fehlermendung Member nicht gefunden. Vielleicht muss ich ja mal das ganze Projekt hochschieben???
Danke
Tom
  Mit Zitat antworten Zitat