![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить закладку PageControla во время выполнения прг ? [D7, WinXP]
Slaga © (2004-09-20 20:32:00)Есть PageControlс 3 закладками, а мне одну нужно удалить, в рантайме.
Как это правильно сделать ?
Slaga (2004-09-21 15:00:00) [1]А я все понял.
У меня ж еще компоненты были на Табе, а я сначала удалял таб, а потом пытался компонентам переприсвоить парента :))
Да, видать, мысль вчера в голову не шла.
Всем спасибо :))
basken (2004-09-21 13:51:00) [2]можно еще так
var
DeletedTabSheet: TTabSheet;
begin
DeletedTabSheet := PageControl.ActivePage;
FreeAndNil(DeletedTabSheet);
basken (2004-09-21 13:42:00) [3]
> У меня удалить то все получается, у меня после удаления
> не получается перейти на любую другую закладку, у меня такое
> подозрение что этим free, я удаляю что-то болше чем 1 закладку.
>
> PageControl.Pages[PageControl.ActivePageIndex].Free;
У PageControl(если он TPageControl) нет свойства ActivePageIndex...
PageControl.Pages[PageControl.ActivePage.PageIndex].Free; намана удаляет, и переходы после удаления наманые...
Slaga (2004-09-21 12:06:00) [4]>>Goorus © (21.09.04 03:53) [7]
Это я сейчас попробую, спасибо.
>>to All
У меня удалить то все получается, у меня после удаления не получается перейти на любую другую закладку, у меня такое подозрение что этим free, я удаляю что-то болше чем 1 закладку.
PageControl.Pages[PageControl.ActivePageIndex].Free;
VMcL (2004-09-21 10:51:00) [5]>> Slaga © (20.09.04 20:57) [4]
> А как надо, я ж спрашиваю!
"И не надо так кричать, я и так всё прекрасно слышу" © Кролик из м/ф
Хочешь помощи - приводи свой код, чтобы было, что обсуждать.
Goorus (2004-09-21 03:53:00) [6]Создание в рантайме:
Page:=TTabSheet.Create(PageContr);
PageContr.InsertControl(Page);
Page.PageControl:=PageContr;
Page.PageIndex:=Number;
// возможно что-то и не нужно
Удаление:
Page.Free;
PageContr.Update;
Fedia (2004-09-21 01:55:00) [7]>А как надо, я ж спрашиваю!
Скорее всего ошибка возникает при попытке уничтожения не существующей закладки PageControl. Хотя точно тебе никто не скажет, можно только попытаться угадать.
Создай новой проект, PageControl с тремя закладками и выполни:
PageControl1.Pages[2].Free; Ты увидишь как это сработает, а следовательно ошибка у тебя в коде. Если не можешь ее выявить визуально и в пошаговом режиме, то комментируй свой код по частям, до тех пор, пака не закомментируешь ту часть кода, без которой ошибка исчезнет.
Defunct (2004-09-20 21:03:00) [8]Может достаточно просто скрыть?
Slaga (2004-09-20 20:57:00) [9]А как надо, я ж спрашиваю!
VMcL (2004-09-20 20:55:00) [10]>> Slaga © (20.09.04 20:39) [2]
Значит, неправильно делаешь.
Slaga (2004-09-20 20:39:00) [11]Да, но когда я так делаю, я теряю возможность переходить между табами, Аксес виолатио :(
Anatoly Podgoretsky (2004-09-20 20:33:00) [12]Все компоненты можно удалять с помощью Free