Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо