Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   DeveloperExpress Komponenten von D5 nach D7 (https://www.delphipraxis.net/212338-developerexpress-komponenten-von-d5-nach-d7.html)

KlausV 27. Jan 2023 11:57

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

dataspider 27. Jan 2023 12:23

AW: DeveloperExpress Komponenten von D5 nach D7
 
Gibt es .INC Dateien?
Bei neueren DevExpress steht dann so was drin (cxVer.inc):
Delphi-Quellcode:
{$IFDEF VER150} { Borland Delphi 7.0 }
  {$DEFINE DELPHI4}
  {$DEFINE DELPHI5}
  {$DEFINE DELPHI6}
  {$DEFINE DELPHI7}
{$ENDIF}
Dann sollte es kein Problem sein...

Frank

KlausV 27. Jan 2023 12:34

AW: DeveloperExpress Komponenten von D5 nach D7
 
Hallo Frank,
ja, es gibt eine INC Datei (dxFLVer.inc).
Code:
{$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}
D.h. ich packe das hier dazu:
{$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?

Alter Mann 27. Jan 2023 12:45

AW: DeveloperExpress Komponenten von D5 nach D7
 
Hallo,

hast du diese Datei(en)?
Code:
...\JEDIVisualComponentLibraryJVCL-3.8\archive\JvTimerListForm.* (pas | dfm)
...\JEDIVisualComponentLibraryJVCL-3.8\common\JVCL.INC
Dann hast du auch die Lösung (ist nur eine Leseübung)

KlausV 27. Jan 2023 12:51

AW: DeveloperExpress Komponenten von D5 nach D7
 
Zitat:

Zitat von Alter Mann (Beitrag 1517947)
Hallo,

hast du diese Datei(en)?
Code:
...\JEDIVisualComponentLibraryJVCL-3.8\archive\JvTimerListForm.* (pas | dfm)
...\JEDIVisualComponentLibraryJVCL-3.8\common\JVCL.INC
Dann hast du auch die Lösung (ist nur eine Leseübung)

nein, die gibt es nicht.

BerndS 27. Jan 2023 13:00

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}

KlausV 27. Jan 2023 13:07

AW: DeveloperExpress Komponenten von D5 nach D7
 
Zitat:

Zitat von BerndS (Beitrag 1517954)
Da deine Quellen der Komponenten kein D5 oder größer kennt reicht hier:
Delphi-Quellcode:
{$IFDEF VER150} { Borland Delphi 7.0 }
{$DEFINE DELPHI4}
{$ENDIF}

Sorry verstehe nicht, es wird doch Delphi6 auch abgefragt und die Komponenten sind für D5 entwickelt!

dataspider 27. Jan 2023 13:08

AW: DeveloperExpress Komponenten von D5 nach D7
 
Richtig, Delphi 4 - 6 musst du eintragen...
Delphi-Quellcode:
{$IFDEF VER150} { Borland Delphi 7.0 }
  {$DEFINE DELPHI4}
  {$DEFINE DELPHI5}
  {$DEFINE DELPHI6}
{$ENDIF}
Frank

dataspider 27. Jan 2023 13:13

AW: DeveloperExpress Komponenten von D5 nach D7
 
Zitat:

Zitat von KlausV (Beitrag 1517945)
Aber wie ist das mit den Prüfungen auf Delphi 6 zu verstehen? Die greifen dann ja nur, wenn D6 installiert ist, oder?

Nein, wenn in der INC steht:
Delphi-Quellcode:
{$DEFINE DELPHI6}
dann wird im Code in

Delphi-Quellcode:
{$IFDEF DELPHI6}
  // Code
{$ENDIF}
kompiliert...

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

KlausV 30. Jan 2023 12:14

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz