![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с созданием елементов в Notebook [D7, WinXP]
Дмитрий_177 © (2005-12-16 09:13:00)Столкнулся тут с непонятной мне проблеммой. Мне нужно в зависимости от того сколько строк находится в ListBox-е создать Notebook с таким же колличеством "листов", и при нажатии по ListBox-у открывалась нужная страница Notebook-ка. В зависимости от выбранной строки ListBox-а мне нужно чтобы елементы на форме менялись, вот я и делаю через Notebook. Все хорошо, по проблема в том, что если в ListBox-е находится только одна строка, т.е. цикл проходит один раз со значением i=0 то на Notebook-е никаких эллементов не появляется... а если в ListBox-е больше одной строки, то все работает... почему так? может подскажет ктонибудь? я что-то никак понять не могу...
type
TForm1 = class(TForm)
private
Notebook1: TNotebook;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
i: smallint;
begin
if ListBox1.Items.Count <> 0 then
begin
Notebook1 := TNotebook.Create(Self);
Notebook1.Parent := TabSheet1;
Notebook1.SetBounds(8, 8, 465, 265);
Notebook1.Anchors := [akLeft, akTop, akRight, akBottom];
Notebook1.Pages := ListBox1.Items;
Notebook1.Color := clblack;
for i := 0 to ListBox1.Items.Count - 1 do
begin
with TLabel.Create(Self) do
begin
Parent := TPage(Notebook1.Pages.Objects[i]);
Left := 10;
Top := 10;
Anchors := [akLeft, akTop];
Font.Color := clwhite;
Caption := ListBox1.Items[i];
end;
end;
ListBox1.ItemIndex := 0;
Notebook1.PageIndex := 0;
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex <> -1 then
Notebook1.PageIndex := ListBox1.ItemIndex;
end;
P.S. Сам Notebook создается и с одной строкой в ListBox-е.
P.S.S. Notebook создаю на PageControl-е на закладке TabSheet1
Дмитрий_177 (2005-12-16 19:02:00) [1]А как же мне тогда Label разместить на определенной странице Notebook-а?
clickmaker (2005-12-16 13:56:00) [2]Parent := TPage(Notebook1.Pages.Objects[i]); => Parent := Notebook1;
Дмитрий_177 (2005-12-16 13:47:00) [3]clickmaker Впринципе без разницы Assign выполнять или просто присваивание... и так и так не работает с отдной строкой...
clickmaker (2005-12-16 13:38:00) [4]может всет-ки
Notebook1.Pages.Assign(ListBox1.Items); ?
Leonid Troyanovsky (2005-12-16 13:31:00) [5]
> Дмитрий_177 (16.12.05 09:13)
> создать Notebook с таким же колличеством "листов"
TNotebook is provided for backward compatibility.
New applications should use TPageControl instead.
--
Regards, LVT.
Дмитрий_05 (2005-12-16 13:12:00) [6]Т.е. получается цикл проходит а объекты не создаются... почему это так?