Страница 2 из 2

Добавлено: 24 окт 2006, 16:09
Nikoshka
somewhere,
нет, там кнопки, Edit и всякое разное... а вот глюк непонимаю как победить...
Я думал сначала

Код: Выделить всё

Form1.Тут указываем по порядку Пэйд контрол, страницу и тп..InsertControl(MilkSelect);
Чтобы он с ними так делал только для страницы этой, но не работает...
С кнопочкой хорошо, там всего одна форма и она так не глючит, а с закладками вот такая штука..

Добавлено: 24 окт 2006, 23:15
Игорь Акопян
В справке по TWinControl написано что не надо напрямую вызывать InsertControl
Вместо этого лучше использовать свойство Parent, т.е. в вашем случае:

Код: Выделить всё

  ...
  MyCombo.Parent := Form1;
  ...
Nikoshka, если мне склероз не изменяет, на PageControl обычно лежат TabSheets ;)
Следовательно, Parent у создаваемых комбобоксов должен быть PageControl.Pages

кроме того конструкция Form1.Controls.ClassNameIs('TComboBox') вернёт значение true только для TComboBox, если же, к примеру, надо проверить TComboBox и его наследников, то придётся использовать класс-оператор IS т.е.:

Код: Выделить всё

  if Form1.Controls[I] is TComboBox then TComboBox(Form1.Controls[I])....

Добавлено: 26 окт 2006, 06:40
Nikoshka
Вот оно как!

Код: Выделить всё

MilkSelect.Parent := GroupBox2;
Оказывается ему по имени хватило установки родителя :)
Гм, вот только теперь не работает конструкция:

Код: Выделить всё

TListBox(Form1.Controls[k]).Sorted := true;
например.

Так я обращался к этому листбоксу, теперь конструкция не работает...

И вот это тоже не работает:

Код: Выделить всё

if GroupBox2.Controls[k] is TListBox then

----------------------
Сидел, пробовал. Вся проблема в том, что я немогу указать что непосредственный родитель это:

Код: Выделить всё

MilkSelect.Parent := GroupBox2;
так как фактически в нем все и лежит! Но при таком коде все отказывается работать :(

А если так:

Код: Выделить всё

MilkSelect.Parent := PageControl1.Pages[0].GroupBox2;
То даже запускать не дает...

Добавлено: 26 окт 2006, 08:40
somewhere
MilkSelect.Parent := PageControl1.Pages[0].GroupBox2

Код: Выделить всё

MilkSelect.Parent := PageControl1.Pages[0].Controls[0]
Ты так и не понял структуру? :-)

Добавлено: 26 окт 2006, 12:12
Nikoshka
somewhere,
Вот недавно совсем понял, без всяких заморочек:
MyCombo.Parent := Form1;

они вообще не нужны ;)
Списки и так имеют своего родителя, а при его сменен все едет, я же писал про то как у меня вложены окна по порядку.
В итоге Controls[0] просто метод, который позволяет просматривать своих детей по индексу, который создается по порядку создания самих объектов визуально.

В итоге с проверкой на то ListBox ли это я пребрал их через этот метод. Пока не пробовал, но получается что через Tag можно перебирать только тот диапазон, который нужен, верно? ;)

Добавлено: 26 окт 2006, 13:38
somewhere
Верно, с этого то все и начиналось :-)

Добавлено: 26 окт 2006, 18:07
Игорь Акопян
если ты сделаешь парентом контрола форму, то при листании твоих закладок контролы так и остануться на экране...

Добавлено: 27 окт 2006, 16:54
Nikoshka
Игорь Акопян,
Кто ж про это писал то и недоумевал, что происходит :)