![]() |
DeveloperExpress Komponenten von D5 nach D7
Hallo Zusammen,
ich kämpfe mit der Umstellung einer Anwendung von D5 nach D7 (nicht fragen wieso, ist leider so). Wir haben damals für D5 eine Bibliothek (BPL) von DeveloperExpress erworben, inkl. der Sourcen. Im Verzeichnis gibt es zwei DPK Files mit den Sourcen. Die eine DPK Datei habe ich geöffnet und alle PAS Files nun kompiliert. Nun geht es darum in der 2. DPK die Umgebung der Komponenten zu erzeugen und da hänge ich nun. Es wird vieles mit $IFDEF DELPHI6 geprüft, wie auch in dem unteren genannten Beispiel: Wie ist hier zu verfahren? DELPHI6 durch DELPHI7 ersetzen und evt. fehlende Klassen ersetzen? Als zweites bekomme ich einen Fehler, weil TFORMDESIGNER nicht gefunden wird. function TdxfComboBoxItemsProperty.GetValue: string; begin Result := Format('(%s)', [TStrings.ClassName]); end; {TdxfRealDesigner} procedure TdxfRealDesigner.SelectComponent(Instance: TPersistent); begin {$IFDEF DELPHI6} if(FDesigner <> nil) then FDesigner.SelectComponent(Instance); {$ELSE} with {$IFDEF DELPHI4}IFormDesigner{$ELSE} TFormDesigner{$ENDIF}(GetParentForm(TControl(Instance)).Designe r) do {$IFDEF DELPHI3}SelectComponent(Instance){$ELSE}SelectComp onent(TComponent(Instance)){$ENDIF}; {$ENDIF} end; {$IFDEF DELPHI6} procedure TdxfRealDesigner.ItemDeleted(const ADesigner: IDesigner; AItem: TPersistent); begin end; procedure TdxfRealDesigner.ItemInserted(const ADesigner: IDesigner; AItem: TPersistent); begin end; procedure TdxfRealDesigner.ItemsModified(const ADesigner: IDesigner); begin end; procedure TdxfRealDesigner.SelectionChanged(const ADesigner: IDesigner; const ASelection: IDesignerSelections); begin FDesigner := ADesigner; end; procedure TdxfRealDesigner.DesignerOpened(const Designer: IDesigner; AResurrecting: Boolean); begin FDesigner := Designer; end; procedure TdxfRealDesigner.DesignerClosed(const Designer: IDesigner; AGoingDormant: Boolean); begin FDesigner := nil; end; {$ENDIF} Danke schon mal. Gruß Klaus |
AW: DeveloperExpress Komponenten von D5 nach D7
Gibt es .INC Dateien?
Bei neueren DevExpress steht dann so was drin (cxVer.inc):
Delphi-Quellcode:
Dann sollte es kein Problem sein...
{$IFDEF VER150} { Borland Delphi 7.0 }
{$DEFINE DELPHI4} {$DEFINE DELPHI5} {$DEFINE DELPHI6} {$DEFINE DELPHI7} {$ENDIF} Frank |
AW: DeveloperExpress Komponenten von D5 nach D7
Hallo Frank,
ja, es gibt eine INC Datei (dxFLVer.inc).
Code:
D.h. ich packe das hier dazu:
{$B-} {- Complete Boolean Evaluation }
{$R-} {- Range-Checking } {$T-} {- Typed @ operator } {$X+} {- Extended syntax } {$P+} {- Open string params } {$J+} {- Writeable structured consts } {$H+} {- Use long strings by default } {$IFNDEF VER80} {$IFNDEF VER90} {$IFNDEF VER93} {$DEFINE DELPHI3} { Delphi 3.0 or higher } {$ENDIF} {$ENDIF} {$ENDIF} {$IFDEF VER120} { Delphi 4.0 } {$DEFINE DELPHI4} {$ENDIF} {$IFDEF VER110} { Borland C++Builder 3.0 } {$DEFINE CBUILDER3} {$ObjExportAll On} {$ENDIF} {$IFDEF VER125} { Borland C++Builder 4.0 } {$DEFINE CBUILDER3} {$DEFINE DELPHI4} {$DEFINE CBUILDER4} {$ObjExportAll On} {$ENDIF} {$IFDEF VER130} { Delphi 5.0 } {$IFDEF BCB} { Borland C++Builder 5.0 } {$DEFINE CBUILDER3} {$DEFINE CBUILDER4} {$DEFINE CBUILDER5} {$ObjExportAll On} {$ENDIF} {$DEFINE DELPHI4} {$DEFINE DELPHI5} {$ENDIF} {$IFDEF VER140} { Borland Delphi 6.0 } {$DEFINE DELPHI4} {$DEFINE DELPHI5} {$DEFINE DELPHI6} {$ENDIF} {$IFDEF VER150} { Borland Delphi 7.0 } {$DEFINE DELPHI4} {$DEFINE DELPHI5} {$DEFINE DELPHI6} {$DEFINE DELPHI7} {$ENDIF} Aber wie ist das mit den Prüfungen auf Delphi 6 zu verstehen? Die greifen dann ja nur, wenn D6 installiert ist, oder? |
AW: DeveloperExpress Komponenten von D5 nach D7
Hallo,
hast du diese Datei(en)?
Code:
Dann hast du auch die Lösung (ist nur eine Leseübung)
...\JEDIVisualComponentLibraryJVCL-3.8\archive\JvTimerListForm.* (pas | dfm)
...\JEDIVisualComponentLibraryJVCL-3.8\common\JVCL.INC |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Da deine Quellen der Komponenten kein D5 oder größer kennt reicht hier:
Delphi-Quellcode:
{$IFDEF VER150} { Borland Delphi 7.0 }
{$DEFINE DELPHI4} {$ENDIF} |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Richtig, Delphi 4 - 6 musst du eintragen...
Delphi-Quellcode:
Frank
{$IFDEF VER150} { Borland Delphi 7.0 }
{$DEFINE DELPHI4} {$DEFINE DELPHI5} {$DEFINE DELPHI6} {$ENDIF} |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
Delphi-Quellcode:
dann wird im Code in
{$DEFINE DELPHI6}
Delphi-Quellcode:
kompiliert...
{$IFDEF DELPHI6}
// Code {$ENDIF} Oder einfacher: In der INC: Wenn Delphi - Version Delphi 7 ist, dann definiere Delphi 6 (oder höher). Im Code: Wenn Delphi 6 (oder höher) definiert ist, kompiliere diesen Code... Frank |
AW: DeveloperExpress Komponenten von D5 nach D7
Klasse, hat funktioniert. Danke für Die Hilfe.
Eins noch. Die BPL wurde im Delphi Verzeichnis erstellt. Wenn ich mir eine Komponenten nun in mein Projekt selektiere, dann versucht Delphi die PAS Datei in einem DeveloperExpress Verzeichnis zu suchen, was überhaupt nichts mit meiner Komponenten zu tun hat. Die Sources habe ich in einem eigenen Verzeichnis unter C liegen und habe dieses Verzeichnis dem Suchpfad in der Umgebung hinzugefügt. Es wird aber immer noch in dem falschen Verzeichnis gesucht. Hängt das irgendwie mit der Kompilierung der BPL Datei zusammen oder wieso findet Delphi die PAS Files nicht? Danke |
AW: DeveloperExpress Komponenten von D5 nach D7
Du solltest den Bibliothekspfad und Suchpfad in der Delphi IDE überprüfen.
Wo das unter Delphi7 zu finden war, kann ich nicht mehr sagen. (unter Tools evtl.) Das Verzeichnis mit den DevExpress PAS - Dateien sollte in diesen Suchpfad. Bei DevExpress ist das heute eine ganze Liste, wie es bei dir ist, musst du schauen. Frank |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Unter D7 gibt es zwei Stellen, an denen die Suchpfade konfiguriert werden können.
Global gesehen: Menü Tools Umgebungsoptionen... Reiter Bibliothek projektspezifisch: Menü Projekt Optionen... Reiter Verzeichnisse/Bindungen Man muss aufpassen, dass es bei den Einträgen an den beiden Stellen nicht zu Konflikten kommt. Im Zweifel einfach die nicht gefundenen Dateien ins Projekt aufnehmen. Menü Projekt Dem Projekt hinzufügen... Dort die nicht gefunden Datei auswählen. ggfls. wiederholen, bis der Compiler zufrieden ist und alles finden kann. Gerade bei umfangreichen Suchpfaden kann diese Methode die Kompilierzeit deutlich reduzieren, da nicht jedesmal überall nach allem gesucht werden muss. |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
die Verzeichnisse mit *.dcu - Dateien in den Bibliothekspfad. Frank |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
Komisch ist halt auch, dass Delphi die pas files in einem anderen Developer Package Pfad sucht. Gibt man beim Kompilieren/Installieren des Packages hier irgendetwas dabei an? Ich habe in den Optionen nichts gefunden. Fehlermeldung: Datei nicht gefunden: C:\Program File ...\Developer Express\Express Editors Library\Delphi 7\Lib\dxfColorButton. Wieso sucht Delphi in diesem Verzeichnis? Wenn ich den Suchpfad im Projekt anpasse, dann passt es, aber da mache ich eigentlich nie etwas. |
AW: DeveloperExpress Komponenten von D5 nach D7
Die originalen PAS sind auch nicht für den Compiler gedacht.
Egal wo er sucht, er hat sie eigentlich garnicht zu finden. Für ihn sind nur die DCU (und DFM/RES) im LibrarySearchPath. Sie stehen für den Editor/Debugger in dessen SearchPath, damit der Quellcode zur vorkompilierten DCU angezeigt werden kann. |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Guten Morgen,
nachdem die eine Komponenten nun funktioniert, gibt es zig weitere und die verzahnen dann wieder in andere. Was ein Mist. Ich müsste nun alle Komp, die benötigt nach D7 bringen. Nun gibt es zwei Möglichkeiten: 1. das weiter so durchziehen und hoffen, dass es nicht irgendwann Probleme mit den heute schon installierten D7 Komponenten gibt 2. Delphi 5 und Delphi 10 auf einem System installieren, nur welche Probleme gibt es dann wieder? Borland selbst wird in zwei getrennten Ordnern installiert, aber was davon landet in der Registry und was in SYSTEM32 und überschreibt mir möglicherweise die D7 Installation. Was denkt Ihr? Am liebsten wäre es mir D5 und D7 zu installieren. Danke. |
AW: DeveloperExpress Komponenten von D5 nach D7
Pro Delphiversion eine VM?
Dann dürften die Versionen, Registryeinträge, ... vollständig voneinander getrennt sein. |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Dachte immer, das Borland (und Nachfolger) immer je Delphiversion einen eigenen Zweig in der Registry hatte bzw. haben, so dass da von Haus aus eigentlich kein Durcheinander entstehen sollte.
Worauf man aber dringend achten muss, ist die Quelltexte streng getrennt abzulegen und die Bibliotheks- bzw. Suchpfade klar und unmissverständlich zu trennen. Auch wenn man dann ggfls. diverse Fremdbibliotheken, Fremdkomponenten, ... mehrfach (also redundant) in den Verzeichnissen hat. Ein Versionierungssystem könnte hier durchaus hilfreich sein. |
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Zitat:
|
AW: DeveloperExpress Komponenten von D5 nach D7
Oh mein Gott, ich werde jetzt langsam verrückt und es nimmt kein Ende.
Die Komponente dxDBGRID funktioniert unter D7 in meiner VM unter Windows XP. Die Sourcen habe ich verglichen zu der W10 D7 Installation. Aber ich bekomme die Komponente nicht geladen. Es kommt immer die Meldung: Package xxx kann nicht geladen werden. Das angegebene Modul kann nicht geladen werden. Auch wenn ich die DPK File öffne und auf installieren klicke, kommt diese Meldung. Wie finde ich heraus, was hier fehlt? Habe es mit dem process monitor versucht, aber irgendwie findet der überhaupt keine BPL Files. Es werden alle Verzeichnisse durchsucht und es wird immer "Name not found" angezeigt. Danke. |
AW: DeveloperExpress Komponenten von D5 nach D7
CMD aufrufen
PATH eingeben Ist dort der Pfad zu den BPLs enhalten? Suchmaschine sagt mir zu Windows 10 bezüglich Änderung der Umgebungsvariabeln: Zitat:
Das bisherige Problem mit den Chaos zwischen D5 und D7 könnte eventuell auch darin begründet sein, dass von D7 im Suchpfad zuerst 'ne BPL von D5 gefunden wird und nicht die gleichnamige von D7, die in 'nem anderen oder später im PATH stehenden Verzeichnis gefunden werden kann oder andersherum oder garnicht gefunden wird oder irgendwie so, da kann schon der eine oder andere "Kürmel" entstehen :-( |
AW: DeveloperExpress Komponenten von D5 nach D7
Obwohl jede Delphi-Version seinen eigenen Registry Pfad hat gibt es trotzdem nur eine PATH-Variable. Und da stehen oft Pfad-Angaben der falschen (älteren) Delphi Version zuerst. Dadurch werden dann oft die dcp/bpl von der älteren Delphi Version zuerst gefunden und Delphi ignoriert meiner Erfahrung nach gerne angehängte Versionen wie vclXXX.bpl
Von daher würde ich schon dazu raten, jeweils 1 VM pro Delphi. Inwieweit das jetzt bei DevExpress zutrifft, da die ja das RSXX dranhängen, weiss ich nicht. |
AW: DeveloperExpress Komponenten von D5 nach D7
Es gibt auch gemeinsame globale Verzeichnisse und Registryzweige,
außerdem hatten die alten Delphiversionen noch massenhaft in C:\Windows\System32 reingemüllt. Und ja, dann das PATH, wobei man Packages ja normal besser mit Suffix compiliert und es somit keine Überschneidung geben kann (außer wenn auch auch die suffixlosen DCP und DCU in gemeinsamen Verzeichnissen/Suchpfaden hat) Oder wie gestern bei einem Kollegen, wo gestern ständig die PAS gefunden wurde, obwohl die DCU eigentlich im Suchpfad vorher kommen "sollte" und aus unbekanntem Grund lässt sich die PAS auch grade nicht kompilieren lässt. (ins Package beim anderen Projekt ja, aber in neuem Projekt nicht) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 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 by Thomas Breitkreuz