Zitat von
glunzl:
In meiner eigenen Klasse habe ich eine Eigenschaft deklariert. Mit einer Read Methode möchte ich darauf zugreifen. Es werden mir aber beim Zugriff nur die Konstanten angeboten.
Delphi-Quellcode:
type TDatPanel = class(TPanel)
private
fLabel : Array [0..AnzLabelsProPanel - 1] of TLabel ;
function GetMinPanelHeight: Integer ;
public
constructor Create(AOwner: TComponent); override ;
procedure Resize; override ;
property MinPanelHeight : Integer read GetMinPanelHeight ;
end ;
Ich vermute einmal: Das eigentliche Problem liegt darin, dass MinPanelHeight als read-only-Eigenschaft festgelegt wurde, die Read-Funktion nur die Konstanten auswertet und es
keine Stelle gibt, an der irgendwelche Werte
verändert werden.
Vielleicht entspricht folgendes Verfahren Deinen Intentionen:
Delphi-Quellcode:
private FMinPanelHeight : integer;
property MinPanelHeight : Integer read FMinPanelHeight write SetMinPanelHeight;
...
procedure TDatPanel.SetMinPanelHeight(Value: integer);
var i: integer;
begin
i := GetMinPanelHeight;
if (i <= Value)
then FMinPanelHeight := Value
else FMinPanelHeight := i;
end;
Gruß Jürgen
[/edit]Nachtrag
Zitat von
glunzl:
Aus einer anderen
Unit (die von Form1, bei mir Main) möchte ich nun auf die Eigenschaft "
property MinPanelHeight", mit Hilfe der automatischen Codevervollständigung (Objekt
.Eigenschaft) zugreifen.
Ich könnte mir vorstellen, dass daran die Optimierung durch den Compiler schuld ist: Weil
GetMinPanelHeight ausschließlich auf Konstante zugreift, kann auch das Ergebnis und damit die "Eigenschaft" MinPanelHeight als Konstante verstanden werden, sodass es deshalb bei der Codevervollständigung nicht angeboten wird.