![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в ListView добавить... [D5, D6, Win95/98, WinME, NT4, Win2k, WinXP]
Programist21 © (2002-12-20 13:57:00)Как в ListView добавить в третий столбец строчки? (Style=vsReport)
TTCustomDelphiMaster (2002-12-30 19:11:00) [1]ListView_SetTextBkColor(ListView1.Handle,CLR_NONE);
ListView_SetBkColor(ListView1.Handle,CLR_NONE);
ListView1.Brush.Bitmap :=Image1.Picture.Bitmap;
s22_shura (2002-12-30 17:31:00) [2]А вот кто-нибудь знает как в ListView сделать бэкграунд?
Programist21 (2002-12-25 13:14:00) [3]Да, вот и процедурка к вышенаписанному коду ;)
procedure ListViewAdd_String_into_Column(var LV: TListView; Str: string; NumColumn: integer);
var i: integer;
begin
i:=0;
dec(NumColumn);
while i<LV.Items.Count do begin
Application.ProcessMessages;
if LV.Items.Item[i].SubItems[NumColumn]="" then begin
LV.Items.Item[i].SubItems[NumColumn]:=Str;
Exit;
end;
inc(i);
end;
end;
Programist21 (2002-12-24 16:52:00) [4]to ЮЮ Я уже тоже про это подумал :)
ЮЮ (2002-12-24 11:33:00) [5]Может лучше использовать StringGrid. Там и доступ к столбцу "прямее": property Cols[Index: Integer]: TStrings;
и ширина изменяется простым увеличением ColCount
Programist21 (2002-12-24 11:09:00) [6]Всё работает, но чтобы всё работало ;) надо юзать енто:
procedure TForm1.FullListView(Sender: TObject);
var i,j: integer;
begin
i:=0;
while i<ListView.Items.Count do begin
j:=0;
while j<ListView.Columns.Count-1 do begin
ListView.Items.Item[i].SubItems.Add("");
inc(j);
end;
inc(i);
end;
end;
Programist21 (2002-12-22 18:52:00) [7]to Digitman Гм... я незнаю :( Но я всё же ListView ещё не оставил! И пытаюсь всё же в программе поюзать именно его! Посмотрим что из этого выйдет.
Digitman (2002-12-22 14:51:00) [8]Любопытно, а если бы это был бы не TListView (рассматриваемый в 1-ю очередь как контейнер данных, а уже во 2-ю - как визуальный контрол), а, скажем, array of variant, проблем бы не было у тебя с сей задачей ?
Programist21 (2002-12-22 13:22:00) [9]to Сатир Не совсем читаемый пример ;) Но благодаря ему я врубился в смысл работы компонента ListView. Спасибо.
Жалко конечно, но в нём я не смогу осуществить того, что хотел :( А вернее теоретически смогу, но не практически! А необходимо было сортировать список "слов" из первого столбца по всем остальным, причём остальных столбцов было до 100 штук! То есть я должен был брать первую строку в первом столбце, смотреть подходит ли она ко всем остальным столбцам? Если нет - делать новый столбец И ДОБАВЛЯТЬ В СТОЛБЕЦ (СВЕРХУ ВНИЗ), если - да (столбец есть), то добавлять в существующий столбец (сверху вниз).
Народ, может кто-нить чё подскажет как это осуществить? Может хранить кол-во уже добавленных строк у каждого столбца и таким образом и вычислять куда именно нам надо добавлять SubItems?
Сатир (2002-12-21 14:58:00) [10]NewItem:=ListView.Items.Add;
NewItem.Caption:=ColorFormula; - первый столбец
NewItem.SubItems.Add(DefaultColor); - второй столбец
NewItem.SubItems.Add(ColorName); - третий столбец
взял из своих работающих исходников
Обращаться следующим макаром
Первый столбец Items.Item[0].Caption
Второй столбец Items.Item[0].SubItems[0]
Третий столбец Items.Item[0].SubItems[1]
Programist21 (2002-12-21 13:13:00) [11]ИМХО это не так.
to ЮЮ - пример?
В первый я делаю Add как Item, во второй как SubItem в Item, а в третий???
ЮЮ (2002-12-21 11:47:00) [12]Третий и далее делаются точно так же как и второй
Programist21 (2002-12-21 11:13:00) [13]to han_malign Я не то спрашиваю!
Нам надо из ListBox"а все String"сы перелить в один из столбцов в ListView (но не в первый и не во второй столбец! - я знаю как это сделать).
han_malign (2002-12-20 14:21:00) [14]with ListView.Columns.Add{см. TListColumn} do begin
Caption:="New Column";
..........................
for i:=0 to ListView.Items.Count-1 do with Collection do Items[i]...
end;
- правда отрисовывать помоему ручками в OnCustomDrawSubItem