|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2008, 00:52 | #1 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Форма с разноцветными надписями
Здравствуйте! Подскажите, что то я сам не могу придумать. Есть массив записей, каждая запись это String, String, Boolean. Нужно вывести на форму список всех текстовых записей, причём записи, у которых третья переменная равна False, их нужны выводить красным цветом.
На сколько я знаю, стандарные компоненты (stringGrid, Label, Memo) не позволяют разные фрагменты текста делать разными цветами. |
22.02.2008, 01:17 | #2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
В StringGrid-е вы можете раскидать свои данные по трем столбцам и в зависимости от содержимого третьего столбца красить первые два. Уберете линии - будет выглядеть как листбокс... Вопрос раскраски гридов неоднократно у нас рассматривался, поэтому не привожу. В конце концов, можно даже каждую запись отображать в трех разноцветных лейблах... |
|
22.02.2008, 02:52 | #3 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Спасибо, именно тремя лэйблами и хотел сделать, но массив динамический, создавать новые label на форме? брр... А с гридами спасибо, щас поищу
P.S. А почему в таблице первая ячейка синим выделена? как от этого избавиться? Последний раз редактировалось eks-s; 22.02.2008 в 02:55. |
22.02.2008, 03:43 | #4 |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Можно еще проще.
Form1.Canvas.Font.Color := clRed; Form1.Canvas.TextOut(10,10, 'Превед, медвед!'); Что-то в этом духе |
22.02.2008, 10:57 | #5 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
При обработке события OnDrawCell вы сможете от этой закраски избавиться, игнорируя состояние ячейки и назначая цвет фона и шрифта без учета этого свойства, либо назначить другой, более подходящий (по вашему мнению) цвет. Последний раз редактировалось mihali4; 22.02.2008 в 17:20. |
|
22.02.2008, 12:09 | #6 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
Включи в ListBox свойство style в lbvirtual
а в реакции на ONDrawItem пиши что пожелаешь (хоч можеш и каждую строку разным цветом покрасить)
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
22.02.2008, 16:37 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
StringGrid или ListBox по желанию, что лучше подходит.
И в том и в другом обрабатывать событие отрисовки, если динамически записи могут меняться, то после изменения вызывать отрисовку чтобы изменения отобразились.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
23.02.2008, 15:02 | #8 | |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Цитата:
Код:
Код:
|
|
23.02.2008, 22:52 | #9 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
if (gdFocused in State) then if (gdSelected in State) then Правда, тогда вы не сможете что-либо выделять (просто не видно будет выделения), но, как я понял, вам это и не нужно... |
|
26.02.2008, 00:26 | #10 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Спасибо всем огромное, лучшый форум
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
форма | blackstersl | Мультимедиа в Delphi | 1 | 23.08.2008 19:03 |
Форма | Killbrum | Помощь студентам | 8 | 21.08.2008 18:48 |
Форма | subsonic | Общие вопросы Delphi | 5 | 10.01.2008 11:18 |
форма... | Briz | Общие вопросы Delphi | 8 | 22.10.2007 17:26 |
Форма | MAcK | Общие вопросы Delphi | 4 | 07.02.2007 01:43 |