OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 14:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Програмная передача фокуса
СообщениеДобавлено: Вторник, 17 Май, 2022 20:21 

Зарегистрирован: Воскресенье, 06 Август, 2017 19:33
Сообщения: 79
На форме имеются два текстовых поля ввода. Как после ввода одного знака в первое поле передать фокус во второе поле не кликая по нему мышкой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Програмная передача фокуса
СообщениеДобавлено: Вторник, 17 Май, 2022 21:48 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Получился пример, который работает, когда форма открыта как внутренний (Aux) диалог.

Запускается уведомитель, получает контроллер контейнеров, проходит по видам контейнера в поисках нужного поля и его выделяет.

Код:
MODULE TestFocusChange;

   IMPORT Containers, Controls, Views, Dialog;

   VAR
      str1*, str2*: ARRAY 16 OF CHAR;

   PROCEDURE Notifier* (op, from, to: INTEGER);
   VAR c: Containers.Controller; v: Views.View; done: BOOLEAN;
   BEGIN
      IF op = Dialog.changed THEN
         c := Containers.Focus();
         IF c # NIL THEN
            c.GetFirstView(Containers.any, v);
            done := FALSE;
            WHILE (v # NIL) & ~ done DO
               WITH v: Controls.Control DO
                  IF v.prop.link = "TestFocusChange.str2" THEN
                     c.SelectAll(FALSE); (* убрать выделения *)
                     c.SetFocus(v); (* сделать вид фокусным *)
                     done := TRUE
                  END
               ELSE END;
               c.GetNextView(Containers.any, v)
            END
         END
      END
   END Notifier;

END TestFocusChange.

"StdCmds.OpenAuxDialog('Test/Rsrc/FocusChange.odc','test')"



Вложения:
Снимок экрана от 2022-05-18 01-51-11.png
Снимок экрана от 2022-05-18 01-51-11.png [ 97.51 КБ | Просмотров: 4024 ]
Test.zip [3.25 КБ]
Скачиваний: 104
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB