AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Sortierte Listbox, welcher String an welcher Stelle
Thema durchsuchen
Ansicht
Themen-Optionen

Sortierte Listbox, welcher String an welcher Stelle

Ein Thema von DataNess · begonnen am 21. Mär 2009 · letzter Beitrag vom 21. Mär 2009
Antwort Antwort
DataNess

Registriert seit: 11. Jun 2007
25 Beiträge
 
Delphi 7 Personal
 
#1

Sortierte Listbox, welcher String an welcher Stelle

  Alt 21. Mär 2009, 20:29
Hallo Leute,

ich weiss nicht so recht wie ich's beschreiben soll, aber ich habe folgendes Problem:
Ich habe ein Array mit allen möglichen Informationen zu Filmen, und eine StringList die mit den Filmtiteln aus dem Array gefüllt wird.
Nun habe ich eine Listbox mit der StringList gefüllt und jenachdem ob eine CheckBox aktiviert wird, werden die Einträge mit ListBox.Sorted sortiert!
Delphi-Quellcode:
procedure TMain.SortCBClick(Sender: TObject);
begin
  ListBox.Sorted:=SortCB.Checked;
  ListBox.Items:=sl;
  ListBox.Refresh;
end;
Wie finde ich nun am schnellsten raus, welcher ArrayIndex mit dem ausgewählten Listbox-Eintrag zusammenhängt ?
Delphi-Quellcode:
procedure TMain.ListBoxMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var z:integer;
begin
  z:=(y div 13)+1;
  if (y=0) or (y>AnzFilme*13) or (x=0) or (x>419) then z:=100;
  if z<=anzfilme then
    StatusBar.Panels[1].Text:=Filme[z].Hint
  else
    StatusBar.Panels[1].Text:=' ';
end;
Im unsortierten Zustand klappt's so, aber wenn's sortiert ist müsste ich erst das ganze Array nach dem String 'ListBox.Items.Strings[z]' durchsuchen.

Danke im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Sortierte Listbox, welcher String an welcher Stelle

  Alt 21. Mär 2009, 20:33
Speichere den Index in Objects der ListBox, dann hast du die Zuordnung direkt.
Delphi-Quellcode:
// Eintragen
ListBox1.Items.AddObject('Dein Eintragsstring', TObject(DeinEintragsIndex));

...

// Index zu einem Eintrag auslesen
Integer(ListBox1.Items.Objects[ListBox1.ItemIndex])
Du kannst da aber auch direkt eine Referenz zu dem Objekt selbst hineinlegen, wenn du willst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
DataNess

Registriert seit: 11. Jun 2007
25 Beiträge
 
Delphi 7 Personal
 
#3

Re: Sortierte Listbox, welcher String an welcher Stelle

  Alt 21. Mär 2009, 21:43
Danke jaenicke,

so geht's .. jetzt muss ich nur noch die ListBox-Einträge neu erstellen, wenn ListBox.Sorted wieder False wird, oder giebt's da auch ne Abkürzung ?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Sortierte Listbox, welcher String an welcher Stelle

  Alt 21. Mär 2009, 22:11
Zitat von DataNess:
jetzt muss ich nur noch die ListBox-Einträge neu erstellen, wenn ListBox.Sorted wieder False wird, oder giebt's da auch ne Abkürzung ?
Der unsortierte Zustand ist ja kein definierter Zustand. Die Einträge sind dann ja in der Reihenfolge, in der sie irgendwo stehen.

Wenn diese Reihenfolge also notwendig ist, dann musst du das selbst wieder neu eintragen. Die Eintragereihenfolge wird nicht gespeichert.

Allerdings kannst du dafür ja die selbe Methode wie für das initiale Eintragen benutzen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 14:57 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