Einzelnen Beitrag anzeigen

ucor

Registriert seit: 19. Apr 2005
18 Beiträge
 
#6

Re: VirtualStringTree : Datenanzeige

  Alt 12. Mai 2005, 12:29
Hallo,
zunächst mal danke für eure Hilfe.

Ich habe das Problem nun folgendermaßen lösen können:
(Sicherlich nicht sehr elegant und ballastreich)

Delphi-Quellcode:
procedure TFA.VSTDblClick(Sender: TObject);

var
   Data : PTreeData;
   Node, ParentNode : PVirtualNode;
   InitialStates: TVirtualNodeInitStates;
   ListItem: TListItem;
   ListView: TListView;
   iLevel : integer;
begin
Data:= VST.GetNodeData(Node);
   begin
     if Assigned(Data)and (Data<>nil) then
      begin
       Node:=VST.focusedNode ;
       iLevel := VST.GetNodeLevel(Node);
         if VST.RootNodeCount > 0 then
         if VST.SelectedCount > 0 then
         begin
         Data := VST.GetNodeData(VST.GetFirstSelected);
           if ParentNode <> nil then
              InitialStates := InitialStates + [ivsHasChildren, ivsExpanded];
           with q1 do
              begin
                 case iLevel of
                 0:
                 begin
                   filtered := true;
                   filter := 'Kunden = ' +#39 + (TTreeDataClass(Data.FObject).FKunden) +#39;
                     with LV1 do
                       begin
                         clear;
                         ListItem := Items.Add;
                         ListItem.Caption :=FieldByName('Str').AsString ;
                         ListItem := Items.Add;
                         ListItem.Caption :=FieldByName('Ort').AsString ;
                         .
                         .
                         .
                       end;
                 end;
                 1:
                 begin
                 filtered := true;
                 filter := 'Auftraege = ' +#39 + (TTreeDataClass(Data.FObject).FAuftraege) +#39;
                      with LV1 do
                        begin
                          clear;
                          ListItem := Items.Add;
                          ListItem.Caption :=FieldByName('Nr').AsString ;
                          ListItem := Items.Add;
                          ListItem.Caption :=FieldByName('Datum').AsString ;
                          .
                          .
                          .
                        end;
                 end;
                 2:
                 begin
                 .
                 .
                 .

                 end;
                 .
                 .
                 .
         end;
       end;
     end;
   end;
 end;
end;
Vielleicht kennt ihr eine kürzere und/oder elegantere Lösung.
Wäre für jede lehrreiche Lektion dankbar.

Gruß U.
  Mit Zitat antworten Zitat