Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

При удалении TabSheet-ов стринггрид теряет фокус [D7]


4ainik ©   (2012-07-10 21:28:00) 

При удалении TabSheet-ов стринггрид теряет фокус, если динамических TabSheet-ов было больше одного.

var
tsnew:TTabSheet;

tsnew:=TTabSheet.Create(self);      //
 for j:=PageControl1.PageCount-1 downto 1 do  
 PageControl1.Pages[1].Free;

 for i:=0 to str_acc.count-1 do
 begin
   tsnew:=TTabSheet.Create(self);
   with tsnew do
   begin
     PageControl := PageControl1;
     Caption :=str_acc.Strings[i];
     PageControl1.ActivePageIndex:=0;
   end;
 end;

Одна закладка всегда присутствует. Добавляются динамические закладки и удаляются все кроме 0-ой. Если динамических закладок было больше одной, то стрингрид теряет фокус. Закладки удаляются/добавляются при перемещении курсора по ячейкам стринггрида.
Можно в конец конечно добавить StringGrid1.SetFocus; но так же при потере фокуса происходит "моргание" всей формы, что не есть гуд.


KilkennyCat   (2012-07-23 12:32:00) [1]


>  PageControl1.Pages[ 1].Free;

это опечатка?

> Можно в конец конечно добавить StringGrid1.SetFocus;

нужно

> при потере фокуса происходит "моргание" всей формы

блокировать перерисовку, если так много удалений за раз.


Наверх

Титульная страница Поиск, карта сайта Написать письмо