AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Property strings funktioniert nicht

Ein Thema von idefix2 · begonnen am 2. Jun 2017 · letzter Beitrag vom 2. Jun 2017
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Property strings funktioniert nicht

  Alt 2. Jun 2017, 13:10
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.

Geändert von idefix2 ( 2. Jun 2017 um 13:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Property strings funktioniert nicht

  Alt 2. Jun 2017, 13:26
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Property strings funktioniert nicht

  Alt 2. Jun 2017, 13:58
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...

Geändert von idefix2 ( 2. Jun 2017 um 14:01 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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