Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Komponenten-Fehler (https://www.delphipraxis.net/199617-komponenten-fehler.html)

tomkupitz 6. Feb 2019 12:29

Komponenten-Fehler
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

ich habe folgende Komp.:

Code:
unit DemoManager;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TDemoManager = class(TComponent)
  private
    FStrings: TStrings;

    procedure SetStrings(Value: TStrings);
  protected

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property Strings: TStrings read FStrings write SetStrings stored False;
  end;

implementation

constructor TDemoManager.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FStrings:=TStringList.Create;
end;

destructor TDemoManager.Destroy;
var i: Integer;

begin
  for i:=0 to FStrings.Count-1 do
    if FStrings.Objects[i]<>nil then
      FStrings.Objects[i].Free;

  FStrings.Free;

  inherited Destroy;
end;

procedure TDemoManager.SetStrings(Value: TStrings);
begin
  if csDesigning in ComponentState then
    FStrings.Assign(Value);
end;

end.
und

Code:
unit DesignDemoManager;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DesignIntf, DesignEditors,
  DemoManager;

type
  TDemoEditor = class(TPropertyEditor)
  public
    FStrings: TStrings;
   
    procedure Edit; override;
    function GetAttributes: TPropertyAttributes; override;
    function GetValue: string; override;
    function GetName: string; override;
  end;

procedure Register;

implementation

procedure TDemoEditor.Edit;
begin
  ShowMessage('OK');
end;

function TDemoEditor.GetAttributes: TPropertyAttributes;
begin
  result := [paDialog, paReadOnly];
end;

function TDemoEditor.GetValue: string;
begin
  result := '[DemoEditor]';
end;

function TDemoEditor.GetName: string;
begin
  result := 'Editor';
end;

//

procedure Register;
begin
  RegisterComponents('New', [TDemoManager]);
  RegisterPropertyEditor(TypeInfo(TStrings), TDemoManager, 'Strings', TDemoEditor);
end;

end.
Diese Komp. habe ich so installiert: siehe Abb. 2.jpg

Das Installieren funktioniert noch. Wenn ich aber DesignComponents.bpl erzeuge erhalte ich die Meldung: siehe Abb. 1.jpg

Woran liegt das und was kann/muss ich tun?

Danke und beste Grüße

hoika 6. Feb 2019 12:32

AW: Komponenten-Fehler
 
Hallo,
was passiert, wenn du den TDemoManager in seiner eigenen Unit registrierst
und wie sieht Deine DesignComponents.bpl aus?

tomkupitz 6. Feb 2019 13:15

AW: Komponenten-Fehler
 
Zitat:

was passiert, wenn du den TDemoManager in seiner eigenen Unit registrierst
ändert sich nichts.

Zitat:

und wie sieht Deine DesignComponents.bpl aus?
Was meinst du damit? (nur diese eine Komp., ansonsten default Package)

Dennis07 6. Feb 2019 13:28

AW: Komponenten-Fehler
 
Das kommt häufiger mal, wenn deine installierte/verwendete BPL nicht die selbe ist, die du kompiliert hast.
Schaue mal in den installierten Packages bzw den Laufzeit-Packages, ob das dort verwendete BPL auch genau das ist, was du zum Debuggen/Kompilieren benutzt.

tomkupitz 6. Feb 2019 14:16

AW: Komponenten-Fehler
 
DesignComponents.bpl gibt es genau zwei mal. Einmal für Delphi10Seattle (hier liegt das Problem) und einmal Delphi10.3Rio.

hoika 6. Feb 2019 16:22

AW: Komponenten-Fehler
 
Hallo,
ich meinte, welche Units in der dpr drinstehen, die beiden oder nur eine davon.
Es sieht ja so aus, als ob der Linker was rausgeschmissen hat.

tomkupitz 6. Feb 2019 17:55

AW: Komponenten-Fehler
 
In der DesignComponents.bpl ist nur DesignComponents.pas vorhanden. Das ist alles.

Gedankenspiel:


Die DesignComponents.bpl gibt es genau zweimal, unter

C:\Users\Public\Documents\Embarcadero\Studio\17.0\ Bpl\

und

C:\Users\Public\Documents\Embarcadero\Studio\20.0\ Bpl\

Konflikte zw. Seattle und Rio können das nicht sein?

tomkupitz 7. Feb 2019 15:47

AW: Komponenten-Fehler
 
Ich habe festgestellt, dass es sich um einen Seattle Rio Konflikt handelt. In beiden IDE’s gibt es jew. die Components.bpl und DesignComponents.bpl. Seattle greift definitiv auf die Rio bpl‘s zu. Benenne ich die Rio bpl‘s um, benutzt Seattle seine eigenen bpl's und es funktioniert immer. Das scheint ein Pfadproblem der IDE’s zu sein.

Lösung: Ich werde die bpl‘s nun mit der jew. Versionskennung (Seattle und Rio) versehen und hoffe, das dass Problem dann gelöst ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.

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