Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TRakObjectInspectorGrid - Reihen erzeugen? (https://www.delphipraxis.net/131668-trakobjectinspectorgrid-reihen-erzeugen.html)

I.A 28. Mär 2009 17:00


TRakObjectInspectorGrid - Reihen erzeugen?
 
Hallo,

Ich versuche seit einigen Tagen die Zeilen des Objektinspektors zu erzeugen komme aber nicht weiter.

Das hier:

Delphi-Quellcode:
     for Index := 0 to FPropertiesToEdit.Count-1 do
      case TTypeObject(FPropertiesToEdit.Objects[Index]).PropKind of
       tkInteger:
         begin

           FIntegerEdit := TRakOIEdit.Create(self);
           FIntegerEdit.Caption := FPropertyToEdit[Index];
           FIntegerEdit.Top := Index * FIntegerEdit.DefaultRowHeight;
           FIntegerEdit.Visible := true;
           //FBaseRow.AddChildRow(TRakClassOIRow(FIntegerEdit))
           FIntegerEdit.ParentRow := FIntegerEdit.GetActiveRow;
           FIntegerEdit.Parent := self;
         end;        //InsertIntegerEdit(ieInteger);
       tkChar:
         begin
           FStringEdit := TRakOIEdit.Create(self);
führt leider nicht zum Erfolg.

Der Konstruktor sieht so aus:

Delphi-Quellcode:
constructor TCustomOInspector.Create(AOwner: TComponent);
begin
  inherited Create(Aowner);
  RtrEditorBaum := TRakTree.Create(AOwner);
  {
  RtrEditorBaum.Align := alTop;
  RtrEditorBaum.Height := 100;
  RtrEditorBaum.Parent := self;
  }
  FPropertyToEdit := TStringList.Create;

  FBaseRow := TRakOIGroup.Create(AOwner); //Laut Kurzbeschreibung in den Quellen des
  FBaseRow.Visible := false;             //Objektinspektors muss eine Basisreihe als Wurzel
  FBaseRow.Expanded := true;             //angelegt werden, an die alle anderen Reihen
  FBaseRow.Parent := self;               //angehängt werden. Hier ist diese Basisreihe

  MmoEvents := TMemo.Create(AOwner); //ausgelöste Ereignisse anzeigen zum Test
  //Ereignisse zuweisen
end;
Wie geht es danach weiter. Bei Verwendung der in der Objektinspektorklasse definierten Methoden zum Erzeugen der Reihen erhalte Ich EAccessviolation. Vermutlich fehlt die Verbindung zur Basisreihe. Wie kriege ich die Reihen in den Objektinspektor. :wall:

Sollte etwa der Jedi-Objektinspektor doch einfacher zu programmieren sein? :gruebel:


Wenn ich diese Zeile weglasse:

FIntegerEdit.ParentRow := FIntegerEdit.GetActiveRow;

und außerdem:

FIntegerEdit.Top := Index * FIntegerEdit.DefaultRowHeight;

hinzufüge wie jetzt oben im Quelltext auch, dann erhalte ich die Reihen erst mal, aber die Steuerung durch die schon realisierten Methoden im Objektinspektor geht mir dabei verloren.
So habe ich dann auch keinen Vertikalen Scrollbar und kann Eigenschaften, die im Bild nicht mehr darstellbar sind auch nicht bearbeiten.

Wer hat mit TRakObjectinspectorgrid schon gearbeitet und kann mir helfen. Meine derzeitige Lösung sehe ich als Workaround, weil ich mit den Einfügemethoden des OI nicht weiter komme.
:coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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