AGB  ·  Datenschutz  ·  Impressum  







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

Nachträglich ListItem verändern

Offene Frage von "ManuMF"
Ein Thema von ManuMF · begonnen am 11. Mär 2007 · letzter Beitrag vom 11. Mär 2007
Antwort Antwort
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

Nachträglich ListItem verändern

  Alt 11. Mär 2007, 14:27
Hallo,

ich habe mir ein ListView erstellt, das von verschiedenen Sachen Name und Status anzeigen soll. Wenn das Item dem ListView hinzugefügt wird, führe ich eine Prozedur aus, die dann Weiteres übernimment und den Status ändern soll.

Ich habe jetzt probiert, der Prozedur das Handle des hinzugefügten Items zu übergeben. Wie komme ich da weiter, also mit was komme ich vom Handle auf das ListItem?

Danke,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Nachträglich ListItem verändern

  Alt 11. Mär 2007, 14:42
Hi,

ich kann dir nicht ganz folgen. Wofür möchtest du das Handle ermitteln? Den Inhalt der Items kannst du so verändern:

Delphi-Quellcode:
ListView1.Items[MainIndex] := '...';
ListView1.Items[MainIndex].SubItems[SubIndex] := '...';
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: Nachträglich ListItem verändern

  Alt 11. Mär 2007, 14:44
Ich weiß ja selbst nicht, ob das Handle die perfekte Lösung ist (und ermittelt habe ich es ja schon). Mit dem Index kann ich aber definitiv nicht arbeiten, da er sich ja auch ändert.
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Nachträglich ListItem verändern

  Alt 11. Mär 2007, 15:00
Zitat von ManuMF:
Ich weiß ja selbst nicht, ob das Handle die perfekte Lösung ist (und ermittelt habe ich es ja schon). Mit dem Index kann ich aber definitiv nicht arbeiten, da er sich ja auch ändert.
Ich kann nicht genau nachvollziehen was du jetzt wirklich möchtest,
aber du kannst eventuell für eine ID die zu einem TListItem gehört
den Data-Teil missbrauchen.

Gruss Gremlin
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: Nachträglich ListItem verändern

  Alt 11. Mär 2007, 15:14
Ich möchte folgendes:

1. Prozedur A - Item hinzufügen: Name "XYZ", Status "Beginne"
2. Prozedur B - Status verändert sich: "Beginne" -> "MacheWas")

Ich kann nicht mit dem Index arbeiten, einfachster Problemfall:

1. Item hinzufügen "XYZ"
2. Item hinzufügen "XYZ2"
3. Status ändern - würde das falsche Item ändern.

Deshalb brauche ich etwas, mit dem ich in der Prozedur B noch das Item erreiche. Ich dachte, das wäre über das Handle möglich.

@Gremlin: Wie meinst du das mit der ID?
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
176 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Nachträglich ListItem verändern

  Alt 11. Mär 2007, 15:48
Zitat von ManuMF:
Ich möchte folgendes:

1. Prozedur A - Item hinzufügen: Name "XYZ", Status "Beginne"
2. Prozedur B - Status verändert sich: "Beginne" -> "MacheWas")

Ich kann nicht mit dem Index arbeiten, einfachster Problemfall:

1. Item hinzufügen "XYZ"
2. Item hinzufügen "XYZ2"
3. Status ändern - würde das falsche Item ändern.

Deshalb brauche ich etwas, mit dem ich in der Prozedur B noch das Item erreiche. Ich dachte, das wäre über das Handle möglich.

@Gremlin: Wie meinst du das mit der ID?
hmm du kannst doch einfach die ID (den Data-Teil des TListItem) als
Identifiktionsmerkmal verwenden. Natürlich musst du wissen, welche
ID dann der Eintrag für Status "Beginne" hat

Delphi-Quellcode:
function AddToListItem(const Name, Status:string):integer;
begin
  // Tag der Listview als Zähler missbrauchen
  <DeineListview>.Tag := <DeineListview>.Tag+1;
  with <DeineListview>.Items.Add do begin
    Data := Pointer(<DeineListview>.Tag);
    Caption := Name;
    SubItems.Add(Status);
  end;
end;

function ChangeListItem(const Name, Status:string; Nr:integer):Boolean;
var
  i : integer;
begin
  Result := False;
  for i := 0 to Pred(<DeineListview>.Items.Count) do begin
    if (integer(<DeineListview>.Items[i].Data)=Nr) then begin
      Result := True;
      <DeineListview>.Items[i].Caption := Name;
      <DeineListview>.Items[i].Status := Status;
    end;
  end;
end;
Gruss Gremlin
  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 23:19 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