![]() |
AW: Object Property Values zur Laufzeit erzeugen
Ich versuche es nochmal:
zb.: Eigenschaften eines TLabel werden zur Laufzeit geändert: TLabel.Color funktioniert mit SetPropValue(TLabel, 'Color', StringToColor('clBlue')); oder TLabel.Align funktioniert mit SetPropValue(TLabel, 'Color', 'alTop'); was nicht funktioniert ist: TLabel.Font.Color also so geht das nicht SetPropValue(TLabel, 'Font.Color', StringToColor('clBlue')); geht aber so: SetObjectProp(TLabel, 'Font', SetProperty_Font); also mit einem Functionsaufruf:
Delphi-Quellcode:
oder weitere Eigenschaften eines TShapes ändern:
function SetProperty_Font:TObject;
var A : TFont; begin A := TFont.Create; A.Color := clBlue; A.Name := 'Tahoma'; A.Size := 12; Result := A; end; TShape.Shape funktioniert mit SetPropValue(TLabel, 'Shape', 'stCircle'); oder TShape.Height funktioniert mit SetPropValue(TLabel, 'Height', StrToInt(100)); was nicht funktioniert ist: TShape.Pen.Color also so geht das nicht SetPropValue(TShape, 'Pen.Color', StringToColor('clBlue')); geht aber so: SetObjectProp(TShape, 'Pen', SetProperty_Pen); also auch wieder mit einer Function:
Delphi-Quellcode:
Die Funktionen können mit den diversen Eigenschaften erweitert und die Parameter der Eigenschaften auch variabel geändert werden. Das ist jetzt nicht das Problem.
function SetProperty_Pen:TObject;
var A : TPen; begin A := TPen.Create; A.Color := clBlue; A.Width := 10; A.Style := psDot; Result := A; end; Das Problem ist: In den diversen Objekten wie TLabel, TEdit, TStringGrid, TShape, TPanel, usw. gibt es Eigenschaften'.'Eigenschaften, die ich dann in einer Funktion erst mal selbst zerlegen muss. Und genau das möchte ich nicht. Einen fertigen Code habe ich nicht, da ich jetzt schon die unfeine Lösung mit den Funktionen habe und ich das so nicht anwenden möchte. Anderst weiß ich nicht wie ich es erklären soll. Kann aber sein, dass ich für die Lösung einen komplett falschen Ansatz habe oder ich checke es einfach nicht wie ich auf die '.'Eigenschaften zugreifen muss. |
AW: Object Property Values zur Laufzeit erzeugen
Ich habe dafür eine Funktion geschrieben. Sieh mal in der oben angehängten pas nach GetSubObject.
Das ist Teil meines Frameworks ( ![]() Ganz ohne eigene Funktion dürfte das m.E. nicht funktionieren. |
AW: Object Property Values zur Laufzeit erzeugen
Ich frage mich wirklich, was das soll.
Ich frage, weil das nun gar nichts mit OOP zu tun hat. |
AW: Object Property Values zur Laufzeit erzeugen
Hi Stahli, danke für deine Zeit, werde mir mal den Code genauer anschauen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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