AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Umgang mit Collections - AV im OI

Ein Thema von glkgereon · begonnen am 31. Mai 2007
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Umgang mit Collections - AV im OI

  Alt 31. Mai 2007, 21:22
Hiho,

Ich mache grade meine ersten Gehversuche mit Collections. Wie nicht anders zu erwarten scheint es zunächst zu scheitern, aber ich vertraue mal wieder auf euch

Also, aus verschiedenen Tutorials zusammengelesen und geklaubt ist nun folgender Code:
Delphi-Quellcode:
type
  THotkey = class;

  THotkeyList = class(TCollection)
  private
    FOwner: TPersistent;
    function GetItem(Index: Integer): THotkey;
    procedure SetItem(Index: Integer; Value: THotkey);
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(AOwner: TPersistent);
    function Add: THotkey;
    property Items[Index: Integer]: THotkey read GetItem write SetItem; default;
  end;

  THotkey = class(TCollectionItem)
  private
    FVKCode: Cardinal;
    FModifier: Cardinal;
  public
    constructor Create(Collection: TCollection); override;
    procedure Assign(Hk: TPersistent);
  published
    property VKCode: Cardinal read FVKCode write FVKCode;
    property Modifier: Cardinal read FModifier write FModifier;
  end;

implementation

procedure THotkey.Assign(Hk: TPersistent);
begin
  with Hk as THotkey do
  begin
    FVKCode:=VKCode;
    FModifier:=Modifier;
  end;
end;

constructor THotkey.Create(Collection: TCollection);
begin
  FVKCode:=0;
  FModifier:=0;
end;

constructor THotkeyList.Create(AOwner: TPersistent);
begin
  inherited Create(THotkey);
  FOwner := AOwner;
end;

function THotkeyList.Add: THotkey;
begin
  Result := THotkey(inherited Add);
end;

function THotkeyList.GetItem(Index: Integer): THotkey;
begin
  Result := THotkey(inherited GetItem(Index));
end;

function THotkeyList.GetOwner: TPersistent;
begin
  Result := FOwner;
end;

procedure THotkeyList.Update(Item: TCollectionItem);
begin
  // <-- Muss hier was hin?
end;

procedure THotkeyList.SetItem(Index: Integer; Value: THotkey);
begin
  inherited SetItem(Index, Value);
end;
Nun, vorher habe ich dafür eine ObjectList verwendet und es hat wunderbar geklappt...
Aber ich wollte die halt auch im Objekt-Inspektor verwenden können...und dafür scheinen Collections ja ein muss zu sein.

Wenn ich die entsprechende Eigentschaft im Objektinspektor anklicke (sie wird schon mal angezeigt...) kommt die übliche leere Liste (soweit, so gut). Möchte ich dann aber ein Item hinzufügen legt sich Delphi mit einer AV auf die Nase.
Was mache ich in dem Code hier noch falsch?
»Unlösbare Probleme sind in der Regel schwierig...«
  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 10:00 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