2 Копипаста мной же написанных "костылей" явление временное . (А если это про "код на форуме" то смотри объяснение ниже )
3 Некоторые вещи бесполезно имитировать "в простом примере" просто потому, что для того что-бы добиться доверенного повторения ситуации иногда нужно "имитировать" ( да еще и довольно криво ) половину функционала программы.
4 К самой описываемой ситуации все лишение отношения не имеет ( а процедура ClearTabList; приводится полностью просто для достоверности )
Ps
Суть задачи :
1 Нужно сохранить состояние PageControl
2 ...и через некоторое время вернуть обрано.
3 Сохранять полное состояние всех страниц в данном случае не нужно ( но ClearTabList; намекает об этом нужно подумать )
4 Если перенести код "в чистый пример" то ничего кроме ClearTabList; в части где я "прячу вкладку" не изменится.
Кстати "прятать" можно и так :
- Код: Выделить всё
- For I:=0 to MForm.PageControl1.PageCount-1 do
 If MForm.PageControl1.Pages[i].ControlCount>1 then
 { Именно ">1" это не ошибка, а "фича" моей программы где первый раз добавляется заставка, но дальше она неважна }
 begin
 // Неразрушающие удаление элементов конкретной страницы .
 For j:=MForm.PageControl1.Pages[i].ControlCount-1 DownTo 0 do
 MForm.PageControl1.Pages[i].RemoveControl(MForm.PageControl1.Pages[i].Controls[J]);
 end;
Но наглядность этого кода еще меньше чем в случае "прямых ссылок".
Ps Ps
Извиняюсь за косноязычие, но если одновременно править код и писать на форум это слегка сбивает с мысли.




 
 

 
 
