Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi 5 -> 7 - oh Schreck (https://www.delphipraxis.net/951-delphi-5-7-oh-schreck.html)

sakura 1. Okt 2002 15:49


Delphi 5 -> 7 - oh Schreck
 
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. :twisted: :twisted: :twisted:

Im folgenden beziehe ich mich vorwiegend auf COM und ActiveX Objekte, wen es interessiert, bitte weiterlesen, wer Ideen hat, bitte schreiben ; :roll:

:arrow: 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" :?:

:arrow: 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 :?:

:arrow: 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 :?:

:arrow: Wer hat die Namen der Units, welche die Unit DsgnIntf ersetzen :?:

Wenn ich jetzt weiter machen würde, dann käme noch viel :chat: :chat: :chat:, aber für den Anfang soll das erst einmal genügen.

Für heute werde ich das :coder: wohl erst einmal einstellen und meinen Frust im Training an den anderen auslassen. :freak:

Ich wünsch Euch viel Spass und mir viel Ruhe zum Erfolg mit dem neuesten Streichen in Delphi 7...

Ciao,
...:cat:...

Hansa 1. Okt 2002 19:53

Hi Sakura,

habe nicht alles gelesen, aber weiß jetzt, daß meine Entscheidung von vorletzer Woche richtig war, nämlich Delphi 7 wieder zu deinstallieren. Von der Basis Delphi 6 aus, wohlgemerkt. Das war aber bereits so früh, daß ich noch nicht mal den XP-Kinderspielplatz gesehen habe.

2 Tage Arbeit gespart. :dancer: :dancer2:

Gruß
Hansa

P.S.: Kann irgendjemand vielleicht mal sagen, für wen ein Umstieg zwingend notwendig ist ? :mrgreen:

sakura 1. Okt 2002 23:24

Zitat:

Zitat von Hansa
P.S.: Kann irgendjemand vielleicht mal sagen, für wen ein Umstieg zwingend notwendig ist ?

Zwingend nicht, aber der Umstieg bringt schon Vorteile für die Server Programmierung, speziell von D5 aus. Zusätzlich bin ich auch auf die dotNET Beta Engine scharf. Desweiteren ist Kylix ein nettes Schmankerl und ModelMaker 6.2 und Bold for Delphi sind auch nicht übel.

( Freitag soll meine Kopie ausgeliefert werden :D )

Hansa 2. Okt 2002 07:37

Hi Sakura,

Zitat:

bringt schon Vorteile für die Server Programmierung
Welche ?

Zitat:

ModelMaker 6.2 und Bold for Delphi sind auch nicht übel.
Wozu kann man dasd gebrauchen ?

Gruß
Hansa

sakura 2. Okt 2002 09:51

Zitat:

Zitat von Hansa
Welche ?

In der Enterprise und der Architekt kann die DataSnap Lizenz (Nachfolger von MIDAS) ohne Royalty-Fees weitervertrieben werden, dass spart viel Geld und der Kunde dankt es. Seit D6 - ich habe D5 - gibt es native XML Unterstützung. D7 hat den Webserver-Debugger inklusive. D7 hat native Anbindung an MS SQL 200, Oracle MySQL und noch mehr. DBExpress ist für D5 Anwender auch eine nette Erneuerung und nicht zu vergessen CLX und Kylix...

Zitat:

Zitat von Hansa
Wozu kann man das gebrauchen ?

UML (Unified Modeling Language) - Es ist durchaus interessant einen Großteil eines Projektes in UML zu erstellen und dadurch den Code besser zu managen und zu dokumentieren - bei großen Projekten bringt das manche Erleichterung mit sich, nachdem man sich erst einmal in die Materie eingearbeitet hat.

R.Meyrat 7. Okt 2002 07:34

Hallo Sakura,

Die meisten fragen kann ich noch nicht beantworten aber die Frage

=>Wer hat die Namen der Units, welche die Unit DsgnIntf ersetzen

kann ich folgend beantworten
{$IFDEF DELPHI5} DsgnIntf, {$ENDIF} {$IFDEF DELPHI6} DesignEditors, DesignIntf, {$ENDIF}

ab delphi 6 wurde die Unit aufgeteilt

Hatte das selbe Problem, als ich delphi 5 Komponenten auf delphi 6 umstellte


Gruss Roger

sakura 7. Okt 2002 08:14

Danke, inzwischen ist mir aufgefallen, dass ich auf diesen Fakt bereits bei D3K hingewiesen habe, ohne jemals mit D6 gearbeitet zu haben. Musste aber auch erst einmal darauf kommen,

Udontknow 7. Okt 2002 15:51

Hiho!

@Sakura:
Modelmaker ist schon echt klasse, aber Bolt? Auf der Roadshow, auf der ich war, hat man verzweifelt versucht, uns Sinn und Zweck der Bolt-Komponenten näher zu bringen, leider vergebens; Das Einsatzgebiet ist nach wie vor fürchterlich diffus ("Trennung von Design & Businesslogic", ahso... :| ).

Wieso bekommst du eigentlich "manchmal" vtvariant? Irgendwas muss doch den Unterschied machen, ob es vtvariant oder vtinteger etc. ist? Wie übergibst du denn den Wert an die Methode? Oder ist es nun die ganze Zeit vtVariant?

Zur Not kannst du ja einen Default-Parameter in die Methode einbinden, mit dem du sagen kannst, von was für einem Typ der erste Parameter ist.

Cu,
Udontknow

R.Meyrat 9. Okt 2002 06:53

Hallo Sakura

Ich habe mir die Trial von D7 gezogen und mal eines unserer Projekte
versucht zu generieren.

Hatte leider die gleichen Probleme wie Du. Neben dem bekannten Problem mit den DsgnIntf ist mir noch folgendes aufgefallen:

Konnte man unter D6 noch Komponenten mit unten stehendem Code registreiren geht bis auf das "RegisterComponents" nichts mehr.
Code:
  RegisterComponents('VZUG',[TJvProgressDlg, TDirMonitor, TAled, TDigit, TAPM, TProcList, TLCDScreen, TLCDAnimator, TLanguage]);
  RegisterComponentEditor(TLCDAnimator,TLCDAnimatorEditor);
  RegisterPropertyEditor(TypeInfo(TStrings), TLCDAnimator, 'Code', TLCDAnimatorCodeEditorProperty);
  RegisterComponentEditor(TLCDScreen,TLCDScreenEditor);
  RegisterPropertyEditor(TypeInfo(TStringList), TLCDScreen, 'Lines', TLCDScreenLinesEditorProperty);
Neben dem negativen, habe ich auch etwas erfreuliches beobachtet und hoffe dass mir einer dies bestätigen kann:

Habe ein Projekt (ohne Zusatz Komponenten) unter D6 ohne Debugg-Infos generiert und unter D7 mit Debugg-Info generiert und siehe da, Das EXE aus D7 ist von 723Kb auf 651Kb geschrumpft.
Ist dies nur ein Traum oder hast Du oder ev. andere dies auch beobachtet ?

Gruss Roger

sakura 9. Okt 2002 08:34

Zitat:

Zitat von R.Meyrat
Habe ein Projekt (ohne Zusatz Komponenten) unter D6 ohne Debugg-Infos generiert und unter D7 mit Debugg-Info generiert und siehe da, Das EXE aus D7 ist von 723Kb auf 651Kb geschrumpft.
Ist dies nur ein Traum oder hast Du oder ev. andere dies auch beobachtet ?

Mir ist es auch schon positiv aufgefallen, dass die Echsen unter D7 i.A. erheblich kleiner sind als noch unter D5. :)

...:cat:...

P.S. Mein D7 Päckchen ist gestern endlich auf den Weg gegangen. :firejump:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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