Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigenschaftenfenster wie OI (https://www.delphipraxis.net/101613-eigenschaftenfenster-wie-oi.html)

oki 16. Okt 2007 12:44


Eigenschaftenfenster wie OI
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute,

ich blende zur Laufzeit ein Eigenschaftenfenster zu meinen Controls für den Benutzer ein. Das Design gefällt mir da aber nicht. Meistens wird das Fenster auch zu groß und verdeckt zu viel vom Programm.

Im Anhang mal ein Screenshot der aktuellen Ansicht:

Kann mir jemand ein paar Tipps für ein besseres Design, eventuell mit Bsp. geben? Wie wird überhaupt die Ansicht des OI realisiert (welche Controls)?

Imho haben auch Grafikprogramme für Ihre Werkzeuge (Stift etc.) interessante Lösungen.

Dank und Gruß oki

_frank_ 16. Okt 2007 14:10

Re: Eigenschaftenfenster wie OI
 
ich habe in meinem DFM-Editor sehr mühevoll versucht den OI nachzubauen.
evtl hilft dir das ein wenig.

Gruß Frank

Hawkeye219 16. Okt 2007 14:25

Re: Eigenschaftenfenster wie OI
 
Hi,

vielleicht lohnt ein Blick in die ExtLib.

Gruß Hawkeye

oki 16. Okt 2007 15:21

Re: Eigenschaftenfenster wie OI
 
@_frank_: Ja, das sieht nach ner Menge Arbeit aus. So komplex brauch ich es zum Glück nicht. Ich hab mir mal die Screenshots angeschaut. Dank für den Tip. Es ist aber noch nicht ganz das, was ich brauche.

@Hawkeye: hab mir gerade alles runter geladen. Da ich mein neus Projekt in D2007 entwickel schau ich erst mal, ob ich die vorhandenen Packages installiert bekomme. Melde mich, sobald ich ein erstes Gefühl habe.

Dank und Gruß oki

igel457 16. Okt 2007 15:22

Re: Eigenschaftenfenster wie OI
 
In der JVCL ist ein Objektinspektor drin, der dem in Delphi in fast nichts nachsteht.

oki 16. Okt 2007 15:26

Re: Eigenschaftenfenster wie OI
 
Uppps,

hab die Jedis drauf, und weis nicht mal was davon. :oops:

Gib mal nen Tip, wie der heißt.

Gruß oki

igel457 16. Okt 2007 15:28

Re: Eigenschaftenfenster wie OI
 
TJvInspector oder TJvObjectInspector - ich bin mir nicht ganz sicher

oki 16. Okt 2007 15:41

Re: Eigenschaftenfenster wie OI
 
TJvInspector; habs auch grad gefunden. Wie weist man da das Object zu?

Gruß

oki 16. Okt 2007 15:58

Re: Eigenschaftenfenster wie OI
 
Zitat:

Zitat von oki
Wie weist man da das Object zu?

mit
Delphi-Quellcode:
JvInspector1.AddComponent(MyComponent);
Das sieht gut aus, aber leider möchte ich dem Nutzer nicht alle Published-eigenschaften zugänglich machen.

Mit ExtLib bin ich noch nicht weiter, bekomme beim Compilieren noch einige Fehler. Arbeite noch dran.

Gruß oki

v2afrank 17. Okt 2007 06:37

Re: Eigenschaftenfenster wie OI
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht aber auch mit den jedis.
Ich habe Die mal ein Bild von meinem Objektinspektor beigefügt.
In dem Bild kann der Benutzer ein Label einstellen
Das Label habe ich dem Inspektor über folgenden Code hinzugefügt
Delphi-Quellcode:
    JvInspector1.Visible:=true;
    JvInspector1.Clear;

    InspCat := TJvInspectorCustomCategoryItem.Create(JvInspector1.Root, nil);
    InspCat.Expanded:=true;
    InspCat.SortKind:=iskNone;

    InspCat.DisplayName := _('Visuell');

    strvariable:=TLabel(control).caption;
    TJvInspectorVarData.New(InspCat, 'String', TypeInfo(String), @strvariable).DisplayName := _('Text');
    TJvInspectorVarData.New(InspCat, 'Integer', TypeInfo(Integer), @TLabel(control).top).DisplayName := _('Oben');
    TJvInspectorVarData.New(InspCat, 'Integer', TypeInfo(Integer), @TLabel(control).Left).DisplayName := _('Links');
    TJvInspectorVarData.New(InspCat, 'Integer', TypeInfo(Integer), @TLabel(control).height).DisplayName := _('Höhe');
    TJvInspectorVarData.New(InspCat, 'Integer', TypeInfo(Integer), @TLabel(control).width).DisplayName := _('Breite');
    TJvInspectorVarData.New(InspCat, 'Font', TypeInfo(TFont), @TLabel(control).font).DisplayName := _('Schriftart');
    TJvInspectorVarData.New(InspCat, 'Color', TypeInfo(TColor), @TLabel(control).Color).DisplayName := _('Farbe');
    TJvInspectorVarData.New(InspCat, 'Align', TypeInfo(TAlignment), @TLabel(control).Alignment).DisplayName := _('Ausrichtung');
    Boolvariable:=TLabel(control).Transparent;
    TJvInspectorVarData.New(InspCat, 'Transparent', TypeInfo(Boolean), @Boolvariable).DisplayName := _('Transparent');

    InspCat := TJvInspectorCustomCategoryItem.Create(JvInspector1.Root, nil);
    InspCat.DisplayName := _('Allgemein');
    InspCat.SortKind:=iskNone;
    TJvInspectorVarData.New(InspCat, 'String', TypeInfo(String), @control.Name).DisplayName := _('Name');
    InspCat.Expanded:=true;
Im JvInspector1DataValueChanged kann ich dann die Variablen wie strvariable den Eigenschaften zuweisen.
Spiel einfach mal ein bischen damit herum. Es lohnt sich


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.
Seite 1 von 2  1 2      

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