AGB  ·  Datenschutz  ·  Impressum  







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

Bestimmte Items in Combobox disablen

Ein Thema von xaromz · begonnen am 11. Sep 2007 · letzter Beitrag vom 11. Sep 2007
Antwort Antwort
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#1

Bestimmte Items in Combobox disablen

  Alt 11. Sep 2007, 10:25
Hallo,

ich würde gerne einige Items in einer Combobox "ausgrauen", d. h. nicht auswählbar machen. Leider habe ich im MSDN nichts gefunden, was mir weiterhilft. Gibt es da eine Message, die ich abfangen kann oder muss ich das alles komplett selbst machen (sprich: Combobox nachbauen)?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Bestimmte Items in Combobox disablen

  Alt 11. Sep 2007, 11:26
Hallo,

Du kannst die Text- oder Hintergrundfarbe der entsprechenden Items ändern (ausgrauen), in dem Du die Style-Eigenschaft Deiner Combobox auf csOwnerDraw* stellst, und dann im OnDrawItem-Event das Item unter Berücksichtigung Deiner Farbvorstellungen selber zeichnest.

Das mit dem nicht-auswählbar-machen könnten man sich sicherlich irgendwie hinfriemeln, indem man auf WM_LBUTTONUP reagiert.

Vielleicht genügt es Dir aber auch schon, wenn Du Dir im OnDropDown-Event den aktuellen Index merkst, und im OnChange-Event überprüfst, ob ein 'deaktiviertes' Item ausgewählt wurde, und dann den ItemIndex auf das zuvor gemerkte zurücksetzt.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Bestimmte Items in Combobox disablen

  Alt 11. Sep 2007, 11:48
Hallo,

Zitat von s-off:
Du kannst die Text- oder Hintergrundfarbe der entsprechenden Items ändern (ausgrauen), in dem Du die Style-Eigenschaft Deiner Combobox auf csOwnerDraw* stellst, und dann im OnDrawItem-Event das Item unter Berücksichtigung Deiner Farbvorstellungen selber zeichnest.
das Zeichnen ist nicht das Problem.
Zitat von s-off:
Das mit dem nicht-auswählbar-machen könnten man sich sicherlich irgendwie hinfriemeln, indem man auf WM_LBUTTONUP reagiert.
Ich weiß nicht, ob diese Nachricht überhaupt kommt, und was mache ich bei einer Auswahl per Tastatur?
Zitat von s-off:
Vielleicht genügt es Dir aber auch schon, wenn Du Dir im OnDropDown-Event den aktuellen Index merkst, und im OnChange-Event überprüfst, ob ein 'deaktiviertes' Item ausgewählt wurde, und dann den ItemIndex auf das zuvor gemerkte zurücksetzt.
Ich möchte aber, dass sich die Combobox nicht schließt, wenn ich ein deaktiviertes Element auswähle. Das ist das eigentliche Problem. Wenn ich hier die Auswahl abfange, dann lösen sich die weiteren Probleme in Luft aus.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#4

Re: Bestimmte Items in Combobox disablen

  Alt 11. Sep 2007, 14:07
Eine Idee (mit Fragestellung) dazu:
Macht das "Ausgrauen" überhaupt Sinn? Wäre es nicht eine Alternative, die Elemente, solange sie temporär nicht auswählbar sein sollen, aus der Liste herauszunehmen und bei Bedarf wieder "hineinzutun". Ich denke, das ist einfacher zu realisieren, als die bisher diskutierten Lösungsansätze.
Gruß
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Bestimmte Items in Combobox disablen

  Alt 11. Sep 2007, 18:02
Hallo,

das ginge schon, aber ich möchte dem Anwender zeigen, dass die Items zwar noch da sind, er sie momentan aber nicht nutzen kann.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  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 18:58 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