Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Dynamischen ListViews neue Items hinzufügen


Maisinator - So 01.11.09 13:19
Titel: Dynamischen ListViews neue Items hinzufügen
Hallo,

ich möchte in meinem Programm per Button neue ListViews erzeugen lassen. Funktioniert auch 1A. Dies füge ich dann alle in ein ObjectList ein. Nun weiß ich jedoch nicht, wie ich den ListViews neue Items hinzufügen soll...

Kann mir jemand helfen?

DANKE


Narses - So 01.11.09 13:41

Moin!

Genau so, wie statischen. :nixweiss: Ich versteh die Frage irgendwie nicht... :gruebel:

cu
Narses


Maisinator - So 01.11.09 13:44

Mir wurde in diesem Forum empfohlen, Items in ListView so einzufügen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var Item: TListItem;
begin
Item:= 'ListView'.Items.Add;
Item.caption: '';
item.subitems.add...
end;


Problem: Dynamische ListViews kann ich nicht bei 'ListView' einsetzen.
Was oder wie soll ich das machen?


Narses - So 01.11.09 13:47

Moin!

:shock:
user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Mir wurde in diesem Forum empfohlen, Items in ListView so einzufügen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var Item: TListItem;
begin
Item:= 'ListView'.Items.Add;
Item.caption: '';
item.subitems.add...
end;
Wer hat dir denn hier sowas "empfohlen"? :hair: (und in welchem Thread?)

Grundsätzlich ist der Code OK, aber du musst schon eine echte Referenz zu dem Control nehmen, keine Stringkonstante. :idea:

cu
Narses


Maisinator - So 01.11.09 13:50

user profile iconNarses hat folgendes geschrieben:
Wer hat dir denn hier sowas "empfohlen"? :hair: (und in welchem Thread?)



http://www.delphi-forum.de/viewtopic.php?t=88842 4. Post!

user profile iconNarses hat folgendes geschrieben:

Grundsätzlich ist der Code OK, aber du musst schon eine echte Referenz zu dem Control nehmen, keine Stringkonstante. :idea:


mmh, ja.... Wie mach ich das denn?


Narses - So 01.11.09 14:00

Moin!

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNarses hat folgendes geschrieben:
Wer hat dir denn hier sowas "empfohlen"? :hair: (und in welchem Thread?)
http://www.delphi-forum.de/viewtopic.php?t=88842 4. Post!
OK, man hat dir nicht das "empfohlen", was du daraus gemacht hast. ;)

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Wie mach ich das denn?
Woher sollen wir wissen, wie du deine ListView-Referenzen verwaltest? :nixweiss:

cu
Narses


Maisinator - So 01.11.09 14:09

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
OK, man hat dir nicht das "empfohlen", was du daraus gemacht hast. ;)
Was hab ich denn daraus gemacht? Ist doch eigentlich das selbe. Hab halt in diesem Threat das ein bisschen abgekürzt nach Item.Subitem.Add.

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Woher sollen wir wissen, wie du deine ListView-Referenzen verwaltest? :nixweiss:
Da ich nicht weiß, was ListView-Referenzen sind, kann ich es dir auch nicht sagen...


jaenicke - So 01.11.09 14:11

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Woher sollen wir wissen, wie du deine ListView-Referenzen verwaltest? :nixweiss:
Das hatte er schon geschrieben. :zwinker:
user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Dies füge ich dann alle in ein ObjectList ein.
Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  MyListView: TListView;
  NewItem: TListItem;
begin
  // Beispiel: erste ListView aus der Liste
  MyListView := DeineObjectList[0as TListView;

  NewItem := MyListView.Items.Add;
  NewItem.Caption := ...


Maisinator - So 01.11.09 17:18

Danke, es scheint ja zu funktionieren. Allerdings werden meiner ObjectList irgendwie die dynamischen ListViews nicht hinzugefügt...

Hab jetzt einfach mal mein Projekt angehängt. Ich hoffe, es findet sich ein hilfsbereiter Delphianer, der mir dabei helfen kann...

Edit: Nicht über das Design wundern, hab mich erstmal um den Code bemüht :wink:


Andreas L. - So 01.11.09 17:24

Ich hab doch in deinen letzten Thread gepostet wie es geht: http://www.delphi-forum.de/viewtopic.php?p=582977#582977

Hättest ja dort nochmal nachfragen können wenn was unklar ist...


Maisinator - So 01.11.09 17:26

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab doch in deinen letzten Thread gepostet wie es geht: http://www.delphi-forum.de/viewtopic.php?p=582977#582977

Hättest ja dort nochmal nachfragen können wenn was unklar ist...


Guck dir bitte nochmal den letzten Post an. Als da keine Antwort mehr kam, hab ich halt nen neuen Threat gemacht, da man ja den Titel vom Threat nichtmehr ändern kann...


jaenicke - So 01.11.09 18:05

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Als da keine Antwort mehr kam
Ich hatte den Thread gelesen, aber da keine Fehlermeldung dabei stand hatte ich keine Lust mehr und hab den Thread wieder weggeklickt.

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
, hab ich halt nen neuen Threat gemacht, da man ja den Titel vom Threat nichtmehr ändern kann...
Warum? Bei mir geht das immer problemlos. :gruebel:


Maisinator - So 01.11.09 18:09

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Warum? Bei mir geht das immer problemlos. :gruebel:


Wie denn???

Ich will jetzt aber nicht darüber diskutieren, warum ich nen neuen Threat geöffnet habe. Demnächst bitte nur noch zu meinem Prob... Danke


elundril - So 01.11.09 18:18

ad 1) das werden die mods anders sehen, denk ich ;)

