AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TCollection: Problem bei Verwendung in Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

TCollection: Problem bei Verwendung in Komponente

Ein Thema von Zacherl · begonnen am 23. Aug 2008 · letzter Beitrag vom 24. Aug 2008
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

TCollection: Problem bei Verwendung in Komponente

  Alt 23. Aug 2008, 18:41
Hey,

ich habe eine Komponente, der ich eine Eigenschaft vom Collection Typ gegeben habe.

property MyCol: TMyCollection read FMyCol write FMyCol; MyCollection und MyCollectionItem haben folgende Methoden:

Delphi-Quellcode:
type
  TMyCollectionItem = class(TCollectionItem)
  private
    FIrgendwas: String;
    function GetDisplayName: String; override;
  protected

  public

  published
    property Irgendwas: String read FIrgendwas write FIrgendwas;
  end;
  
  TMyCollection = class(TCollection)
  private
    function GetItem(Index: Integer): TMyCollectionItem;
    procedure SetItem(Index: Integer; Value: TMyCollectionItem);
  protected

  public
    function Add: TMyCollectionItem;
    property Item[Index: Integer]: TMyCollectionItem read GetItem;
  published

  end;
Klapt auch alles soweit, dass die Property im OI angezeigt wird und dass ich Items hinzufügen und entfernen kann. Leider klapt es nicht einem Item einen Wert zur Designtime zuzuweisen. Erstmal habe ich im OnCreate meiner Komponente Code drinnen, der 2 CollectionItems hinzufügt und Irgendwas setzt.
Die Items sehe ich dann auch zur Designtime, aber Irgendwas ist leer. Setze ich jetzt Irgendwas z.b auf "test" und frage den Wert zur Laufzeit ab, so ist dieser wieder leer.

Weiß jemand, woran das liegen könnte?

Gruß Zacherl
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TCollection: Problem bei Verwendung in Komponente

  Alt 23. Aug 2008, 18:47
Wird TMyCollection.Create mit TMyCollectionItem als Parameter aufgerufen?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: TCollection: Problem bei Verwendung in Komponente

  Alt 23. Aug 2008, 18:48
Ja ..
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TCollection: Problem bei Verwendung in Komponente

  Alt 23. Aug 2008, 18:53
Was steht in der .dfm?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: TCollection: Problem bei Verwendung in Komponente

  Alt 23. Aug 2008, 19:06
Da scheint es korrekt eingetragen zu sein:

Code:
object Form2: TForm2
  Left = 0
  Top = 0
  Caption = 'Form2'
  ClientHeight = 284
  ClientWidth = 418
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object dxICQClient1: TdxICQClient
    LoginHost = 'login.icq.com'
    Capabilities = <
      item
      end
      item
      end
      item
        Capability = 'test'
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end>
    ClientDetection = <>
    Left = 152
    Top = 112
  end
end
Wobei ich nicht verstehe, warum die im OnCreate des TdxICQClient zugewiesenen Capabilites nicht eingetragen werden. Da geht es mit:

FCapabilities.Add.Capability := 'irgendwas';
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: TCollection: Problem bei Verwendung in Komponente

  Alt 24. Aug 2008, 16:21
So, hatte vergessen bei der Items Property den Setter SetItem auch anzugeben. Klapt allerdings immer noch nicht

Weise ich allerdings zur Laufzeit einem Item einen Wert zu, so wird dieser auch korrekt ausgegeben. Nur zur Designtime will es nicht funktionieren.
  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 12:30 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