Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 13:10   #1
mobilitialex
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 40
По умолчанию Виртуальная клавиатура

Всем добрый день!

Написал виртуальную клавиатуру на Delphi, но возникла проблема: не знаю, как перевести фокус нажатия клавиши с моей формы в любую другую программу. Т. е. при нажатии буквы, а она должна отображаться, допустим, в Worde.

Если кто-то знает, как это сделать помогите очень надо.
mobilitialex вне форума Ответить с цитированием
Старый 09.03.2011, 19:43   #2
Alex2391
Пользователь
 
Аватар для Alex2391
 
Регистрация: 31.01.2011
Сообщений: 54
По умолчанию

Посмотри здесь, может быть че понадобится
http://www.interface.ru/home.asp?artId=16430
Alex2391 вне форума Ответить с цитированием
Старый 09.03.2011, 21:14   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Зачем писать то, что есть по умолчанию в любой версии нормальной ОС?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 09.03.2011, 21:23   #4
Саня_
Пользователь
 
Регистрация: 05.03.2011
Сообщений: 36
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Зачем писать то, что есть по умолчанию в любой версии нормальной ОС?
хочется человеку, вот и пишет. Всегда нужно с чего-то начинать...
Саня_ вне форума Ответить с цитированием
Старый 09.03.2011, 22:00   #5
mobilitialex
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 40
По умолчанию

давайте по делу если кто знает пишите
mobilitialex вне форума Ответить с цитированием
Старый 09.03.2011, 23:11   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка

твое окнодолжно быть StayOnTop, потом, после каждого нажатия делаи что б оно теряло фокус,
автоматически он будет передан окну под ним(твое окно не ишезнит StayOnTop)
а ты в ето время передаеш нажатие етои кнопки через SendMessage();

Цитата:
Фокус ввода

Будучи окнами Windows, TWinControl и его потомки должны управлять фокусом ввода (состоянием, когда они получают и обрабатывают входные сообщения). Они имеют предназначенные для этого методы:

Поскольку оконные и неоконные элементы управления фактически находятся в разных списках, эти операции касаются только элементов соответствующего списка. Оконные элементы всегда имеют приоритет над неоконными: вы можете поместить первый над вторым, наоборот — никогда.function Focused: Boolean- Показывает, имеет ли элемент в данный момент фокус ввода.
function CanFocus: Boolean; Возвращает True, если оконный элемент может получить фокус ввода (для этого он и все его родительские оконные элементы управления должны быть активными (Enabled) и видимыми).
procedure SetFocus; Запрашивает у родительской формы получение фокуса ввода.


При получении и утере фокуса оконными компонентами происходят события:
(Pb) property OnEnter: TNotifyEvent;
(Рb) property OnExit: TNotifyEvent;

TNotifyEvent — простейшее событие — извещение, не имеющее параметров. Свойство
(Pb) property TabStop: Boolean;

показывает, есть ли на данном элементе табулостоп. Между элементами формы, у которых TabStop установлено в Тше, можно передвигаться (перемещать фокус ввода) нажатиями клавиш /+. Очередность перехода фокуса определяется специальным списком. Положение элемента управления в родительском списке табулостопов определяется при помощи свойства:
(Pb) property TabOrder: TTabOrder;
TTabOrder = -1..32767;

При разработке формы номера присваиваются последовательно в порядке добавления компонентов, начиная с 0. Нулевой компонент первым получит фокус при активизации. Программист может менять значение этого свойства, не заботясь об учете других элементов, т. к. перенумерация производится автоматически. При отсутствии табулостопа на элементе его свойство TabOrder равно -1.

Можно получить и весь список, содержащий иерархию дочерних элементов, имеющих табулостоп:
procedure GetTabOrderList(List: TList) ;

Этот метод добавляет в уже существующий список List все дочерние компоненты, имеющие табулостоп; каждый из них при добавлении делает то же самое. Таким образом, элементы списка имеют тип TWinControl.

Два метода предназначены для управления показом перекрывающихся дочерних элементов управления:
procedure BringToFront; procedure SendToBack;

Метод BringToFront переносит элемент в конец родительского списка (визуализация начинается с первого) и показывает его поверх остальных. SendToBack, наоборот, переносит элемент в начало и таким образом сверху окажутся все перекрывающиеся с ним. При этом элемент теряет фокус ввода (если имел).

Класс инкапсулирует шрифт Windows. В Delphi допускаются только горизонтально расположенные шрифты. В конструкторе объекта по умолчанию принимается шрифт System цвета clWindowText размера 10 пунктов.
с етого саита http://www.cyberguru.ru/programming/...t1-page20.html
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 09.03.2011, 23:20   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

одно но, к сожалению событие OnEnter не передает данных от WM_SETFOCUS(там один из параметров это окно, от которого нам перешел фокус ввода, сохранив это можно знать куда вернуть фокус)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.03.2011, 01:47   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://lmgtfy.com/?q=Delphi+%D1%8D%D...83%D1%80%D0%B0
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 10.03.2011, 11:31   #9
mobilitialex
Пользователь
 
Регистрация: 19.05.2009
Сообщений: 40
По умолчанию

Дело в том, что я не знаю, в какую программу будет поступать, текст и само собой я не знаю его хендл. Т. е. это может быть любое текстовое поле любой программы.
mobilitialex вне форума Ответить с цитированием
Старый 17.05.2012, 00:35   #10
Giku
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 53
По умолчанию как потерять фокус ???

как потерять фокус ???
Giku вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виртуальная клавиатура basil Общие вопросы Delphi 6 02.10.2014 08:16
Виртуальная машина miscreant Помощь студентам 5 15.10.2010 11:57
Виртуальная карта toxich Общие вопросы Delphi 7 11.05.2009 12:55
Виртуальная клавиатура Alex Cones Мультимедиа в Delphi 2 10.05.2009 20:03
Виртуальная клавиатура для браузера, несколько вопросов nnova Общие вопросы Delphi 2 19.12.2008 16:19