AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Listview (gleiche Zeile- unterschiedliche Spalte)
Thema durchsuchen
Ansicht
Themen-Optionen

Listview (gleiche Zeile- unterschiedliche Spalte)

Ein Thema von Testy · begonnen am 16. Jul 2007 · letzter Beitrag vom 18. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Testy
Testy

Registriert seit: 2. Mär 2007
56 Beiträge
 
Delphi 7 Enterprise
 
#1

Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 16. Jul 2007, 10:49
Hallo!

Ich habe eine Listview mit zwei Columns! In die 1. Spalte lasse ich zahlen mir RegExpr einlesen.
Im nächsten Schritt möchte ich etwas in der zweiten Spalte einlesen lassen.
Nun habe ich aber das Problem, dass er nicht in der ersten Zeile (in der zweiten Spalte) anfängt, sondern unter der letzten Zeile!
Die erste Spalte lese ich so ein:
Delphi-Quellcode:
    ListItem := listview1.Items.Add;
    listitem.Caption := (r.Match[0]);
Und die zweite dann so:
Delphi-Quellcode:
ListItem := listview1.Items.Add;
listitem.SubItems.Add('Eintrag zweite Spalte');
Wie bekomme ich es hin, das die eingelesenen Zahlen in Spalte 2 von der ersten Zeile an drin stehen???

Vielen Dank im voraus!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 16. Jul 2007, 10:56
Hallo,

du erzeugst per ListView.Items.Add immer neue Zeilen.

Um was in die 1. Zeile / 2. Spalte zu schreiben
Delphi-Quellcode:
ListItem:= ListView.Items[0];
ListItem.SubItems.Add('hoika is gut');
Um was in die 2. Zeile / 2. Spalte zu schreiben
Delphi-Quellcode:
ListItem:= ListView.Items[1];
ListItem.SubItems.Add('hoika is gut');
Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 16. Jul 2007, 12:49
Hi,

oder so:
Delphi-Quellcode:
var
  ListItem: TListItem;
begin
  ListItem := listview1.Items.Add;
  Listitem.Caption := 'Eintrag erste Spalte';
  Listitem.SubItems.Add('Eintrag zweite Spalte');
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Testy
Testy

Registriert seit: 2. Mär 2007
56 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 11:43
Zitat von bitsetter:
Hi,

oder so:
Delphi-Quellcode:
var
  ListItem: TListItem;
begin
  ListItem := listview1.Items.Add;
  Listitem.Caption := 'Eintrag erste Spalte';
  Listitem.SubItems.Add('Eintrag zweite Spalte');
So kann ich es nicht machen! Da ich mit RegExpr eine Spalte füllen lassen möchte!
Delphi-Quellcode:
 try
    r.Expression := '[0-9]{2}:[0-9]{2}:[0-9]{2}';
    if r.Exec(Memo1.Lines.Text) then
    repeat
      listbox1.items.Add(r.Match[0]); //hier soll er es in Zukunft in eine Spalte der Listview eintragen
    until not r.ExecNext;
  finally
    r.Free;
    l.Free;
  end;
Mein Problem ist jetzt: Nun soll er etwas aus einer Listbox in die zweite Spalte komplett füllen!

Gruß!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 12:16
Hallo,

was hast du an meinem Code nicht verstanden ??? Mensch !!!

Du darfst kein ListView.Items.Add machen,
sondern musst dir das entsprechende ListItem raussuchen,
das steht ja schon drin.

Jeder Aufruf von ListView.Items.Add erzeugt ne neue Zeile,
und das soll es ja nicht.

Da dein Code nicht sher aussagekräftig ist,
mal nen Schuss ins Blöaue

Delphi-Quellcode:
var
  iRow : Integer;
  ListItem : TListItem;
begin
  if r.Exec(Memo1.Lines.Text) then
  begin
    iRow:= 0;
    repeat
      ListItem:= ListView.Items[iRow];
      ListItem.SubItems.Add(r.Match[0]);
      Inc(iRow);
    until not r.ExecNext;
  end;
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Testy
Testy

Registriert seit: 2. Mär 2007
56 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 13:08
Bekomme aber mit diesem Code an der Stelle
ListItem.SubItems.Add(r.Match[0]); eine AV!
Habe ich etwas vergessen? Zwei Columns habe ich auch erstellt! ViewStyle der Listview ist auf vsReport!

Hier nochmal ein längerer Auszug aus meinem Code:
Delphi-Quellcode:
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
  l := TStringList.Create;
  r := TRegExpr.Create;
  try
    r.Expression := '[0-9]{2}:[0-9]{2}:[0-9]{2}';
    if r.Exec(Memo1.Lines.Text) then
begin
    iRow:= 0;
    repeat
      ListItem:= ListView1.Items[iRow];
      ListItem.SubItems.Add(r.Match[0]); //hier kommt die AV
      Inc(iRow);
    until not r.ExecNext;
    end;

  finally
    r.Free;
    l.Free;
end;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 14:44
Hallo

und wo kommt mit folgendem geändertem Code ?

die Frage ist auch, ob es mehr matches als
items (Zeilen) gibt.


Delphi-Quellcode:
var
  sMatch: String;



  ListItem:= ListView1.Items[iRow];
  Assert(ListItem<>NIL);

  sMatch:= r.Match[0];
  ListItem.SubItems.Add(sMatch);

Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Testy
Testy

Registriert seit: 2. Mär 2007
56 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 14:53
Dann meldet er mir für diese Zeile
Assert(ListItem<>NIL); Im Project ist eine Exception der Klasse EAssertionFailed aufgetreten!

Delphi-Quellcode:
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
  l := TStringList.Create;
  r := TRegExpr.Create;
  try
    r.Expression := '[0-9]{2}:[0-9]{2}:[0-9]{2}';
    if r.Exec(Memo1.Lines.Text) then
    repeat
      ListItem:= ListView1.Items[iRow];
      Assert(ListItem<>NIL);
      sMatch:= r.Match[0];
      ListItem.SubItems.Add(sMatch);
    until not r.ExecNext;
  finally
    r.Free;
    l.Free;
  end;
Es müssten im Moment 19 Zeilen in die Listview eingetragen werden!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 14:56
du hast dir selbst die Antwort gegeben. Wenn Assert eine Exception wirft bei der Prüfung ist dein ListItem nil und somit kracht es wenn du damit rumhantieren willst. Ich glaub deine Programmlogic hakt irgendwo.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Testy
Testy

Registriert seit: 2. Mär 2007
56 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Listview (gleiche Zeile- unterschiedliche Spalte)

  Alt 17. Jul 2007, 15:00
Hier nochmal meine Vorstellung von dem Programm:

- ich habe ein Memo welches mit RegExpr nach bestimmten Zeichen durchsucht wird
- die Ergebnisse sollen in eine Spalte einer Listview
- danach soll eine zweite Spalte (von der ersten Zeile angefangen)der Listview einträge aus einer vorhandenen Listbox übernehmen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:54 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