![]() |
Sortierte Listbox, welcher String an welcher Stelle
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:
Wie finde ich nun am schnellsten raus, welcher ArrayIndex mit dem ausgewählten Listbox-Eintrag zusammenhängt ?
procedure TMain.SortCBClick(Sender: TObject);
begin ListBox.Sorted:=SortCB.Checked; ListBox.Items:=sl; ListBox.Refresh; end;
Delphi-Quellcode:
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.
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; Danke im Vorraus |
Re: Sortierte Listbox, welcher String an welcher Stelle
Speichere den Index in Objects der ListBox, dann hast du die Zuordnung direkt.
Delphi-Quellcode:
Du kannst da aber auch direkt eine Referenz zu dem Objekt selbst hineinlegen, wenn du willst.
// Eintragen
ListBox1.Items.AddObject('Dein Eintragsstring', TObject(DeinEintragsIndex)); ... // Index zu einem Eintrag auslesen Integer(ListBox1.Items.Objects[ListBox1.ItemIndex]) |
Re: Sortierte Listbox, welcher String an welcher Stelle
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 ? |
Re: Sortierte Listbox, welcher String an welcher Stelle
Zitat:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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