AGB  ·  Datenschutz  ·  Impressum  







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

Eigenschaft überschreiben

Ein Thema von F.W. · begonnen am 8. Apr 2005 · letzter Beitrag vom 9. Apr 2005
 
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Eigenschaft überschreiben

  Alt 8. Apr 2005, 22:46
N'abend!

Ich sitzt jetzt schon seit 4 Stunden an einem Problem:

Ich leite eine Komponente von TTimer ab. Dafür muss ich die Eigenschaft "Interval" überschreiben, weil ich deren Schreibmethode erweitern möchte.
In der OH steht folgendes:
Delphi-Quellcode:
Die folgenden Deklarationen zeigen, wie Eigenschaften überschrieben werden können:

type
  TAncestor = class
   ...
  protected
    property Size: Integer read FSize;
    property Text: string read GetText write SetText;
    property Color: TColor read FColor write SetColor stored False;
    ...
  end;
type
  TDerived = class(TAncestor)
   ...
  protected
    property Size write SetSize;

  published
    property Text;
    property Color stored True default clBlue;
    ...
  end;

Beim Überschreiben von Size wird die Angabe write hinzugefügt, damit der Wert der Eigenschaft geändert werden kann. Die Sichtbarkeit der Eigenschaften Text und Color wird von protected in published geändert. Für die Eigenschaft Color wird außerdem festgelegt, dass sie in der Formulardatei gespeichert wird, wenn sie einen anderen Wert als clBlue hat.
Hier ist allerdings nicht die Implementation gezeigt. Momentan sieht das ganze bei mir so aus:
Delphi-Quellcode:
type
  TZeitgeber = class(TTimer)
  private
    procedure SetInterval(const Value: Cardinal);
  published
    property Interval write SetInterval;

{ ... }

procedure TZeitgeber.SetInterval(const Value: Cardinal);
begin
 Interval := Value;
end;
Das sind die relevanten Teile. Wenn man sich das ansieht, kommt man schnell darauf, dass hier ein Stacküberlauf produziert wird!

Wie kann ich dieses Problem lösen? Wenn ich die Zeile "Interval := Value;" weglasse kann ich der Eigenschaft keine Werte mehr zuuweisen!

[EDIT]Hatte die OH als Zitat, wodurch die Formatierung (Leerzeichen) nicht beachtet wurden! >> Delphi-Code draus gemacht![/EDIT]
  Mit Zitat antworten Zitat
 


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:24 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-2025 by Thomas Breitkreuz