Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизГруппировка в ListBox1 Найти похожие ветки
← →
Supreme (2002-12-12 17:09) [0]Нужно написать отдельную процедуру, чтобы сгруппировать строки в
ListBox1. Т.е. имееются строки, например:
111111
222222
333333
444444
Нужно перед каждой добавить "1. ", "2. ", "3. "...."25. " и т.д. до конца.
Но чтобы не это делалось не просто "допечатыванием", а с заменой старых значений.
т.е., чтобы не получилось такого:
1. 1. 111111
2. 2. 222222
3. 3. 333333
и т.д.
помогите написать процедуру.
← →
Calm (2002-12-12 17:26) [1]Перед тем как добавить номер, проверяй первое слово (символы до пробела) обрабатываемой строки. Если перовое слово состоит из цифр и точки, тогда его нужно удалить и только после этого добавить номер.
Использовать фукнцию Copy, проверку на вхождение символа в множество и все...
← →
Supreme (2002-12-12 20:38) [2]Можно пример?
← →
Бурундук (2002-12-12 21:17) [3]Есть ещё вариант:
можно не добавлять номер к строке, а просто
рисовать его. Тогда не надо будет отслеживать изменения -
номер будет соответсвтовать позиции автоматически.
ListBox1.Style := lbOwnerDrawFixed;
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var s: string;
begin
with (Control as TListBox) do
begin
if odSelected in State then
begin
Canvas.Brush.Color := clHighlight;
Canvas.Font.Color := clHighlightText;
end else
if odDisabled in State then
Canvas.Font.Color := clInactiveCaption;
//...
s := Format("%d. %s", [Index, Items[Index]]);
Canvas.TextRect(Rect, Rect.Left+2, Rect.Top, s);
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c