Вниз
Скачать: CL | DM;

ComboBox - Цвет   Найти похожие ветки 

← →
nimble ©   (2002-07-01 07:26) [0]

В списке есть следующие записи:
111
222
333
444
Как сделать так, чтобы у строки "333" цвет шрифта был, допустим, красный?


← →
tovSuhov ©   (2002-07-01 07:42) [1]

Обрабатывай OnDrawItem...


← →
nimble ©   (2002-07-01 07:52) [2]

А что там конкретно писать?


← →
tovSuhov ©   (2002-07-01 08:10) [3]

Ну что-то типа:
if ComboBox1.Items.Strings[Index] = "333"
then
begin
ComboBox1.Canvas.Font.Color = clRed;
end;


← →
nimble ©   (2002-07-01 08:40) [4]

Как закрасить я разобрался:
1. свойстово Style устанавливаем в csDropDown;
2. if ComboBox1.Items[index]="111" then ComboBox1.Canvas.Font.Color:=clRed;
ComboBox1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,ComboBox1.Items[Index]);


А теперь возникла другая проблема:( Когда меняешь свойство Style, то пропадает возможность вводить данные с клавиатуры. Че делать !?


← →
tovSuhov ©   (2002-07-01 09:11) [5]

Не понял...
Если тебе необходимо вводить данные с клавиатуры, то и устанавливай нужный для этого стайл. Причем здесь прорисовка элементов?


← →
Игорь Шевченко ©   (2002-07-01 10:07) [6]

Когда у ComboBox установлен один из стилей csOwnerDrawFixed, csOwnerDrawVariable, то возможность ввода с клавиатуры пропадает и отсается только возможность выбора из списка. Microsoft объясняет это тем, что тем, что стандартный Edit не имеет возможности отрисовки пользователем его содержимого, а так как заранее неизвестно, что именно пользователь будет рисовать, то окно Edit ComboBox"а меняется на окно Static, которое отрисовку пользователем поддерживает, но не поддерживает ввод.

Не самое плохое решение - имитация ComboBox"а путем 3-х компонент - TEdit, TSpeedButton и TListBox. При этом ListBox рисуется пользователем, а в Edit, как обычно вводятся данные.
Второй способ более сложный и требует написания нового компонента, наследника от TComboBox и изменения оконной процедуры его окна ListBox. Пример такого способа можно посмотреть на http://www.delphikingdom.com/treasury/combo.htm.
Можно также использовать TComboBoxEx, если версия comctl32.dll позволяет его использовать - у него возможностей больше. Его поддержка добавлена в Delphi 6.

С уважением,


← →
nimble ©   (2002-07-02 00:52) [7]

->Игорь Шевченко
Спасибо!!!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-47144
Jony
2002-06-18 16:03
2002.07.15
Работа с картинками *.jpg в Delphi/MS SQL


1-47257
Man-In-Red
2002-06-26 20:18
2002.07.15
3-ри ВОПРОСА К МАСТАКАМ-МАСТЕРАМ!


3-47065
KAA_
2002-06-20 12:18
2002.07.15
Индекс не найден


3-47205
Юра
2002-06-19 12:07
2002.07.15
Как сделать вертикальный скроллбар в фильтрованной TTable?


1-47385
race1
2002-07-02 13:58
2002.07.15
снова рисование :)




   Наверх