AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TStringList als Property
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList als Property

Ein Thema von IIIMADDINIII · begonnen am 29. Mär 2009 · letzter Beitrag vom 30. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
IIIMADDINIII
(Gast)

n/a Beiträge
 
#1

TStringList als Property

  Alt 29. Mär 2009, 21:08
hallo erst mal

Ich arbeite an einer neuen komponente. Ich wollte eine TStringList zu den Propertys hinzufügen. Aber immer wenn ich auf dieses property zugreifen will Sagt er mir das er ein Read error hat. Ich habe keine ahnung woran es liegt. ich habe diesen fehler jetzt schon drei tage und er will sich nicht auflösen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TStringList als Property

  Alt 29. Mär 2009, 21:19
Glaskugel auspack: Du solltest die Stringliste in deiner Komponente auch anlegen

Delphi-Quellcode:
type
  TMyType = class(TPersistent)
  private
    FMyStringList: TStrings;
  public
    constructor Create(Owner: TObject);
    MyStringList: TStrings read FMyStringList write SetMyStringList;
  end;

constructor TMyType.Create(Owner: TObject);
begin
  inherited

  FMyStringList := TStringList.Create;
end;

procedure SetMyStringList(Value: TStrings);
begin
  FMyStringList.Assign(Value);
end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: TStringList als Property

  Alt 29. Mär 2009, 21:33
@Bernhard Geyer: Willst du nicht lieber das "property" Schlüsselwort verwenden? Und vielleicht den Member auch wieder freigeben?
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#4

Re: TStringList als Property

  Alt 29. Mär 2009, 21:42
ich habe die stringliste declariert ind auch gecreatet funct aber trotzdem nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TStringList als Property

  Alt 29. Mär 2009, 21:44
Wie versuchst du darauf zuzugreifen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TStringList als Property

  Alt 29. Mär 2009, 21:51
Zitat von Muetze1:
@Bernhard Geyer: Willst du nicht lieber das "property" Schlüsselwort verwenden? Und vielleicht den Member auch wieder freigeben?
Wer will den gleich so kleinlich sein
Wenn man Abends sich nebenbei mit Word und Einladungskarten herumärgern muss

Zitat von IIIMADDINIII:
ich habe die stringliste declariert ind auch gecreatet funct aber trotzdem nicht
Dann lass doch mal etwas Code rüberwachsen. Du sieht ja das So abend die Glaskugen nicht so richtig funktionieren. Muss an der Zeitumstellung liegen ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: TStringList als Property

  Alt 30. Mär 2009, 10:08
Meine Glaskugel sagt
count=0

Gruß
K-H
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#8

Re: TStringList als Property

  Alt 30. Mär 2009, 10:20
Zitat von Bernhard Geyer:
Wenn man Abends sich nebenbei mit Word und Einladungskarten herumärgern muss
OT: dann nimm doch OpenOffice


Gruss Kh
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: TStringList als Property

  Alt 30. Mär 2009, 10:25
Ohne das jetzt ausprobiert zu haben: genügt nicht eine ReadOnly-Property, da man die Instanz ja nicht verändern möchte, sondern nur ihre Methoden aufrufen?
Delphi-Quellcode:
type
  TMyType = class(TPersistent)
  private
    FMyStringList: TStrings;
  public
    constructor Create(Owner: TComponent);override;
    destructor Destroy;override;
    property MyStringList: TStrings read FMyStringList;
  end;

constructor TMyType.Create(Owner: TComponent);
begin
  inherited;
  FMyStringList := TStringList.Create;
end;

destructor TMyType.Destroy;
begin
  FMyStringList.Free;
  inherited;
end;
Nur dahergetippt, daher ohne Gewähr.
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
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: TStringList als Property

  Alt 30. Mär 2009, 10:32
Zitat von DeddyH:
Ohne das jetzt ausprobiert zu haben: genügt nicht eine ReadOnly-Property, da man die Instanz ja nicht verändern möchte, sondern nur ihre Methoden aufrufen?
- Wenn die Property in den Published Bereich verschoben werden soll, dann würde sie im Inspektor nicht auftauschen, wenn sie r/o ist.
/EDIT: nicht ohne weiteres. Es gibt die Möglichkeit mit Rechtsklick auf dem OI alle r/o Properties mit anzuzeigen.
- Er hat extra einen Setter geschrieben, damit er intern Assign() aufruft, was der vollkommen korrekte Weg wäre und diese Property auch Komponententauglich/Objektinspektor-tauglich zu machen.
- Grundsätzlich hast du Recht, es würde reichen, aber mit einem Setter und Assign() würde auch sowas möglich werden:

  MyType.MyStringList := ListBox1.Items; Bei deiner Lösung ohne Setter müsste man immer

  MyType.MyStringList.Assign(ListBox1.Items); nutzen. Im Endeffekt der gleiche Code, nur beim zweiten muss das auch der x. Anwender von TMyType dieses Wissen haben. Ersteres klappt nach Plug'n'Pray Methoden und verhält sich gleich zur VCL.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:40 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