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
Извиняюсь за косноязычие, но если одновременно править код и писать на форум это слегка сбивает с мысли.
