Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ListBox.Item.Names[] Problem (https://www.delphipraxis.net/119072-listbox-item-names%5B%5D-problem.html)

LuCSteR 20. Aug 2008 16:44


ListBox.Item.Names[] Problem
 
Delphi-Quellcode:
        for i:=0 to CheckGroup1.Items.Count-1 do
          begin
            if CheckGroup1.Checked[i] then
              begin
                case i of
                  0: Values[i]:=Label6.Caption;
                  1:
                  begin
                    Values[i-1]:=Label6.Caption;
                    Values[i]:=Label7.Caption;
                  end;
                  2: for j:=0 to CheckGroup2.Items.Count-1 do if CheckGroup2.Checked[j] then Values[j+i]:=CheckGroup2.Items.Names[j];
                  3: Values[i+CheckGroup2.Items.Count-1]:=Edit2.Text;
                  4: Values[i+CheckGroup2.Items.Count-1]:=Edit3.Text;
                  5: Values[i+CheckGroup2.Items.Count-1]:=Edit4.Text;
                end;
              end;
          end;
Ich hab hier nur gerade das CheckGroup Bsp rausgeschnitten. Aber das gleiche Problem gibts mit ListBoxen
Beide (ListBox.Items.Names[] und CheckGroup.Items.Names[]) liefern mir einen leeren String. Values[] ist dyn. globales Array. Tut allerdings nichts zur Sache. Habe mir das Values-Array im Memo ausgeben lassen. Wird nichts angezeigt an den stellen, wo halt die besagten Eigescnhaften angesprochen werden. Habe ich irgendetwas grundlegendes übersehen?
Programm lässt sich auch wunderbar kompilieren.

grüße

FAlter 20. Aug 2008 16:58

Re: ListBox.Item.Names[] Problem
 
Hi,

wie sieht denn der Inhalt aus? Hat er das Format Name=Value? Wenn nicht, suchst du wohl eher Strings statt Names.

Vergiss es, nicht genau hingeguckt. Könnte doch sein. Durchstreichung wieder entfernt.

Mfg
FAlter

LuCSteR 20. Aug 2008 17:25

Re: ListBox.Item.Names[] Problem
 
Hi Falter,

du nutzt laut Signatur ja auch Lazarus. Obwohl das bei dem Problem unerheblich sein müsste.
könnte vll. jmd. das mal bei sich ausprobieren? Einfach kurz ne Listbox erstellen was reinschreiben und den Befehel ListBox1.Items.Name[0] irgendwo wieder ausgeben lassen. Mich würde das Ergebnis mal interessieren.

---

Habs gerade nochmal selbst getestet in nem neuen Projekt. Gleiches Ergebnis. Ein leerer String.
Welchen Wert spricht man denn mit .Items.Names[] an? Scheinbar ja nicht den Namen. Zumal da "NameS" steht und dort erst der Index auftaucht. Nicht beim Item. Sehr komische Sache, weil ein Item ja nicht mehrere Namen besitzen kann, oder irre ich mich?

Mir geht es darum, einfach nur den Namen des x-ten Items einer Listbox oder Checkgroup zu ermitteln. MMh.

Grüße

----Edit---

Welcher Inhalt? Also .Items.Names[x] hat einen String als Rückgabewert. Mein Array, falls du das meinst, ist ein Array of String. Das hat aber mit dem Problem nichts zu tun. Oder habe ich deine Frage/Antwort nicht ganz verstanden?

DeddyH 20. Aug 2008 17:33

Re: ListBox.Item.Names[] Problem
 
Wenn Deine Listbox einen Eintrag in der Form
Code:
Name=Value
hat, bekommst Du mit Zugriff auf Names den Teil vor dem Gleichheitszeichen. Hast Du hingegen "ganz normale" Strings drin, greifst Du am besten direkt auf Items zu.

FAlter 20. Aug 2008 17:35

Re: ListBox.Item.Names[] Problem
 
Hi,

bei mir hat das (bei ner Listbox, mit Lazarus) geklappt.

Inhalt war:

Code:
Key=Value
Listbox1.Items.Names[0] war Key
Listbox1.Items.Values['Key'] war Value

Mfg
FAlter

DeddyH 20. Aug 2008 17:36

Re: ListBox.Item.Names[] Problem
 
Und wenn kein Gleichheitszeichen drin ist, ist Names[Index] leer (auch mit Lazarus getestet).

LuCSteR 20. Aug 2008 17:48

Re: ListBox.Item.Names[] Problem
 
Wie kann ich denn den Typ des Eintrags steuern?

Mit der Zeile fülle ich meine ListBox
Delphi-Quellcode:
ListBox1.Items.Add(FTPClient.FtpList.Items[i].FileName)
Die Items werden nat. auch richtig angezeigt. Es muss doch jetzt möglich sein alle Item-Namen nacheinander auszulesen. Ich habe das über eine gezählte Schleife gemacht und ListBox1.Items.Names[i] genutzt. Wie gesagt leerer String als Ergebnis.

Ich verstehe euer Anliegen mit Name=Value nicht ganz.

FAlter 20. Aug 2008 17:51

Re: ListBox.Item.Names[] Problem
 
Hi,

über Items.Strings[I].

Da das der Standard ist, gehts auch direkt über Items[I].

Mfg
FAlter

LuCSteR 20. Aug 2008 17:55

Re: ListBox.Item.Names[] Problem
 
Okay, danke. Wiedermal mehr gemacht, als gebraucht war :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz