Главная страница
    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.46 MB
Время: 0.013 c
1-47437
Марина
2002-07-03 09:18
2002.07.15
Windows XP и MessageDlg


1-47261
James007
2002-06-29 17:26
2002.07.15
Создание обработчика события для динамически созданного компонент


14-47791
Zevsus
2002-06-15 15:06
2002.07.15
Есть БД а-ля 1С, то есть набор cdx, dbf и каких-то fpt файлов...


1-47586
KvORubin
2002-06-28 10:33
2002.07.15
Подскажите как пользоваться компонентом TreeView1


1-47490
Sergey_
2002-07-01 14:07
2002.07.15
Дабрый день. Имеется StringGrid Как прочитать поле в





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский