[Delphi] XMLDocument geeft COM error

Pagina: 1
Acties:

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Ik heb dit al es eerder gevraagd, maar heb helaas nog geen oplossing gevonden. Probleem komt weinig voor.

Zodra ik een XMLDocument maak of open krijg ik deze error:
An outgoing call cannot be made since the application is dispatching an input-synchronous call
Deze fout krijg ik niet altijd, wel als ik bijvoorbeeld mijn applicatie sluit, dus in de OnClose event.

Geen oplossingen:
• Een timer maken die de XML afhandeling doet.
• Een bericht naar jezelf posten en de XML afhandeling doen (dit werkt niet altijd).

Hoe los ik dit op zodat ik altijd een XMLDocument kan maken?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Waarom kan dit niet?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

Ik heb hier zelf nog nooit problemen mee gehad. Een TXMLDocument creeeren en gebruiken heeft bij mij nog nooit dit soort problemen gegeven.

Maar als het kan, dan gebruik ik liever de XML data binding wizard, zodat je geen generiek TXMLDocument meer hoeft te gebruiken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Probeer XML/DOM shit eens opnieuw te installeren, ik heb op de error gezocht en dacht zoiets gezien te hebben. Even naar Microsoft.

oogjes open, snaveltjes dicht


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Hoe doe je dat dan met die data wizard? Zou je mij een voorbeeld of wat uitleg kunnen geven?

Update helpt niet hoor, al geprobeerd. Het is op alle machines zo, niet alleen bij mij.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

File -> New -> Data binding wizard.

Als je de DTD o.i.d. hebt (wat dus beschrijft wat er in je XML bestand kan komen te staan) of een al gevulde XML, dan genereert Delphi dus een unit voor je waarin alle verschillende types staan die in je XML kunnen komen te staan, plus 3 algemene functies om het XML document te laden en te saven.
code:
1
2
3
4
5
6
7
8
9
10
<xml>
 <progress>
   id=13
   score=1
 </progress]
 <progress>
   id=14
   score=5
 </progress>
</xml>

Bovenstaande is een fictief voorbeeld dus.
Maar als dit in userprogress.xml zit en deze door de XML data binding wizard heen haalt kan je dus dit soort dingen doen:
code:
1
2
3
4
5
6
7
8
9
var blaat: TXMLUserProgress;
    progressitem: TProgressItem;
begin
     blaat:=XMLUserProgressLoadFromfile('c:\blaat.xml');
     progressitem:=blaat.progress.add;
     progressitem.id:=13;
     progressitem.score:=100;
     (blaat as TXMLDocument).savetofile('c:\blaat.xml');
end;

Code is uit mijn hoofd, dus zal wel barsten van de fouten, maar dit is wel het idee :)
Zal morgen op m'n werk eens ff wat werkende code van mezelf posten.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Bedankt man, ik zal er zeer binnenkort mee bezig. Maar toch denk ik dat het weinig uitmaakt, omdat het een COM fout is die ik kreeg en volgens mij wordt er als nog gebruikt van gemaakt op jou manier. Ergens zal het geheel wel van een IXMLDocument afstammen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

Op maandag 27 mei 2002 19:17 schreef jelmervos het volgende:
Bedankt man, ik zal er zeer binnenkort mee bezig. Maar toch denk ik dat het weinig uitmaakt, omdat het een COM fout is die ik kreeg en volgens mij wordt er als nog gebruikt van gemaakt op jou manier. Ergens zal het geheel wel van een IXMLDocument afstammen.
Klopt ja... dat nog steeds wel. Blijft een vage melding trouwens, en heb hem dus zelf nog nooit gezien, en we hebben op m'n werk toch al het 1 en ander m.b.v. TXmlDocument (of een subclasse hiervan) lopen..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Zal ik es een application bouwen die de error maakt, kun je es testen. Ik werk met Delphi 6 Enterprise.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Het gekke is als je op die error op inet zoekt komt ie veel met de MS Agent Speech Api en Borland JBuilder. Heb je al een keer op een andere computer gecompileert?

oogjes open, snaveltjes dicht


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:26

Creepy

Tactical Espionage Splatterer

Op maandag 27 mei 2002 21:05 schreef jelmervos het volgende:
Zal ik es een application bouwen die de error maakt, kun je es testen. Ik werk met Delphi 6 Enterprise.
Prima... hebben de enterprise liggen. Thuis gebruik ik de Personal Edition (jaja.. die is legaal te gebruiken dus), maar zal es kijken of ik diezelfde error gereproduceerd krijg.

Kijk trouwens eens of je ook dezelfde error hebt als je een andere XML parser gebruikt. Een aantal dingen in de MS XML parser werken net niet helemaal lekker in combinatie met Delphi.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
En je raadt het natuurlijk al, tijdens het bouwen van die test applicatie kwam ik er achter.

Ik gebruikte een SendMessage uit een 2de instancie die in de eerste instancie een XML document maakt. SendMessage wacht tot het bericht is afgehandeld. Dit vond TXMLDocument niet cool. PostMessage werkt wel goed. Overigens krijg je de fout ook alleen maar als je tussen 2 applicaties die berichten stuurt, binnen 1 en dezelfde applicatie werkt het wel goed.

Hier kun je een demo applicatie + source (D6 Ent.) downloaden en zelf es testen. Zoals ik zei: start 2 instancies op. Gebruik de handles uit de Edit box.

"The shell stopped unexpectedly and Explorer.exe was restarted."

Pagina: 1