Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Objekinspektor zur Runtime (https://www.delphipraxis.net/189911-objekinspektor-zur-runtime.html)

Schlingel 7. Aug 2016 11:49

Objekinspektor zur Runtime
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Ich habe ein Projekt in Arbeit bei dem ich Komponenten (TButton, TLabel, TEdit...) dynamisch erzeuge auf einer Form mit plazieren/verschieben.
Bisher werden einige Propertys in einer Datenbank gespeichert und beim Neustart wieder geladen...

Jetzt möchte ich ALLE Propertys anzeigen und änderbar machen.

Beispiel wie der Objektinspektor im Design-Mode:(siehe Anhang)

- Hat jemand ein Beispiel für solch eine Umsetzung bzw. kann mir Tipps zur Umsetzung geben?

Danke

Grüße

himitsu 7. Aug 2016 13:24

AW: Objekinspektor zur Runtime
 
Der OI in Delphi ist nur in der IDE, aber es gibt solche Komponenten auch von Fremdherstellern, wie z.B. DevExpress oder Greatis.

Rainer Wolff 8. Aug 2016 07:56

AW: Objekinspektor zur Runtime
 
Die freie JVCL Bibliothek enthält ebenfalls eine solche Komponente namens JVInspector, die habe ich in Verwendung.

Thomas Horstmann 8. Aug 2016 10:04

AW: Objekinspektor zur Runtime
 
Das Ganze läuft über die "System.Rtti" Unit. Mit "GetPropList" werden die Eigenschaften ausgelesen. Die Einzelelemente (PPropInfo) befinden sich dann in der "PPropList" (System.TypInfo) und müssen dann verarbeitet werden. Das ist aber alles nicht trivial, da es z.B. Unterobjekte/Klassen gibt (tkClass), die ihrerseits wieder Eigenschaften haben. Also muss ein Baum aufgebaut werden.

Außerdem gib es verschiedene Eigenschaftstypen, die man unterschiedlich behandeln muss:

tkClass
tkEnumeration
tkFloat
tkInt64
tkInteger
tkLString
tkSet
tkString
tkUString
tkWString

Lässt sich alles machen. Einfacher geht es natürlich mit fertigen Komponenten wie DevExpress/TcxRTTIInspector usw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz