Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.012 c
1-47558
ikivio
2002-06-28 00:30
2002.07.15
Окна нестандартной формы (не круглой,не овальной),


14-47804
Igor_thief
2002-06-16 12:29
2002.07.15
Как отсортировать элементы в ListView по любой колонке? vsReport


6-47667
Dobriy
2002-05-02 13:55
2002.07.15
Проблема с двумя сетевыми картами


3-47116
-Евгений-
2002-06-22 09:01
2002.07.15
Как при выборке данных из БД Oracle пронумеровать


1-47321
AlexSh
2002-06-27 12:11
2002.07.15
Как в отчете выделить строки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский