AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenschaftseditor zur Laufzeit

Ein Thema von Thunder1968 · begonnen am 5. Feb 2018 · letzter Beitrag vom 8. Feb 2018
Antwort Antwort
Thunder1968

Registriert seit: 19. Mai 2009
8 Beiträge
 
#1

Eigenschaftseditor zur Laufzeit

  Alt 5. Feb 2018, 22:53
Hallo liebe Delphi-Praxis Gemeinde,

ich versuche schon seit Tagen eine Möglichkeit zu finden, wo ich zur Laufzeit, die Eigenschaften eines ausgewählten Controls bearbeiten kann. Sowie bei dem Objektinspektor in Delphi. Halt nur zur Laufzeit. Alle Suchergebnisse hier bei DP und bei Google haben mich leider nicht weitergebracht. Ich habe das ganze auch schon mit einem ValueListEditor versucht. Wenn ich jedoch die Eigenschaften des ausgewählten Controls mit Values hineinschreibe, werden die Untereinträge wie bei TFonts, TColor, etc... nicht mit aufgeführt. Zum auslesen verwende ich folgenden Code :

Delphi-Quellcode:
var
   zl : Integer;
   Count, Size : Integer;
   List : PPropList;
   PropInfo : PPropInfo;
   PropOrEvent, PropValue : String;
   AComponent : TComponent;

begin
     ValueListEditor1.Strings.Clear;

     Count := GetPropList(Component.ClassInfo, tkAny, nil);
     Size := Count * SizeOf(Pointer);
     GetMem(List, Size);

     EditorBoolList := TStringList.Create;
     EditorBoolList.Add('True');
     EditorBoolList.Add('False');

     try
        Count := GetPropList(Component.ClassInfo, tkAny, List);

        for zl := 0 to Count - 1 do
        begin
             PropInfo := List^[zl];

             if PropInfo^.PropType^.Kind in tkMethods then
                PropOrEvent := 'Event'
             else
                 PropOrEvent := 'Property';

             if PropOrEvent = 'Propertythen
             begin
                  PropValue := VarToStr(GetPropValue(Component, PropInfo^.Name));

                  ValueListEditor1.Strings.Add(PropInfo^.Name + '=' + PropValue);

                  if (PropInfo^.PropType^.Name = 'Boolean') then
                  begin
                       with ValueListEditor1 do
                       begin
                            ValueListEditor1.ItemProps[zl].EditStyle := esPickList;
                            ValueListEditor1.ItemProps[zl].PickList := EditorBoolList;
                       end;
                  end;

             // PropertyEditor.Add(Format('[%s] %s: %s = %s', [PropOrEvent, PropInfo^.Name,
             // PropInfo^.PropType^.Name, PropValue));
             end;
        end;
     finally
            Result := ValueListEditor1.Strings;

            EditorBoolList.Free;

            FreeMem(List);
            // PropertyEditor.Free;
     end;
Da fängt es schon bei einer einfachen True/False PickList an. Es werden nicht alle Boolschen Werte mit einer PickList versehen.

Deswegen eine dringende Frage an Alle... Da ich sehr unter Zeitdruck stehe, hat jemand eine Lösung für mich bzw. eine brauchbare und sofort einsetzbare Komponente die diese Funktionen erfüllt??? Selbst wenn diese Komponente kostenpflichtig sein sollte wäre das okay (Sollte aber auch in einem entsprechenden Rahmen bleiben)...

Ich bin für jeden Tip oder Hinweis mega Dankbar...!!!

Vielen Dank schonmal...

Geändert von TBx ( 8. Feb 2018 um 07:38 Uhr) Grund: Fettschrift entfernt und Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigenschaftseditor zur Laufzeit

  Alt 6. Feb 2018, 00:09
BergSoft bietet eine Art Object-Inspector an, der auch zur Runtime genutzt werden kann: Next Inspector 6
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Eigenschaftseditor zur Laufzeit

  Alt 6. Feb 2018, 07:49
Und selbstverständlich die Jedis mit Ihrem JVInspector http://jvcl.delphi-jedi.org/
Habe ich selber schon erfolgreich eingesetzt. Sieht schick aus
  Mit Zitat antworten Zitat
Thunder1968

Registriert seit: 19. Mai 2009
8 Beiträge
 
#4

AW: Eigenschaftseditor zur Laufzeit

  Alt 6. Feb 2018, 08:04
Okay...

Vielen Dank Euch...

Ich schaue mir gleich beides mal genauer an...

  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Eigenschaftseditor zur Laufzeit

  Alt 6. Feb 2018, 09:08
BTW: Delphi-Code kannst du in der DP formatieren lassen, wenn du den Delphi-Helm-Toolbutton klickst.
Uli Gerhardt
  Mit Zitat antworten Zitat
Thunder1968

Registriert seit: 19. Mai 2009
8 Beiträge
 
#6

AW: Eigenschaftseditor zur Laufzeit

  Alt 8. Feb 2018, 10:55
OKay... Danke für die Infos!!!

Ich habe mir jetzt mal den JVInspector angeschaut... Wäre genau das was ich gebrauchen könnte...

Aber wie füge ich dort bei Picture, Glyph etc. den Button für den Auswahldialog ein???
Das gleiche gilt für Listitems, da muss ich ja dann auch sicher eine weitere Form anzeigen lassen für die Eigenschaften der einzelnen Listitems... Oder wie kann man das bei dem JVInspector lösen???
Sorry, aber das Teil ist absolutes Neuland und ich habe auch nicht viel Beschreibung gefunden...

  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Eigenschaftseditor zur Laufzeit

  Alt 8. Feb 2018, 12:03
Du meinst so wie hier auf dem Bild ?
Moment. Schau ich nach
Miniaturansicht angehängter Grafiken
zwischenablage03.png  
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Eigenschaftseditor zur Laufzeit

  Alt 8. Feb 2018, 12:17
Ich denke ich komme diese Woche nicht mehr dazu. Da hier Karneval ordentlich gefeiert wird muss ich dich leider auf Mittwoch vertrösten um ein vernünftiges Beispiel zu machen. Aber es ist möglich.
Stichwörter falls Du doch selber recherchieren möchtest sind die RegisterAsDefaulItem funktionen. Du erzeugst Objekte die von TJVCustomInspectoritem erben. In den Examples wird das auch gezeigt. Diese haben dann unter anderem eine Draweditor Funktion.
Viel Erfolg
  Mit Zitat antworten Zitat
Thunder1968

Registriert seit: 19. Mai 2009
8 Beiträge
 
#9

AW: Eigenschaftseditor zur Laufzeit

  Alt 8. Feb 2018, 12:21
Okay, danke dir erstmal.
Dir dann mal viel Spaß beim feiern.
Ich schaue mal nach ob ich was hinbekomme.
Ansonsten dann nächste Woche.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 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