Вниз
Скачать: CL | DM;

Как удалить закладку PageControla во время выполнения прг ?   Найти похожие ветки 

← →
Slaga ©   (2004-09-20 20:32) [0]

Есть PageControlс 3 закладками, а мне одну нужно удалить, в рантайме.

Как это правильно сделать ?


← →
Anatoly Podgoretsky ©   (2004-09-20 20:33) [1]

Все компоненты можно удалять с помощью Free


← →
Slaga ©   (2004-09-20 20:39) [2]

Да, но когда я так делаю, я теряю возможность переходить между табами, Аксес виолатио :(


← →
VMcL ©   (2004-09-20 20:55) [3]

>>Slaga ©  (20.09.04 20:39) [2]

Значит, неправильно делаешь.


← →
Slaga ©   (2004-09-20 20:57) [4]

А как надо, я ж спрашиваю!


← →
Defunct ©   (2004-09-20 21:03) [5]

Может достаточно просто скрыть?


← →
Fedia   (2004-09-21 01:55) [6]

>А как надо, я ж спрашиваю!
Скорее всего ошибка возникает при попытке уничтожения не существующей закладки PageControl. Хотя точно тебе никто не скажет, можно только попытаться угадать.
Создай новой проект, PageControl с тремя закладками и выполни:
PageControl1.Pages[2].Free; Ты увидишь как это сработает, а следовательно ошибка у тебя в коде. Если не можешь ее выявить визуально и в пошаговом режиме, то комментируй свой код по частям, до тех пор, пака не закомментируешь ту часть кода, без которой ошибка исчезнет.


← →
Goorus ©   (2004-09-21 03:53) [7]

Создание в рантайме:

 Page:=TTabSheet.Create(PageContr);
 PageContr.InsertControl(Page);
 Page.PageControl:=PageContr;
 Page.PageIndex:=Number;
 // возможно что-то и не нужно

Удаление:

 Page.Free;
 PageContr.Update;


← →
VMcL ©   (2004-09-21 10:51) [8]

>>Slaga ©  (20.09.04 20:57) [4]

>А как надо, я ж спрашиваю!

"И не надо так кричать, я и так всё прекрасно слышу" © Кролик из м/ф

Хочешь помощи - приводи свой код, чтобы было, что обсуждать.


← →
Slaga ©   (2004-09-21 12:06) [9]

>>Goorus ©   (21.09.04 03:53) [7]
Это я сейчас попробую, спасибо.

>>to All
У меня удалить то все получается, у меня после удаления не получается перейти на любую другую закладку, у меня такое подозрение что этим free, я удаляю что-то болше чем 1 закладку.

PageControl.Pages[PageControl.ActivePageIndex].Free;


← →
basken   (2004-09-21 13:42) [10]


> У меня удалить то все получается, у меня после удаления
> не получается перейти на любую другую закладку, у меня такое
> подозрение что этим free, я удаляю что-то болше чем 1 закладку.
>
> PageControl.Pages[PageControl.ActivePageIndex].Free;


У PageControl(если он TPageControl) нет свойства ActivePageIndex...

PageControl.Pages[PageControl.ActivePage.PageIndex].Free; намана удаляет, и переходы после удаления наманые...


← →
basken   (2004-09-21 13:51) [11]

можно еще так

var
 DeletedTabSheet: TTabSheet;
begin
 DeletedTabSheet := PageControl.ActivePage;
 FreeAndNil(DeletedTabSheet);


← →
Slaga ©   (2004-09-21 15:00) [12]

А я все понял.
У меня ж еще компоненты были на Табе, а я сначала удалял таб, а потом пытался компонентам переприсвоить парента :))

Да, видать, мысль вчера в голову не шла.

Всем спасибо :))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.022 c
1-1096249314
Ryoko
2004-09-27 05:41
2004.10.10
Проверка буфера обмена


1-1096088618
Kair()
2004-09-25 09:03
2004.10.10


6-1090316461
highlander
2004-07-20 13:41
2004.10.10
Отправка СМС-сообщений, используя HTTP


1-1096263093
_alex_
2004-09-27 09:31
2004.10.10
Delphi And Visual c++


14-1095088509
Jus
2004-09-13 19:15
2004.10.10
Есть ли среди вас люди которые хотят сделать какую нибудь игру..




   Наверх