AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Problem mit 2 Listviewkomponenten

Problem mit 2 Listviewkomponenten

Ein Thema von Capa · begonnen am 10. Apr 2011 · letzter Beitrag vom 10. Apr 2011
Antwort Antwort
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 02:08
Hi
folgendes Problem, habe 2 Listview komponenten und eine Suchfunktion
mit hilfe der Suchfunktion kann ich halt angeben in was er suchen soll (Spalte)
und wonach er suchen soll. Und dann wird quasi der Treffer von Listview1 nach Listview2 kopiert
ohne den Eintrag in Listview1 in irgendeiner art zu ändern.

Wenn ich das erste Suche gibts keine Probleme Subitems[0] passiert genau das was ich will
doch wenn ich in den anderen Subitems suche dann passiert es manchmal das der einfach in Listview1
zeilen löscht obwohl er da garnix löschen soll.

Dies ist die Procedure die als einzigstes aufgerufen wird.
Sieht da zufällig wer nen Fehler, bin am verzweifeln da ich ja normalerweise an Listview1 nix mache sondern
nur die daten von 1 nach 2 kopiere ?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  I,L: Integer;
begin
  ListView2.Items.Clear;
  for I := 1 to 5 do
  begin
    if (TRadioButton(FindComponent('RadioButton'+IntToStr(I))).Checked) then
    begin
      Label3.Caption := TRadioButton(FindComponent('RadioButton'+IntToStr(I))).Caption;
      L := I;
    end;
  end;
  for I := 0 to Listview1.Items.Count - 1 do
  begin
    if (pos(Edit1.Text, Listview1.Items[I].SubItems[L-1]) > 0) then
      ListView2.Items.AddItem(ListView1.Items[I]);
  end;
  Listview1.Visible := False;
  Listview2.Visible := True;
  Panel2.Visible := True;
  Label4.Caption := Edit1.Text;
end;
Thx und Mfg Capa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:14
Ich habe jetzt nicht in den VCL-Source geschaut, aber kann es sein, dass nach
Zitat:
ListView2.Items.AddItem(ListView1.Items[I]);
beide Instanzen auf dasselbe Objekt zeigen? Wenn Du dann Clear aufrufst, ist sie natürlich in beiden ListViews futsch. Klappt es, wenn Du stattdessen in der 2. ListView eine Kopie des Items hinterlegst statt des Items selbst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#3

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:37
Stimmt auffallend :/
habs zwar nun abgeändert und er löscht das in Listview1 auch nicht mehr dafür bekomm ich bei der 2ten Zeile ne
AE :/ muss mal schauen woran das nun schon wieder liegt.


Edit: Mhh hier muss der Fehler liegen wenn ich die LI sachen rauskommentiere funzt es ohne Probs
Sind sie Drin bekomm ich in der 2ten Zeile ne AE aber nur in der 2ten Zeile 1te und 3te ohne Probs
und zeile 2 is auch nur dann nen Problem wenns das einzige ergebnis ist wenn ich nach was suche was auch noch
in der 1ten oder 3ten zeile steht dann gehts plötzlich.

Delphi-Quellcode:
  for I := 0 to Listview1.Items.Count - 1 do
  begin
    if (pos(Edit1.Text, Listview1.Items[I].SubItems[L-1]) > 0) then
      LI := ListView2.Items.Add;
      LI.Caption := ListView1.Items[I].Caption;
      LI.SubItems.Add(ListView1.Items[I].SubItems[0]);
      LI.SubItems.Add(ListView1.Items[I].SubItems[1]);
      LI.SubItems.Add(ListView1.Items[I].SubItems[2]);
      LI.SubItems.Add(ListView1.Items[I].SubItems[3]);
      LI.SubItems.Add(ListView1.Items[I].SubItems[4]);
  end;
Edit: Fehler gefunden > 0 spinnt er rum

Geändert von Capa (10. Apr 2011 um 11:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:43
begin und end sagen Dir etwas?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#5

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:46
ups jetzt wo du es sagst :/
zuletzt stand da nen einzeiler *hust*
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:55
Wenn die RadioButtons auf einer RadioGroup liegen und per Items definiert wurden könnte es auch so gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  I,L: Integer;
  Item: TListItem;
begin
  ListView1.Items.BeginUpdate;
  try
    ListView2.Items.Clear;
    L := RadioGroupDings.ItemIndex;
(*    for I := 1 to 5 do
    begin
      if (TRadioButton(FindComponent('RadioButton'+IntToStr(I))).Checked) then
      begin
        Label3.Caption := TRadioButton(FindComponent('RadioButton'+IntToStr(I))).Caption;
        L := I;
      end;
    end; *)

    if L > -1 then
      begin
        for I := 0 to Listview1.Items.Count - 1 do
          if (pos(Edit1.Text, Listview1.Items[I].SubItems[L]) > 0) then
            begin
              Item := ListView2.Items.Add;
              Item.Caption := Listview1.Items[I].Caption;
              Item.SubItems.AddStrings(Listview1.Items[I].SubItems);
            end;
        Listview1.Visible := False;
        Listview2.Visible := True;
        Panel2.Visible := True;
        Label4.Caption := Edit1.Text;
      end;
  finally
    ListView2.Items.EndUpdate;
  end;
end;
Ungetestet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (10. Apr 2011 um 12:20 Uhr) Grund: C&P-Fehler
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#7

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 11:59
Danke für die Hilfe

Weiß nicht was mich da schon wieder geritten hat :/


Radiogroup da stehen doch alle untereinander oder ? bei mir is das aus platzgründen etwas anderst angeordnet
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Problem mit 2 Listviewkomponenten

  Alt 10. Apr 2011, 12:01
Nicht unbedingt, im OI kannst Du das über Columns einstellen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:41 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