ad 2) schon mal in die hilfe geguckt? afaik ist da ein super beispiel wie man so in item dynamisch hinzufügen kann. die dazugehörige Listview weißt du ja wie man aus der objectlist bekommt oder?

lg elundril


Maisinator - So 01.11.09 18:23

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
die dazugehörige Listview weißt du ja wie man aus der objectlist bekommt oder?


das ist nicht mein Problem. Bei mir werden sie nicht in die Objectlist eingefügt, obwohl in meinem Code

Delphi-Quelltext
1:
MeineOblist.Items.Add(Meine ListVieW)                    

steht


jaenicke - So 01.11.09 18:26

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Demnächst bitte nur noch zu meinem Prob... Danke
Was funktioniert denn an dem Code nicht? Wie gesagt: Ohne Fehlermeldung oder so kann man dazu auch nicht viel sagen...

// EDIT:
Das heißt die Liste bleibt leer?


elundril - So 01.11.09 18:26

rufst du irgendwo nach dem add vielleicht ein Meine_Listview.free; auf?

lg elundril


Maisinator - So 01.11.09 18:31

Nur beim Form1.Destroy wieder. Ich bekomm ja auch keine Fehlermeldung. Auch wenn ich den Code via F7 durchsteppe, direkt nach dem Add-Befehlt bleibt die ObjectList leer... Fahr ich dann mit dem Curser über einen Eintrag im Code, wo die ObjectList steht, erscheint als Inhalt nur ein ()


elundril - So 01.11.09 18:33

zeig mal etwas code, an der stelle wo du das listview in die objectlist einfügst. (die ganze methode vielleicht wenn nicht zu lang?)

fehlermeldung kommt aber keine?

lg elundril


jaenicke - So 01.11.09 18:34

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Fahr ich dann mit dem Curser über einen Eintrag im Code, wo die ObjectList steht, erscheint als Inhalt nur ein ()
Das ist ja auch eine Klasse, drück mal Strg + F7 und gib DeineObjectList.Count ein^^
Und in DeineObjectList[0] z.B. wird auch die erste ListView daraus dann liegen.


Maisinator - So 01.11.09 18:35

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
zeig mal etwas code, an der stelle wo du das listview in die objectlist einfügst. (die ganze methode vielleicht wenn nicht zu lang?)

Ein paar Posts weiter oben kannst du den Ganzen Code runterladen. (Erschien mir sinnvoller, gleich das ganze Prog hochzuladen)

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
fehlermeldung kommt aber keine?

Sorry, aber was hab ich eben geschrieben... :lol:


Maisinator - So 01.11.09 18:40

Jetzt gehts plötzlich, ohne das ich was am Code gemacht hab :?: Vorhin ging es nicht :?: Aber egal, jetzt gehts und jetzt bin ich glücklich :D


elundril - So 01.11.09 18:40

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
fehlermeldung kommt aber keine?

Sorry, aber was hab ich eben geschrieben... :lol:


auch ich kann ja mal was übersehen oder? du übersiehst ne ganze lösung für dein problem und ich nen kleinen satz, also sind wir quit würd ich sagen, nem?


Maisinator - So 01.11.09 18:51

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Jop, sind wir.

Sorry leute dass ich euch nochmal "nerve". So plötzlich wie es funktioniert hat, funktioniert es auch wieder nicht :evil: Was ist falsch :?:

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Fehler ist endgültig gefunden!

Noch ne frage zu den dynamischen Objekten. Gibt es für diese auch einen Befehl wie z.b. Edit1.Clear um sie zu leeren?


Andreas L. - So 01.11.09 18:57

user profile iconMaisinator hat folgendes geschrieben Zum zitierten Posting springen:
Fehler ist endgültig gefunden!

Noch ne frage zu den dynamischen Objekten. Gibt es für diese auch einen Befehl wie z.b. Edit1.Clear um sie zu leeren?


Wenn du deine Edits in einer Objektliste hast gehts doch genau so wie mit ListViews:

Delphi-Quelltext
1:
(ObjektListe[Index] as TEdit).Clear;                    


Ab und zu mal denken... :roll: