Столкнулся тут с непонятной мне проблеммой. Мне нужно в зависимости от того сколько строк находится в 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 |