Hallo!
Ich gehe davon aus, dass Du mit einer indizierten Property arbeiten möchtest.
Dann könntest Du die LabelCaptions mit folgender Syntax ansprechen:
aDP[i].LabelText[j]
Dazu deklarierst Du Deine Property LabelText im public-Abschnitt (nicht published, das funktioniert nicht) folgendermaßen:
property LabelText [index : integer] : String read GetLabelText write SetLabelText;
Deine Getter und Setter Routinen müssen dann so aussehen:
Delphi-Quellcode:
function TDatPanel.GetLabelText(index: integer): String;
begin
if ((index >= low (flabel)) and (index <= high (flabel))) then
begin
Result := flabel [index].Caption;
end
else
begin
// Fehlermeldung
end;
end;
procedure TDatPanel.SetLabelText(index: integer; const Value: String);
begin
if ((index >= low (flabel)) and (index <= high (flabel))) then
begin
flabel [index].Caption := Value;
end
else
begin
// Fehlermeldung
end;
end;
Zitat:
Und dann noch gemeiner ... Kann man über Scrollbox. ... nach auf die Labels zugreifen?
generell ja. In Deinem jetzigen Aufbau müßtest Du allerdings eine ganze Menge casten.
Ich gehe mal davon aus, dass Du damit liebäugelst, eine Komponente zu bauen, die aus einer Scrollbox besteht, die n Datpanels enthält. In dieser könntest Du dann entsprechend die Properties nach außen durchschleifen.
Du könntest dann in dieser abgeleiteten Scrollbox eine property LabelText einfügen, die über zwei Indexe verfügt, einen für das DatPanel und einen für das Label auf den Panel. Das sähe dann so aus:
Delphi-Quellcode:
TDatScrollBox = class (TScrollBox)
private
function GetLabelsText(PanelNo, LabelNo: integer): string;
procedure SetLabelsText(PanelNo, LabelNo: integer; const Value: string);
public
LabelText [PanelNo, LabelNo : integer]:String read GetLabelText write SetLabelText
end;
Hope it helps
onlinekater
@mkienzler: ?????
@Threadersteller: Titel paßt nicht so ganz, Du möchtest nicht auf vererbte Eigenschaften sondern auf Eigenschaften von Unterkomponenten zugreifen.