AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Published Eigenschaft nicht vom Typ Array?
Thema durchsuchen
Ansicht
Themen-Optionen

Published Eigenschaft nicht vom Typ Array?

Ein Thema von JPSelter · begonnen am 14. Jun 2006 · letzter Beitrag vom 14. Jun 2006
Antwort Antwort
Benutzerbild von JPSelter
JPSelter

Registriert seit: 24. Jan 2005
Ort: Attendorn/Sauerland
235 Beiträge
 
Turbo Delphi für Win32
 
#1

Published Eigenschaft nicht vom Typ Array?

  Alt 14. Jun 2006, 09:54
Ich versuche in ein Objekt einen Array einzubringen mit diesem Code:

Delphi-Quellcode:
TDetailObject = class
    private
      [...]
      ftext1count: integer;
      ftext1: TTextArray;
      [...]
    published
      [...]
      property text1count: integer read ftext1count write ftext1count;
      property text1: TTextArray read ftext1 write ftext1; <---- error
      property text2count: integer read ftext2count write ftext2count;
      property text2: TTextArray read ftext2 write ftext2; <---- error
      [...]
  end;
Das geht aber nicht, weil er keinen Array im Published haben will. Ich habe mir dazu die Hilfe mal angesehen, aber ich verstehe die Lösung dort nicht, bzw es funktioniert so nicht. Was muss ich tun?

Damit verknüpft ist eine zweite Frage: Muss ich Text aus einem Memo unbedingt so speichern wie hier oben? Also die Zeilenanzahl merken und dann alles zeilenweise in einen Array? Bei PHP/MySQL gibt es den Datentyp TEXT, der mir sogar die Zeilenumbrüche mitspeichert. Wenn das bei Delphi so einfach wäre, dann könnte ich mir den obigen Array wiederum sparen.
Danke für Eure Hilfe!
=JPSelter=

Visit www.ditonovia.de for our breathtaking movies: Herrin der Ringe (Fantasy 2005), Hemisphere (Science-Fiction 2004) & Braveknife (Parodie 2001) and more...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Published Eigenschaft nicht vom Typ Array?

  Alt 14. Jun 2006, 10:00
Sparen ist gut. Memo.Text ist ein String, der alle notwendigen Zeilenumbrüche enthält.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von JPSelter
JPSelter

Registriert seit: 24. Jan 2005
Ort: Attendorn/Sauerland
235 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Published Eigenschaft nicht vom Typ Array?

  Alt 14. Jun 2006, 10:04
Habe ich grad auch entdeckt Die Eigenschaft Text taucht im Objekt-Inspektor nicht auf...
=JPSelter=

Visit www.ditonovia.de for our breathtaking movies: Herrin der Ringe (Fantasy 2005), Hemisphere (Science-Fiction 2004) & Braveknife (Parodie 2001) and more...
  Mit Zitat antworten Zitat
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
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 06: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