Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

TOleContainer.Doverb(ovShow) verursacht Exception

  Alt 30. Mai 2007, 17:05
Hallo!

Mal wieder Problem: Ich habe einen TOleContainer, der nach dem Laden, während des ovShow eine Exception verursacht (oder das "Client" Programm).

Generell geht es. Das Problem tritt auf, wenn ich gleich zu Programmstart nacheinander 3x das gleiche OleObjekt erstelle. Das ist der VLCPlayer über ActiveX aka VideoLAN.VLCPlugin.2 .

Manchmal hilft es, zwischen dem Erstellen 10 Sekunden zu warten. Wäre natürlich später Klasse, wenn mein Programm bei 6 Containern also mindestens eine komplette Minute zum Starten braucht. Das System klappt spätestens nicht mehr, wenn bei dem Kunden dann ein PC dabei ist, der mehr als 10 Sekunden braucht...

Ein möglicher Fehler wäre, dass das betroffene OleObjekt teilweise oder ganz ausserhalb des scrollbaren Bereichs liegt. Normalerweise sollte dann aber eine Meldung in der Form "Das Objekt kann den Fokus nicht erhalten, da es unsichtbar ist" oder soein blabla.

Sollte es einmal so sein, dass die Fehlermeldung
Zitat:
---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
In Projekt E:\debug\Project1.exe trat ein Problem mit folgender Meldung auf: 'access violation at 0x77c17740: read of address 0x00000000'. Prozess angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK
---------------------------
in einer Endlos-Schleife angezeigt wird, müsste ja ansich die ShowMessage kommen. Tut Sie aber nicht.

Ich habe auch eine Application.OnException mit einfach nur "exit".

Delphi-Quellcode:
  try
    CreateObject('VideoLAN.VLCPlugin.2', False);

    DOV;
...
Delphi-Quellcode:
procedure TVLCPlayer.DoV;
begin
  try
    DoVerb(ovShow);
  except
    on e: exception do begin
      ShowMessage(e.Message);
    end;
  end;
end;
Beim Beenden des Programmes als fertige .exe, also ohne Delphi, kommt immer:
Zitat:
---------------------------
Just-In-Time-Debugger von Visual Studio
---------------------------
Unbehandelte Win32-Ausnahme in welcome.exe [3920]. Fehler beim Just-In-Time-Debuggen der Ausnahme: Für keinen installierten Debugger ist das Just-In-Time-Debuggen aktiviert. In Visual Studio kann das Just-In-Time über folgenden Menüpfad aktiviert werden: "Extras -> Optionen -> Debuggen -> Just-In-Time".

Weitere Informationen finden Sie unter "Just-In-Time-Debuggen, Fehler" im Index der Dokumentation.
---------------------------
OK
---------------------------
Ausserdem kommt beim Starten mit Delphi immer dieser Fehler:
Zitat:
---------------------------
bds.exe - bordbk105N.dll
---------------------------
Assertion failure: "index <= items.n()"
in ..\win32src\DBKIMPL.CPP at line 2671
Continue execution?

---------------------------
Ja Nein
---------------------------
Ein Klick auf "Nein" und das komplette Delphi+Quellcode is zu




Nun die eigentlichen Fragen:

* Gibt es einen Ersatz zu TOleContainer.DoVerb(ovshow)
* Kann man Delphi nicht einfach "STFU" sagen, so dass wirklich _alle_ Fehlermeldungen unterdrückt werden?
* Warum **** dauernd die IDE ab? ("Woher kommt der Fehler in Delphi mit der bordbk105N.dll?)
* Was ist aus der supertollen Trennung zwischen Host (mein Programm) und Client (ActiveX, hier VLC-Player) geworden?
* Warum bekomme ich die Exceptions von VLC ab?
* Warum ist es technisch Möglich, dass das ActiveX (als dessen .exe oder .dll) mit den Kommandozeilen-Parametern gestartet wird, mit denen mein Programm gestartet wurde?

Ohne Ironie:
Mein Programm läuft wirklich super, und ich habe kein einziges Problem mit irgendeinem Fehler. Alles was mir Probleme bereitet, sind solche **** Fehlermeldungen. Würde das Programm einfach weiterlaufen, wäre alles Klasse.


Für irgendwelche Tips und Ideen bin ich wie immer seeeeehr dankbar.

PS: Sorry für die schlechte Laune, aber wenn man 90% des Arbeitstages mit dem wegklicken von Fehlermeldungen verbringt statt zu Programmieren, macht das Ganze irgendwann keinen Spaß mehr.

Mfg Mathias
  Mit Zitat antworten Zitat