Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c