AGB  ·  Datenschutz  ·  Impressum  







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

Unterproperty in Objektinstpektor

Ein Thema von Taladan · begonnen am 2. Sep 2003 · letzter Beitrag vom 5. Sep 2003
Antwort Antwort
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1

Re: Unterproperty in Objektinstpektor

  Alt 3. Sep 2003, 09:09
@Nimoee: wenn du gleich gesagt hättest, dass du auch keine Ahnung hast wie das geht, anstatt den Eindruck zu vermitteln du wüsstest es, sagst es aber nicht wäre es vielleicht einfacher gewesen...

Aber ok, dann geb ich mal Code-Beispiele für beide Möglichkeiten:

1) Enumerations-Typ
Delphi-Quellcode:
  TMyEnumeration = (meFirst, meSecond, meThird, meFourth);

  TMyObject = class(TComponent)
    private
      FMyEnumeration: TMyEnumeration;
    published
      property MyEnumeration: TMyEnumeration read FMyEnumeration write FMyEnumeration;
  end;
2) TPersisten-Nachfolger
Delphi-Quellcode:
  TMyPersistentObject = class(TPersistent)
    private
      FIntegerProperty: Integer;
      FStringProperty: String;
      FColorProperty: TColor;
    public
      procedure Assign(Source: TPersistent); override;
    published
      property StringProperty: String read FStringProperty write FStringProperty;
      property IntegerProperty: Integer read FIntegerProperty write FIntegerProperty;
      property ColorProperty: TColor read FColorProperty write FColorProperty;
      {...}
  end;

  TMyObject = class(TComponent)
    private
      FMyPersistentObject: TMyPersistentObject;
      procedure SetMyPersistentObject(const Value: TMyPersistentObject);
    public
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
    published
      property MyPersistenObject: TMyPersistentObject read FMyPersistentObject write SetMyPersistentObject;
  end;


{ TMyPersistentObject }

procedure TMyPersistentObject.Assign(Source: TPersistent);
begin
  if (Source <> nil) and (Source is TMyPersistentObject) then
  with TMyPersistentObject(Source) do
  begin
    Self.FIntegerProperty := FIntegerProperty;
    Self.FStringProperty := FStringProperty;
    Self.FColorProperty := FColorProperty;
  end
  else
    inherited Assign(Source);
end;

{ TMyObject }

constructor TMyObject.Create(AOwner: TComponent);
begin
  inherited;
  FMyPersistentObject := TMyPersistentObject.Create;
end;

destructor TMyObject.Destroy;
begin
  FMyPersistentObject.Free;
  inherited;
end;

procedure TMyObject.SetMyPersistentObject(const Value: TMyPersistentObject);
begin
  FMyPersistentObject.Assign(Value);
end;
Manuel Pöter
  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 04:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz