AGB  ·  Datenschutz  ·  Impressum  







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

listbox1.Items.IndexOf

Ein Thema von wol · begonnen am 7. Apr 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
wol

Registriert seit: 13. Nov 2007
Ort: Stuttgart
21 Beiträge
 
Delphi 6 Personal
 
#1

listbox1.Items.IndexOf

  Alt 7. Apr 2008, 23:02
Hallo,
die Funktion m:=listbox1.Items.IndexOf(s) liefert bekanntlich den index m des Textes s in listbox.
Diese Funktion will ich nutzen.
Meine Frage: Kann man in listbox auch ein 2-dimensionales array speichern?
Ich möchte aus einem Telefonbuch (Nummern; Namen) die Nummer finden und dann auf den Namen zugreifen und das möglichst bequem.
Gruß Wolfgang
Danke / Bitte; Gruß Wolfgang
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: listbox1.Items.IndexOf

  Alt 7. Apr 2008, 23:09
Schau dir mal TValueListEditor an.
Markus Kinzler
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#3

Re: listbox1.Items.IndexOf

  Alt 7. Apr 2008, 23:09
Hallo,
Zitat von wol:
die Funktion m:=listbox1.Items.IndexOf(s) liefert bekanntlich den index m des Textes s in listbox.
das ist keine Funktion, sondern die Zuweisung eines Funktionsergebnisses zu einer Variablen.

Zitat von wol:
Meine Frage: Kann man in listbox auch ein 2-dimensionales array speichern?
Du kannst jedem Item ein Object zuweisen -> TListBox.Items.Objects
Damit kannst Du dann bspw. Dein Array hinterlegen.

Wie wäre es ansonsten mit einer TListView oder TValueListEditor?
  Mit Zitat antworten Zitat
wol

Registriert seit: 13. Nov 2007
Ort: Stuttgart
21 Beiträge
 
Delphi 6 Personal
 
#4

Re: listbox1.Items.IndexOf

  Alt 7. Apr 2008, 23:17
Danke für die schnelle Antwort. Natürlich hast du recht, mit der Fkt. bzw. Zuweisung.
Trotzdem verstehe ich es nicht.
Kannst du mir verklickern?
Also:
type telefone = record
nr,tn:shortstring;end;
var mat:array[0..100] of telefone;

und wie bastle ich nun aus mat eine liste?
Danke / Bitte; Gruß Wolfgang
  Mit Zitat antworten Zitat
8. Apr 2008, 08:07
Dieses Thema wurde von "SirThornberry" von "Neuen Beitrag zur Code-Library hinzufügen" nach "VCL / WinForms / Controls" verschoben.
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: listbox1.Items.IndexOf

  Alt 8. Apr 2008, 08:39
Moin Wol,

so nicht. Wie bereits gesagt nutzt du TValueListEditor. Einfach mal die OH deines Delphi bemühen. Du kannst damit Einträge pro Zeile in der Form Key=Value speichern und sowohl auf Key wie auf Value einzeln zugreifen. Willst mehrere Einträge (Spalten, weitete Array-Dimensionen...) kam der Verweis auf ein Object. Jedes Item kapselt die Eigenschaft Object vom Typ TObject. Somit kannst du auch jedem Item ein eigenes Object zuweisen. Deinem eingenen Object kannst du dann alle dir genehmen Eigenschaften zuweisen. Leitest du dir eine eigene Listenklasse ab, kannst du dir auch eigene IndexOf-Methoden schreiben denen du z.B. andere Prameter für die Suche übergibst usw.

Gruß oki
42
  Mit Zitat antworten Zitat
wol

Registriert seit: 13. Nov 2007
Ort: Stuttgart
21 Beiträge
 
Delphi 6 Personal
 
#7

Re: listbox1.Items.IndexOf

  Alt 8. Apr 2008, 23:09
Zitat von oki:
Moin Wol,

so nicht. Wie bereits gesagt nutzt du TValueListEditor. Einfach mal die OH deines Delphi bemühen. Du kannst damit Einträge pro Zeile in der Form Key=Value speichern und sowohl auf Key wie auf Value einzeln zugreifen. Willst mehrere Einträge (Spalten, weitete Array-Dimensionen...) kam der Verweis auf ein Object. Jedes Item kapselt die Eigenschaft Object vom Typ TObject. Somit kannst du auch jedem Item ein eigenes Object zuweisen. Deinem eingenen Object kannst du dann alle dir genehmen Eigenschaften zuweisen. Leitest du dir eine eigene Listenklasse ab, kannst du dir auch eigene IndexOf-Methoden schreiben denen du z.B. andere Prameter für die Suche übergibst usw.

Gruß oki
Danke für Deine Mühe.
Leider komme ich mit valuelisteditor nicht zu recht. Die Hilfe ist bei meiner Delphi-Schwabenversion zu gering.
Ich hab es aber nun mit stringgrid reallisieren können.
ergebnissStr:=stringgrid1.Cells[1,stringgrid1.Cols[0].IndexOf(suchStr)];
Somit hab ich meine schnelle Suchfkt.
Leider muss ich den Datenfile per Hand (Schleife) in das Stringgrid laden.
Geht bestimmt auch bequemer wie per cells[m,n]:= bla bla!
Gruß aus Stgt.,
Wolfgang
Danke / Bitte; Gruß Wolfgang
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: listbox1.Items.IndexOf

  Alt 8. Apr 2008, 23:16
Besser per .Rows()
Markus Kinzler
  Mit Zitat antworten Zitat
wol

Registriert seit: 13. Nov 2007
Ort: Stuttgart
21 Beiträge
 
Delphi 6 Personal
 
#9

Re: listbox1.Items.IndexOf

  Alt 8. Apr 2008, 23:42
Zitat von mkinzler:
Besser per .Rows()
ne, die Zeile wird zurückgegeben! Ich muss somit die Spalte angeben die dann über alle Zeilen durchsucht wird.
mfg WG
Danke / Bitte; Gruß Wolfgang
  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 17:32 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