AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

listview Vergleichen???

Ein Thema von schniede · begonnen am 26. Okt 2003 · letzter Beitrag vom 27. Okt 2003
Antwort Antwort
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#1

listview Vergleichen???

  Alt 26. Okt 2003, 19:50
Hallo!
Ich möchte ein listview mit daten aus einer tabelle füllen ,aber erst überprüfen ob die zeile schon vorhanden ist wenn ja dann ignorieren , nein - Eintragen?

wie stell ich das am besten an?
Delphi-Quellcode:
var
itm: TListItem;

begin
 itm := ListView1.Items.Add;
           itm.Caption := table5.fieldbyname('Käufer').Asstring ;
           itm.SubItems.Add(table5.fieldbyname('Kdnr.').Asstring);
end;
mfg schniede

[edit=r_kerber]Doppeltes Posting gelöscht. Mfg, r_kerber[/edit]
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: listview Vergleichen???

  Alt 26. Okt 2003, 19:54
Es müsste eine Art "IndexOf"-Funktion geben.
Das API stellt darüber auch noch "ListView_FindItem" zur Verfügung. Ich bin sicher, Borland hat für die VCL eine Implementierung dieser Funktion drin.
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: listview Vergleichen???

  Alt 26. Okt 2003, 19:59
Es gibt IndexOf. kleines Beispiel:
Delphi-Quellcode:
if Listview1.Items.IndexOf('test') = -1 then
 ShowMEssage('Item nicht vorhanden..')
Alexander
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#4

Re: listview Vergleichen???

  Alt 26. Okt 2003, 20:17
Danke, aber damit bekomme ich ne Fehlermeldung (inkompatible typen)
Delphi-Quellcode:
if Listview1.Items.IndexOf(table5.fieldbyname('Kdnr.').Asstring) = -1 then
ShowMEssage('Item nicht vorhanden..')
hab noch finddatafinddata gefunden nur leider kein beispiel dazu

mfg schniede

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: listview Vergleichen???

  Alt 26. Okt 2003, 20:49
Du kannst die ListView aber auch als StringList handeln...


Delphi-Quellcode:
var
  list, newlist: TStringList;
  meinString: String;

..............

function DupeInList(dupestring : string; list : TStrings; ignoreCase : boolean) : boolean;
var
  i : integer;
  dump : string;
  l1, l2 : integer;
begin
  result := true;

  for i := 0 to list.count-1 do
  begin
    dump := list.Strings[i];

    if ignoreCase then
    begin
      dump := UpperCase(dump);
      dupestring := UpperCase(dupestring);
    end;

    l1 := length(dump);
    l2 := length(dupestring);

    if l1 = l2 then
    if dump = dupestring then exit;
  end;

  result := false;
end;

function GiveListviewAsString(listView : TListView) : string;
var
  i : integer;
  l : TStrings;
  dump : string;
begin
  l := TStringList.Create;

  for i := 0 to Listview.Items.Count-1 do
  begin
    dump := ListVIew.Items[i].Caption+ListVIew.Items[i].SubItems[0];
    l.Add(dump);
  end;

  result := l.CommaText;
  l.Free;
end;

function DupeInListView(dupeString : string; Listview : TListView): boolean;
var
  list : TStrings;
begin
  list := TStringLIst.Create;
  list.CommaText := GiveListviewAsString(listview);

   result := DupeInList(dupeString,list,true);
end;
Aufrufen tust es dann mit ...

Delphi-Quellcode:
    if not DupeInListView(meinString,Form1.ListView1) then
      newlist.Add(meinString)
Mag zwar net die saubere lösung sein, aber besser hatte ich es auch nicht geschafft.
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#6

Re: listview Vergleichen???

  Alt 27. Okt 2003, 08:05
Danke Für Eure Hilfe ,hab es aber mit ner Tabelle gemacht da seh ich wenigstens durch.

Bin auch ein bissel im Zeitdruck deshalb hab ich mich für ein bequemeren Weg entschieden.

mfg schniede
  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 18:14 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