Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#4

Re: Published Eigenschaft nicht vom Typ Array?

  Alt 14. Jun 2006, 10:11
Du kannst zwar nicht das Array selber als Property machen, wohl aber die Einträge. Dazu erstellst Du eine Indexproperty, die vom Typ String und benutzt get-und Set-Methoden:
Delphi-Quellcode:
...
  Property Text1[Index: Integer]: String Read GetText1 write SetText1;
...
Die Get-Set Methoden sehen dann so aus:
Delphi-Quellcode:
  Function GetText1(Index: Integer): String;
  Procedure SetText(Index: Integer; Value: String);
Im Funktionskörper kannst Du dann auf Dein Array zugreifen, nämlich auf den Eintrag, der mit Index angegeben ist.

Von aussen greift mann dann so zu:
Delphi-Quellcode:
  MyObj.Text1[0]:='Foo';
...
  If MyObj.Text1[0]='Foo'
  Then begin
  ...
Wenn Du allerdings zur Entwurfsteit zugreifen willst, musst Du einen Property-Editor bauen, aber das ist ein anderes Thema.

Eine Alternative wäre allerdings, anstelle des TextArrays eine TStringList zu nehmen, dann sähe die Property so aus:
  Property Text1: TStrings Read fText1; Schreibzugriff solltest Du aber dann vermeiden, da man sonst eine andere Stringliste deiner Instanz unterjubeln kann, bzw das Ding auf Nil setzten und dann wird braun.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat