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

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

Передача фокуса элементу управления модального окна


QuasiLamo ©   (2004-09-12 21:33:00) 

Создаю форму и контролы(батоны) на ней "на лету".
Необходимо показать ее модально.
Как передать фокус нужному контролу?
До показа это сделать я не сумел, ибо "can't focuse on disabled or invisible window", поэтому сделал по тупому. Сначала показываем форму, затем проставлям фокус на нужной кнопке, затем окно прячем, потом показываем модально. Если ли способ лучше?


evvcom   (2004-09-13 12:09:00) [1]

TForm.ActiveControl


KSergey   (2004-09-13 08:58:00) [2]

А может соотв. контрол просто сделать TabOrder=0?


QuasiLamo   (2004-09-12 23:39:00) [3]

Ага.
Можно для этого использовать свойство tag
procedureTFu.show(Sender: TObject);
var
 i: integer;
begin
  fori := 1 to(Sender asTFORM).ControlCount - 1 do
    with((Sender asTFORM).controls[i] asTBitbtn) do
      iftag = def then
      begin
       SetFocus;
       exit;
      end;
end;


Sheng   (2004-09-12 23:35:00) [4]

* выpsdftncz = вызывается


Sheng   (2004-09-12 23:34:00) [5]

Пусть Form2 выpsdftncz как модальная.
В форме в public описать переменну, например ControlID: Byte;
Перед показом: Form2.ControlID:=1;

в Form2.OnShow:

case ControlID of
   1: Edit1.SetFocus;
   2: Edit2.SetFocus;
   3: Edit3.SetFocus;
   else Button1.SetFocus;
end;


Наверх

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