AGB  ·  Datenschutz  ·  Impressum  







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

Combobox in Gruppen unterteilt

Ein Thema von Jack and the Juice · begonnen am 24. Feb 2011 · letzter Beitrag vom 25. Feb 2011
Antwort Antwort
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 13:18
Du meinst sowas, richtig?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#2

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 13:23
Ganz genau, wie dort beschrieben:
Zitat:
Die meisten aktuellen Browser beschränken sich bei der Darstellung jedoch auf eine visuelle Unterscheidung der Untergruppen (als Beispiel ein Screenshot aus Opera 8.5):
So in der Art wäre das schön.
  Mit Zitat antworten Zitat
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#3

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 13:31
Hallo Guido,

vielen Dank für deine Erklärung und das Beispiel. Das bringt mich doch ein ganzes Stück weit nach vorn.
Werde das soweit mal testen und gegenebenfalls noch anpassen. Sieht auf den ersten Blick jedoch sehr gut.

Also, danke nochmals und beste Grüße aus Lübeck!
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 15:16
Hallo, so kannst Du rauf- und runter Scrollen :
Code:
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
 if (ComboBox1.ItemIndex > 1) and (ComboBox1.Items[ComboBox1.ItemIndex -1][1]='_')
   then ComboBox1.ItemIndex:=ComboBox1.ItemIndex -2
     else
       if ComboBox1.ItemIndex +1 < ComboBox1.Items.Count then
         if (ComboBox1.Items[ComboBox1.ItemIndex +1][1]='_')
           then ComboBox1.ItemIndex:=ComboBox1.ItemIndex +2;
end;
... sorry, funktioniert auch nur bis zum Gruppen-Eintrag
Markus H.

Geändert von markus5766h (25. Feb 2011 um 15:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#5

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 16:53
So sollte es klappen :

Erstelle eine Variable "oldindex" vom Typ Integer und initialisiere sie mit -1;

Delphi-Quellcode:
procedure TForm1.ComboBox1Select(Sender: TObject);
Var newIndex : Integer;
begin
 newIndex := ComboBox1.ItemIndex;
 if ComboBox1.Items[ComboBox1.ItemIndex][1]='_'
  then begin
        if oldindex<newIndex
         then while (ComboBox1.Items.Count>(newIndex)) AND (ComboBox1.Items[newIndex][1]='_') // runterscrollen
               do newIndex:=newIndex+1
         else while (newIndex>-1) AND (ComboBox1.Items[newIndex][1]='_') // raufscrollen
               do newIndex:=newIndex-1;
        if (newIndex>ComboBox1.Items.Count-1) or (newIndex<=-1) // Ausserhalb des gültigen Bereiches ?
         then newIndex := oldIndex;
        ComboBox1.ItemIndex := newIndex;
       end;
 oldindex := newIndex;
end;
Alternativ kann man den Wert für "oldindex" auch im "Tag" der ComboBox ablegen. Das hätte den Vorteil, dass man die selbe Funktion für mehrere ComboBoxen nutzen kann, wenn man diese dann über den Sender
Code:
(Sender AS tComboBox). statt ComboBox1.
anspricht.

Ideal wäre natürlich eine eigene Klasse abzuleiten, in der man oldindex und die Grouping-Funktionen integriert...

Gruß
Guido R.
  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 21:32 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