![]() |
Re: Property aus eigener Klasse nicht sichtbar
Hallo!
Die Klasse TDatPanel ist in ihrere eigenen Unis DatPanel geschrieben. 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. Inzwischen habe ich die Property in einen Publisched Bereich geschrieben, brachte allerdings kein Erfolg.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var aDP: Array [0..15] of TDatPanel ; i : integer ; begin for i := 0 to 15 do begin aDP[i] := TDatPanel.Create(ScrollBox); aDP[i].Parent := Scrollbox ; aDP[i].Height := DatPanel.MinPanelHeight // So hatte ich mir das vorgestellt // Hier wird mir nicht mein Property "MinPanelHeight" // nach dem Punkt angeboten aDP[i].Top := i * aDP[i].Height ; aDP[i].Width := Scrollbox.ClientWidth ; end ; end; |
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
Vielleicht entspricht folgendes Verfahren Deinen Intentionen:
Delphi-Quellcode:
Gruß Jürgen
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; [/edit]Nachtrag Zitat:
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. |
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
Versuchs also mal so:
Delphi-Quellcode:
aDP[i].Height := aDP[i].MinPanelHeight ;
|
Re: Property aus eigener Klasse nicht sichtbar
Hallo grunzl,
die Antworten genau lesen, man hat dir bereits geholfen: Zitat:
Delphi-Quellcode:
An der Stelle A C H T U N G hast du versucht auf die Unit der Komponete zu zugreifen. Diese "kennt" aber keine Funktion mit dem Namen MinPanelHeight. Diese kennt nur die Klasse. Somit zugriff nur über eine Instanz der Klasse. Wenn deine Berechnung wie in diesem Beispiel aber nur von Konstanten abhängig ist und nicht von Eigenschaften der Klasse, dann mach doch eine Funktion draus die Klassenunabhängig ist.
procedure TForm1.Button2Click(Sender: TObject);
var aDP: Array [0..15] of TDatPanel ; i : integer ; begin for i := 0 to 15 do begin aDP[i] := TDatPanel.Create(ScrollBox); aDP[i].Parent := Scrollbox ; aDP[i].Height := aDP[i].MinPanelHeight;//A C H T U N G // Hier wird mich nicht mein Property "MinPanelHeight" angeboten aDP[i].Top := i * aDP[i].Height ; aDP[i].Width := Scrollbox.ClientWidth ; end ; end; Gruß, Chris // Edit: Da war jemand schneller als ich ;-) Look @ Jelly |
Re: Property aus eigener Klasse nicht sichtbar
@Jelly: Bingo! Das wars
Delphi-Quellcode:
:wall: Danke!
aDP[i].Height := aDP[i].MinPanelHeight ;
@ChrisE: Genau lesen ist ja so eine Wissenschaft für sich ... Zitat:
Dank an alle! glunzl |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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