Announcement

Collapse
No announcement yet.

TStringlst in eigener Komponente und IDE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TStringlst in eigener Komponente und IDE

    HAllo !
    Habe folgendes Problem : Habe Komponente von TCustomPanel abgeleitet und möchte nun dynamisch TCheckBoxen einfügen - soweit klappt alles - innerhalb und außerhalb der IDE. Ich hätte gerne eine PROPERTY "Texte" als TStringlist,um bei den eingefügten Checkboxen zur Entwicklungszeit Caption belegen zu können. Das Problem dabei ist: Innerhalb der IDE funktioniert das prima, aber zur Laufzeit ist meine Liste leer. Vermutlich durch den Constructor, innerhalb dessen diese ja erst erzeugt wird...Wie verbinde ich also die in der IDE eingegebenen Zeilen zur Laufzeit mit meiner PROPERTY....Dachte immer DELPHI erledigt die Übergabe alleine....

  • #2
    Ohne Codeschnippsel wirds schwierig, aber ich vermute mal, das Problem liegt beim Starten des Programms. Möglicherweise verwirfst du deine alte Liste, indem du einfach eine neue erzeugst und den pointer der alten überschreibst.

    Comment


    • #3
      TStringlist

      Hallo !
      Also versuche es mal kurz :
      FList :TSTringList;
      PROTECTED
      PROCEDURE SetList(aValue : TStringlist)
      PUBLIC
      PROPERTY Texte : TStringlist READ FListe WRITE SetList



      CONSTRUCTOR Tabgeleitet;
      BEGIN
      inherited Create(..);
      FList := TStringlist.Create;
      ...
      END;

      ICh vermute mal, dass der CONSTRUCTOR beim ersten Aufruf in der IDE richtig funktioniert und die Strings aus dem InlineEditor übernimmt, beim zweiten Aufruf (Laufzeit) erfolgt jedoch keine Initialisierung der Strings mehr-folglich muss die Liste Leer bleiben.
      Habe mal bei TListBox nachgesehen...Dort geht das irgendwie "hintenrum":
      Wird ein Objekt erzeugt, welches die Listbox als Variable quasi Huckepack mitnimmt, anschließend werden die Inhalte quasi über Assign vertauscht...hmmm

      Comment


      • #4
        Nur für Published-Properties werden die Werte in der DFM gespeichert!

        Comment


        • #5
          Hi,

          versuch mal explizit die Eigenschaft mit stored in der DFM zu speichern
          Also so

          Code:
          PUBLISHED
          PROPERTY Texte : TStringlist READ FListe WRITE SetList stored True

          Comment

          Working...
          X