Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 23:13   #1
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию Изменение строки в ListBox

У меня в ListBox заносятся элементы массива в столбец. Как можно изменить цвет строки или цвет шрифта, если элемент массива < 0?
Ericnex вне форума Ответить с цитированием
Старый 16.03.2013, 00:21   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А зачем массив заносится в TListBox? Массив в массив?
ReportCube вне форума Ответить с цитированием
Старый 19.03.2013, 15:33   #3
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию

а массив какие индексы у вас имеет? О каком элементе <0 идет речь?
интенсивно гуглю прежде чем задать вопрос
Gregor вне форума Ответить с цитированием
Старый 19.03.2013, 19:44   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

задать процедуру обработки события OnDrawItem.
в которой на основе предоставленых данных либо рисовать самому методами Canvas c установкой нужных свойств (Brush, Pen) либо управлять стандартной отрисовкой с помощью параметров.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 19.03.2013, 19:45   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Попробуйте это. Прорисовка разными цветами самого текста в строках:

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure AddLog(const aStr : String; const aColor : TColor);
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.AddLog(const aStr: String; const aColor: TColor);
begin
  //Добавляем в качестве очередного элемента пару: строка + объект.
  //Но в качестве объекта передаём на самом деле сведения о цвете.
  //Т. е. таким образом мы добавляем информацию - строку и цвет шрифта,
  //которым будет прорисован текст этой строки.
  ListBox1.Items.AddObject(aStr, TObject(aColor));
end;
 
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  OldColor : TColor;
begin
  with ListBox1.Canvas do begin
    //Запоминаем действующий цвет шрифта.
    OldColor := Font.Color;
    //Извлекаем сведения о цвете шрифта и задаём для шрифта канвы этот цвет.
    Font.Color := TColor( ListBox1.Items.Objects[Index] );
    //Выводим текст строки.
    TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
    //Восстанавливаем прежний цвет шрифта.
    Font.Color := OldColor;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Randomize;
  AddLog(
    'Строка №' + IntToStr(ListBox1.Items.Count),
    RGB(Random(11) * 20 , Random(11) * 20, Random(11) * 20)
  );
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  ListBox1.Clear;
end;
 
end.

Последний раз редактировалось Stilet; 12.02.2015 в 12:56.
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение цвета шрифта надписи в ListBox Lokos Общие вопросы Delphi 2 20.02.2013 22:58
Listbox изменение/добавление/удаление и др. rus65 Microsoft Office Excel 1 29.01.2013 14:48
изменение позиций элементов ListBox (C++,MFC) Gold_Ujin Помощь студентам 4 29.02.2012 01:42
listbox - изменение цвета выделеной строки(drawitem) Karych Общие вопросы Delphi 7 08.01.2012 12:26
В самом listbox-e (в списке) можно ли делать изменение ? Aqil_f Microsoft Office Excel 5 10.06.2010 16:47