Hallo,
kann man in einer Combobox ein einzelnes Element disablen, so das man es sieht aber nicht wählen kann?
Combobox einzelnes Element disablen?
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Combobox einzelnes Element disablen?
Hallo, Markus.
Nicht standardmäßig. Du kannst nur die Listbox-Komponente deaktivieren, aber dann wäre nichts mehr wählbar.
Wenn Du allerdings das Ownerdrawing-Merkmal verwendest und Deinen Handler entsprechend anpasst, kannst Du das simulieren. Per Ownerdrawing könntest Du direkt z.B. auf eine eigene iVar in einer abgeleiteten Klasse reagieren (nicht wählbare Elemente) und diese dann anders zeichnen. Im Handler könntest Du auf das ItemMarked-Event reagieren und die Markierung verändern (voriges/folgendes Element), wenn das aktuell hervorgehobene Element nicht wählbar sein darf.
Einfacher wäre es allerdings, die ItemList der Listbox einfach um jene Elemente zu reduzieren, die nicht wählbar sind.
Nicht standardmäßig. Du kannst nur die Listbox-Komponente deaktivieren, aber dann wäre nichts mehr wählbar.
Wenn Du allerdings das Ownerdrawing-Merkmal verwendest und Deinen Handler entsprechend anpasst, kannst Du das simulieren. Per Ownerdrawing könntest Du direkt z.B. auf eine eigene iVar in einer abgeleiteten Klasse reagieren (nicht wählbare Elemente) und diese dann anders zeichnen. Im Handler könntest Du auf das ItemMarked-Event reagieren und die Markierung verändern (voriges/folgendes Element), wenn das aktuell hervorgehobene Element nicht wählbar sein darf.
Einfacher wäre es allerdings, die ItemList der Listbox einfach um jene Elemente zu reduzieren, die nicht wählbar sind.
Herzlich,
Tom
Tom
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Combobox einzelnes Element disablen?
Danke Tom.
das mit dem Ownerdrawing wird mir zu diesem Zeitpunkt zu komplex (Zeit). Das mit dem entfernen ist mir klar, ich wollte aber dass der Kunde die anderen Einträge sieht, sie aber nur in Abhängigkeit der Lizenz wählen kann.
Im Moment disable ich einfach die ganze Combo Box, das reicht zur Zeit.
das mit dem Ownerdrawing wird mir zu diesem Zeitpunkt zu komplex (Zeit). Das mit dem entfernen ist mir klar, ich wollte aber dass der Kunde die anderen Einträge sieht, sie aber nur in Abhängigkeit der Lizenz wählen kann.
Im Moment disable ich einfach die ganze Combo Box, das reicht zur Zeit.
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14653
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Combobox einzelnes Element disablen?
Markus,
ein wenig Krücke, aber vielleicht wäre das eine schnelle Option (wenn Dir OwnerDrawing zu lange dauert): Bau Dir ein Array mit der gleichen Länge wie die Combo-Box. Und trage da einfach ein .T. oder .F. ein. Je nachdem, ob der Kunde für diese Position lizensiert ist oder nicht. Wenn der Kunde dann einen Eintrag auswählt, ermittelst Du die Position des Eintrages in der ComboBox, und schaust nach, was an der entsprechenden Position des Rechte-Arrays steht. Steht da ein .F., dann bekommt der einfach nur eine MsgBox(), das der das nicht darf.
Jan
ein wenig Krücke, aber vielleicht wäre das eine schnelle Option (wenn Dir OwnerDrawing zu lange dauert): Bau Dir ein Array mit der gleichen Länge wie die Combo-Box. Und trage da einfach ein .T. oder .F. ein. Je nachdem, ob der Kunde für diese Position lizensiert ist oder nicht. Wenn der Kunde dann einen Eintrag auswählt, ermittelst Du die Position des Eintrages in der ComboBox, und schaust nach, was an der entsprechenden Position des Rechte-Arrays steht. Steht da ein .F., dann bekommt der einfach nur eine MsgBox(), das der das nicht darf.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.