![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выделение записей в ListBox'e
Washington © (2007-06-25 08:27:00)Я уже говорил о своём планировщике. Выводятся записи в ListBox по дате. И мне теперь надо выделить их по месяцам. К примеру
Январь
------------
Февраль
------------
То есть когда выведены все записи между записями разных месяцов надо провести так сказать черту - это вообще возможно?
pohil (2007-06-25 16:05:00) [1]
procedure TForm3.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with ListBox1.Canvas do begin
Brush.Color := clWhite;
Pen.Color := clWhite;
Rectangle(Rect);
end;
if (ListBox1.Items[Index] = '-') then
begin
with ListBox1.Canvas do begin
Pen.Color := clRed;
MoveTo(Rect.Left, (Rect.Bottom - Rect.Top) div 2);
LineTo(Rect.Right, (Rect.Bottom - Rect.Top) div 2);
end;
end
else begin
ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, ListBox1.Items[Index]);
end;
end;
Ну наверное так, работает криво, но если надо разберешься
Anatoly Podgoretsky (2007-06-25 14:10:00) [2]Ну тогда пусть заказывает программу
antonn (2007-06-25 13:18:00) [3]
> А справку принципиально не признаем, а она с примером
а там нет примера по ограничению записей по месяцам и рисованием черточек под ними :)))
Anatoly Podgoretsky (2007-06-25 11:26:00) [4]> Washington (25.06.2007 11:17:09) [9]
А справку принципиально не признаем, а она с примером
Washington (2007-06-25 11:17:00) [5]Ну код то подскажите, а?
Amoeba (2007-06-25 10:52:00) [6]
> А нормальную черту (к примеру красного цвета) можно жахнуть?
Можно! В событии OnDrawItem.
homm (2007-06-25 10:51:00) [7]> к примеру красного цвета
OnDrawItem
Washington (2007-06-25 10:13:00) [8]Это я для примера тире сделал. А нормальную черту (к примеру красного цвета) можно жахнуть?
Anatoly Podgoretsky (2007-06-25 10:06:00) [9]Так это же тире
Washington (2007-06-25 09:05:00) [10]Ну ладно, а как сами палочки-чёрточки то черкнуть?
Gloomer (2007-06-25 08:50:00) [11]OnDrawItem???
А проще никак нельзя? Тебе же сказали - на этапе заполнения ListBox.
Сортируешь sql-запрос по дате. При заполнении проверяешь месяц. Если месяц не равен месяцу предыдущей записи, то сначала добавить "палочки-чёрточки", а потом саму запись...
Washington (2007-06-25 08:35:00) [12]Это понятно. Т.е. в событии OnDrawItem рисовать эти палочки-чёрточки? Как?
Alarm (2007-06-25 08:33:00) [13]Содержание ListBox ни как не связано ни с БД ни с SQL-запросом. Поэтому при наполнении ListBox, сам следи за сменой месяца и пиши в него строку любого содержания