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/)
-   -   Property strings funktioniert nicht (https://www.delphipraxis.net/192931-property-strings-funktioniert-nicht.html)

idefix2 2. Jun 2017 13:10

Property strings funktioniert nicht
 
Hallo,

ich versuche, einer Edit-Komponente eine Stringliste als zusätzliche Property zu verpassen, und das will mir nicht gelingen.
Es erscheint zwar der Stringlisteneditor als Property Editor im Objectinspector, aber die Strings, die ich eingebe, bleiben nicht gespeichert. Nach mehreren Versuchen, die Strings eizugeben, erscheint die Fehlermeldung:
Code:
---------------------------
Fehler
---------------------------
TActionBars kann nicht zu TRichEditStrings zugewiesen werden.
---------------------------
OK  Details >>  
---------------------------
Hier die Komponente, auf das absolute Minimum reduziert:

Delphi-Quellcode:
unit TestEdit;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls;

type
  TTestEdit = class(TEdit)
  private
    x: TStrings;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Teststrings: TStrings read x write x;
  end;

procedure Register;

implementation

constructor TTestEdit.Create(AOwner: TComponent);
begin
  inherited;
  x:= TStringList.create;
end;

destructor TTestEdit.Destroy;
begin
  x.Free;
  inherited;
end;

procedure Register;
begin
  RegisterComponents('Test', [TTestEdit]);
end;

end.
Was ist da falsch?
TStrings generell durch TStringlist zu ersetzen ändert übrigens nichts am Problem.

DeddyH 2. Jun 2017 13:26

AW: Property strings funktioniert nicht
 
Du lässt ja munter Deine selbst erzeugte Instanz überschreiben. Wie ist es so?
Delphi-Quellcode:
property Teststrings: TStrings read x write SetX;

...

procedure TTestEdit.SetX(const Value: TStrings);
begin
  x.Assign(Value);
end;

idefix2 2. Jun 2017 13:58

AW: Property strings funktioniert nicht
 
Ja, natürlich, so geht es. Danke.

Ich hatte im Hinterkopf, dass bei Listboxen und dergleichen Komponenten eine Zuweisung an die Items Property automatisch in ein assign aufgelöst wird - aber genau das muss man natürlich bei eigenen TStrings via Setter selber machen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 Uhr.

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