Einzelnen Beitrag anzeigen

H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#28

AW: TList generische Liste Fehler beim deklarieren RTTI

  Alt 15. Aug 2011, 09:40
nein ist keine Klassen-Property also Instanz.
Aber das ganze ist eine Procedure der Klasse Tzuordnung und ich möchte auf die momentane Instanz zugreifen.

mit Tzuordnung krachts beim 2ten durchlauf und bei Zuordnung sagt er undefinierter bezeichner

Hier die Procedure
Sie fügt die bereits gesetzten Verbidungen aus der DB in die Tvs als Unterknoten ein.
Delphi-Quellcode:
procedure TZuordnung.ladeVerbindungen(TV_ZO,TV_DB:ttreeview);
var
  MyIterator : TStringDivideIterator;
  i: Integer;
  ctx: TRttiContext;
  t: TRttiType;
  f: TRttiField;
  p: TRttiProperty;
  ParentNode : Ttreenode;
  CNode : Ttreenode;

  ndx :integer;
begin
  ndx := 0;
  ParentNode := TV_DB.Items.GetFirstNode;
  t := ctx.GetType(TypeInfo(Tzuordnung));
  if Assigned(t) then
  begin
    for p in t.GetProperties do
    begin
      if p.Visibility in [mvPublic..mvPublished] then
      begin
        MyIterator := TStringDivideIterator.Create;
        try
          MyIterator.Pattern := ';';
          MyIterator.Text := p.GetValue(Tzuordnung).ToString;

          While MyIterator.MoveNext do
          begin
            if(ndx > 3)then
            begin
              CNode := TV_DB.Items.AddChildObject(ParentNode,MyIterator.CurrentStr,nil);
              CNode.ImageIndex := -1;
              CNode.SelectedIndex := -1;
              //hier noch andern baum adden
              for i:=0 to TV_ZO.items.count-1 do
              if TV_ZO.Items.Item[i].Text=MyIterator.CurrentStr then
              begin
                CNode := TV_ZO.Items.AddChildObject(TV_ZO.Items.Item[i],ParentNode.Text,nil);
                CNode.ImageIndex:=-1;
                CNode.SelectedIndex := -1;
                CNode.Parent.ImageIndex := 1;
              end;

              ParentNode.ImageIndex := 1;
              ParentNode.SelectedIndex := 2;
            end;
          end;
          if(ndx > 3)then
          ParentNode := ParentNode.getNextSibling;

        finally
          MyIterator.Free;
        end;
        inc(ndx);
      end;
    end;
  end;
  TV_ZO.FullExpand;
  TV_db.FullExpand;
end;
  Mit Zitat antworten Zitat