AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein VirtualStringTree Einträge vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree Einträge vergleichen

Ein Thema von Zodi · begonnen am 4. Mai 2020 · letzter Beitrag vom 5. Mai 2020
Antwort Antwort
Benutzerbild von Zodi
Zodi

Registriert seit: 19. Jul 2017
Ort: Berlin
47 Beiträge
 
Delphi XE7 Ultimate
 
#1

VirtualStringTree Einträge vergleichen

  Alt 4. Mai 2020, 23:06
Hi Delphianer

Ich bekomme einen String mit Datensätzen der in eine Stringliste gesetzt wird.
Danach Vergleiche ich die Einträge der StringListe mit der Listview.
Ist in der ListView dann ein Eintrag der nicht in der StringListe ist so wird dieser dann gelöscht.

Delphi-Quellcode:
    for i := Listview1.Items.Count -1 downto 0 do begin

    P := StringList.IndexOf(Listview1.Items[i].Caption);

    if p = -1 then Listview1.Items[i].StateIndex := 2;

    if Listview1.Items[i].StateIndex = 2 then begin
    Listview1.Items[i].Delete;
    
    end;
Dieser Code hat so mit meiner ListView super funktioniert.
Jetzt versuche ich mich seit ein paar Tagen an der VirtualStringTree Komponente.
Und vsersuche genau diesen Code Teil umzuschreiben das er mit der VirtualStringTree auch kunktioniert.
Aber ich finde in der VirtualStringTree weder .Stateindex noch .items.

Kann mich da jemand auf die richtige Spur bringen.

grüsse Zodi
Pascal
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: VirtualStringTree Einträge vergleichen

  Alt 4. Mai 2020, 23:17
Zitat:
Aber ich finde in der VirtualStringTree weder .Stateindex noch .items.
Ist doch klar. Die Komponente heißt Virtual String Tree. Die Daten werden nicht direkt in die Komponente gespeichert sondern außerhalb in einer extra dafür angelegten Datenstruktur.
  Mit Zitat antworten Zitat
Benutzerbild von Zodi
Zodi

Registriert seit: 19. Jul 2017
Ort: Berlin
47 Beiträge
 
Delphi XE7 Ultimate
 
#3

AW: VirtualStringTree Einträge vergleichen

  Alt 4. Mai 2020, 23:29
Also müsste ich das hier suchen?

Delphi-Quellcode:
type
  PTreeData = ^TTreeData;
  TTreeData = record
    Column0: String;
    Column1: String;
    Column2: String;
    Column3: String;
    Column4: String;
    Column5: String;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Data: PTreeData;
begin

end;
Also in der DATA variablen?
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

AW: VirtualStringTree Einträge vergleichen

  Alt 5. Mai 2020, 01:36
ja ..............
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#5

AW: VirtualStringTree Einträge vergleichen

  Alt 5. Mai 2020, 07:35
Delphi-Quellcode:
    for i := Listview1.Items.Count -1 downto 0 do begin

    P := StringList.IndexOf(Listview1.Items[i].Caption);

    if p = -1 then Listview1.Items[i].StateIndex := 2;

    if Listview1.Items[i].StateIndex = 2 then begin
    Listview1.Items[i].Delete;
    
    end;
Du könntest sowas etwas optimieren:
Delphi-Quellcode:
  for i := Listview1.Items.Count-1 downto 0 do
  begin
    if StringList.IndexOf(Listview1.Items[i].Caption) = -1 then
      ListView1.Items[i].Delete;
  end;
Wenn eine Variable eh nur an 1 Stelle benutzt wird, kann man sie sich auch sparen. Zumal ich annehmen, dass der Compiler zur Optimierung das eh so macht.

Ich finde sowas macht den Code übersichtlicher. Vor allem wenn die Var-Abschnitte nicht mit überflüssigen Variablen voll sind.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: VirtualStringTree Einträge vergleichen

  Alt 5. Mai 2020, 13:12
Zitat:
Du könntest sowas etwas optimieren:
Da er eine virtuelle Liste nutzt ist das keine Optimierung und macht nichts besser.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#7

AW: VirtualStringTree Einträge vergleichen

  Alt 5. Mai 2020, 13:35
Zitat:
Du könntest sowas etwas optimieren:
Da er eine virtuelle Liste nutzt ist das keine Optimierung und macht nichts besser.
Hatte den Text nach seinem Beispiel im ersten Thread gar nicht so richtig gelesen

Mir ging's nur darum, dass man keine Variable mit einem Inhalt laden brauche, wenn ihr einziger Zwecke die Prüfung des Inhalts ist.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  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:42 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