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

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

Динамически созданный ListView [D6, Win2k]


Dinara ©   (2002-08-08 21:30:00) 

Что нужно сделать с сабжем перед тем, как добавлять итемы? Просто так, сразу после создания не получается - лезут ошибки.


Dinara   (2002-08-08 23:58:00) [1]

Нет, дело было не в этом.

Я вынесла функцию создания экземпляра ListView в отдельный модуль. Его занесла в uses главной формы. Этой функции в качестве параметра передавался ListView, который нужно создать (сам этот ListView объявлялся во втором другом модуле).

Плюс к тому же, ListView входит в состав другого класса, своевременная инициализация объекта которого была под сомнением :))

И еще... думаешь одно, пишешь другое.. :))

Но все решилось с миром :)


Юрий Зотов   (2002-08-08 23:06:00) [2]

Наверное, перенесли этот код в OnShow?

Для работы с ListView нужно реальное окно, а ему требуется родительское. В OnCreate окна формы еще нет, оно появится после отработки CreateWnd.


Dinara   (2002-08-08 21:59:00) [3]

Спасибо, разобралась уже :)

Проблема была очень тонкая, а внешне-то все вроде правильно было написано.


Jeer   (2002-08-08 21:52:00) [4]

Пример небез"известный

procedure TForm1.FormCreate(Sender: TObject);

const
Names: array[0..5, 0..1] of string = (
("Rubble", "Barney"),
("Michael", "Johnson"),
("Bunny", "Bugs"),
("Silver", "HiHo"),
("Simpson", "Bart"),
("Squirrel", "Rockey")
);

var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
ListView: TListView;
begin
ListView := TListView.Create(Self);
with ListView do
begin
Parent := Self;

Align := alClient;
ViewStyle := vsReport;

NewColumn := Columns.Add;
NewColumn.Caption := "Last";
NewColumn := Columns.Add;
NewColumn.Caption := "First";

for I := Low(Names) to High(Names) do
begin
ListItem := Items.Add;
ListItem.Caption := Names[I][0];
ListItem.SubItems.Add(Names[I][1]);
end;
end;
end;


Наверх

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