Hi DPler,
ich habe die letzten zwei Tage damit verbracht, unsere Software an Delphi 7 anzupassen, aber voller Verzweiflung muss ich feststellen, dass das ein richtiger Horrortrip geworden ist.
Im folgenden beziehe ich mich vorwiegend auf
COM und
ActiveX Objekte, wen es interessiert, bitte weiterlesen, wer Ideen hat, bitte schreiben ;
Fast alle unserer Objekte unterstützen das VBScript for...each-Konstrukt, demenstsprechend haben wir eine Basisunit, welche die Aufgaben dafür kapselt. Bis Delphi 5 lief diese wunderbar. Seit D7 macht die Funktion
Code:
GetItems(Index: OleVariant): IDispatch
ein Problem. Der Index kann eine Zahl (Position in der Liste) oder ein String (Name des gesuchten Objektes) sein. VarType lieferte bis jetzt immer entweder vtSingle oder vtInteger für Zahlen zurück. Seit D7 kann es auch vtVariant sein -
vtVariant kann aber auch für Strings kommen.
Was mache ich jetzt, wenn als Parameter "123" übergeben wird, mein Objekt erhält vtVariant als Typ. Will ich jetzt das Objekt an der Position 123 oder das mit dem Namen "123"
Eines unserer Object stellt eine Pointerliste für ASP nach. Mit Hilfe der Funktion
Add können neue Elemente jeder Art hinzugefügt werden. Nie ein Problem gewesen - seit D7 gibt hin und wieder Probleme, wenn diese Elemente
COM-Objekte sind und vom Typ IDispatch abgeleitet sind. Aber nur hin und wieder. Manche gehen auch
Was ist der Grund
Andere Probleme kommen so nach und nach zu Tage. Bei einigenen
COM Objekten hat D7 mir freundlicher Weise meine Typenbibliothek auseinander genommen, bzw. die Delphi Implementation (Codierung) zerstört.
Wo kann die Ursache liegen
Wer hat die Namen der Units, welche die
Unit DsgnIntf ersetzen
Wenn ich jetzt weiter machen würde, dann käme noch viel
, aber für den Anfang soll das erst einmal genügen.
Für heute werde ich das
wohl erst einmal einstellen und meinen Frust im Training an den anderen auslassen.
Ich wünsch Euch viel Spass und mir viel Ruhe zum Erfolg mit dem neuesten Streichen in Delphi 7...
Ciao,
...
...