![]() |
Property aus eigener Klasse nicht sichtbar
Hallo!
Endlich wieder ein neues Problem ... 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:
Der Zugriff soll dann wie folgt erfolgen:
unit DatPanel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; const AnzLabelsProPanel = 8 ; // Anzahl der Label (Zeilen) pro Panel LabelHeight = 13 ; // Höhe der Label (Zeilen); an Textgröße anpassen RandObenuUnten = 4 ; // Rand oben und unten (jeweils Wert - Rand komplett = 2*Wert) LabelAbstandlinks = 0 ; // Abstand links vom Label zum Panel (O = kein li. Rand) FarbeLabelOdd = clSilver ; // Farbe der ungeraden Labels FarbeLabelEven = clMedGray ; // Farbe der geraden Labels 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 ; implementation constructor TDatPanel.Create(AOwner: TComponent); var i : integer ; begin inherited ; for i := 0 to AnzLabelsProPanel -1 do begin fLabel[i] := TLabel.Create(self); with fLabel[i] do begin Parent:= self ; // Zuweisung des Parent extrem wichtig! AutoSize := false ; // Keine automatsiche Größenanpassung Top := i * LabelHeight + RandObenuUnten ; Left := LabelAbstandlinks ; Height := LabelHeight ; Font.Size := 8 ; Caption := 'TestLine: ' + IntToStr(i+1) ; Name := 'DatLabel' + IntToStr(i) ; Tag := i ; if odd(i) then fLabel[i].Color := FarbeLabelOdd else fLabel[i].Color := FarbeLabelEven ; end ; end ; end; function TDatPanel.GetMinPanelHeight: Integer; begin Result := AnzLabelsProPanel * LabelHeight + 2 * RandObenuUnten ; end;
Delphi-Quellcode:
Beide sind vom Typ Integer. Was mache ich verkehrt? :gruebel:
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. // Hier wird mich nicht mein Property "MinPanelHeight" angeboten aDP[i].Top := i * aDP[i].Height ; aDP[i].Width := Scrollbox.ClientWidth ; end ; end ; Gruß und Dank glunzl |
Re: Property aus eigener Klasse nicht sichtbar
Propertys müssen IMHO in den published Abschntt rein.
Mfg Tobi |
Re: Property aus eigener Klasse nicht sichtbar
Kommt manchmal vor, wenn du zB die Komponente umschreibst aber nicht neu Installierst/Compilierst.
Dann hat die IDE noch die alte Version im Speicher... einfach die Property ausschrieben dann sollte es schon gehen. * Propertys müssen IMHO in den published Abschntt rein. * nicht ganz das ist nur nötig wenn sie im OI sichtbarsein sollen sonst reicht public |
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
|
Re: Property aus eigener Klasse nicht sichtbar
Hallo glunzl,
DatPanel ist der Name der Unit. Welche Eigenschaften erwartest du da? Gruß Hawkeye |
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
|
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
|
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
/Add *wenn du aber nach TDatPanel. den Vorschlag für diese Property willst muss es aber in den Published.* nope, (private protected public und published) werden bei mir alle von CodeInspetor angeboten, wobei privat und protected nur wenn ich in der gleichen Unit bin (oder eben Vererbt wurde <== nicht ganz sicher) |
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
Zitat:
|
Re: Property aus eigener Klasse nicht sichtbar
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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