Einzelnen Beitrag anzeigen

stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Problem mit VirtualStringTree

  Alt 8. Nov 2017, 15:10
Nein, es ist noch 2006 und der VirtualStringTree ist in der Version 5.3.0 und hier die angesprochenen Teile vom code:
Delphi-Quellcode:
  // Artikel-TecDoc-Fahrzeug-Baum
type
  PArtikelTecDocrec = ^TArtikelTecDocrec;
  TArtikelTecDocrec = record
    level:Byte;
    HerNr:Integer;
    artikel_id: Integer;
    kTypNr: Integer;
    kModNr:Integer;
    hersteller:String;
    statTyp:String;
    bjvon:String;
    bjbis:String;
    bezeichnung_vehicle:String;
    bezeichnung_vehicletype:String;
    kw:Integer;
    lit:Integer;
    zylinder:Byte;
  end;

function AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
  ARecord: TArtikelTecDocrec): PVirtualNode;
var
  Data: PArtikelTecDocrec;
  level: Integer;
begin

  Result := AVST.AddChild(ANode);
  Data := AVST.GetNodeData(Result);
  if Level = 0 then
    Result.CheckType := ctNone;
  Avst.ValidateNode(Result, False);

  If arecord.Level = 2 Then ANode.CheckType := ctCheckBox;

  Data^.level := Arecord.level;
  Data^.HerNr := Arecord.HerNr;
  Data^.artikel_id := Arecord.artikel_id;
  Data^.kTypNr := Arecord.kTypNr;
  Data^.kModNr := Arecord.kModNr;
  Data^.hersteller := Arecord.hersteller;
  Data^.statTyp := Arecord.statTyp;
  Data^.bjvon := Arecord.bjvon;
  Data^.bjbis := Arecord.bjbis;
  Data^.bezeichnung_vehicle := Arecord.bezeichnung_vehicle;
  Data^.bezeichnung_vehicletype := Arecord.bezeichnung_vehicletype;
  Data^.kw := Arecord.kw;
  Data^.lit := Arecord.lit;
  Data^.zylinder := Arecord.zylinder;

end;


function FindNodebyherNr(aTree: TBaseVirtualTree; aherNr: Integer): PVirtualNode;
var
  NodeData: PArtikelTecDocrec;
begin
  Result := aTree.GetFirst;
  while Assigned(Result) do
    begin
      NodeData := (aTree.GetNodeData(Result));
      if (NodeData.HerNr = aherNr) then
        Exit;
      Result := aTree.GetNext(Result);
    end;
end;

function FindNodebyModNr(aTree: TBaseVirtualTree; aModNr, aherNr: Integer): PVirtualNode;
var
  NodeData: PArtikelTecDocrec;
begin
  Result := aTree.GetFirst;
  while Assigned(Result) do
    begin
      NodeData := (aTree.GetNodeData(Result));
      if (NodeData.HerNr = aherNr) AND (NodeData.kModNr = aModNr) then
        Exit;
      Result := aTree.GetNext(Result);
    end;
end;

Geändert von stifflersmom ( 8. Nov 2017 um 15:13 Uhr)
  Mit Zitat antworten Zitat