घर
Top.Mail.Ru Yandeks.Metrika
मंच: "अन्य";
वर्तमान संग्रह: 2017.02.26;
डाउनलोड करें: [xml.tar.bz2];

नीचे

TTouchKeyboard बनाने के लिए फोकस कैसे नहीं मिलता इसी तरह की शाखाएँ खोजें


ttUser ©   (2016-03-21 15:47) [0]

В более менее свежих версиях Delphi есть компонент TTouchKeyboard, который представляет собой виртуальную клавиатуру.

Если компонент, куда нужно вводить текст находится на той же форме, что и TTouchKeyboard - то все хорошо.

Но если делать "плавающую" виртуальную клавиатуру в отдельной форме (форма 1), то возникает проблема. Устанавливаем фокус на компонент для ввода (он находится на форма 2). Потом нажимаем на клавишу виртуальной клавиатуры - и фокус уходит на форма 1. При этом символ не вводится в компонент, который находится на форма 2.

Можно сделать как-то, чтобы фокус не уходил на форма 1, где находится виртуальная клавиатура? А оставался на компоненте для ввода.



sniknik ©   (2016-03-21 16:44) [1]

> не уходил на форма 1,
ShowWindow(theWindowHandle, SW_SHOWNOACTIVE);

но вообще, я бы виртуальную клавиатуру от панели бы делал/наследовал (если компонент).



DayGaykin ©   (2016-03-21 17:13) [2]

Для формы с клавиатурой:

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.ExStyle := Params.ExStyle or WS_EX_NOACTIVATE;
end;



ttUser ©   (2016-03-21 17:32) [3]


> ShowWindow(theWindowHandle, SW_SHOWNOACTIVE);

У меня главная форма, на ней лежит TTouchKeyboard
Для главной формы делаю:

ShowWindow(Self.Handle, SW_HIDE);
ShowWindow(Self.Handle, SW_SHOWNOACTIVATE);

यह मदद नहीं करता है


> Для формы с клавиатурой:

хорошее решение, но есть прикол. Это действует для всех ЧУЖИХ приложений. То есть, таким образом легко вводить символы в Excel.
Но если у тебя две формочки одного приложения, то фокус все равно уходит на форму с клавиатурой.

Подозреваю, что пробрасывается какое-то VCL сообщение, но точно разобраться я не смог :(



sniknik ©   (2016-03-21 18:23) [4]

> У меня главная форма
для главной лучший вариант DayGaykin ©   (21.03.16 17:13) [2] а не пере показ...

> то фокус все равно уходит на форму с клавиатурой.
?

> Подозреваю, что пробрасывается какое-то VCL сообщение
подозреваю наличие 17й строки и ошибки в ней.



ttUser ©   (2016-03-21 18:33) [5]


> > то фокус все равно уходит на форму с клавиатурой.
> ???

а что непонятно?

Имеем форму 1 и на ней клавиатура TTouchKeyboard. Имеем форму 2, на которой находится контрол для ввода.

Если форма 2 - это чужое приложение (в том числе дельфовое), то все работает. При клике по клавиатуре на форме 1 фокус эта форма 1 не получает.

Если же в одном приложении открыть форму 1 и форму 2, то при клике на клавиатуру, находящуюся на форме 1 - она получает фокус все равно, хотя у формы 1 выставлен WS_EX_NOACTIVATE



sniknik ©   (2016-03-21 18:56) [6]

не делай Show делай ShowModal или вторую форму тоже сделай не активируемой...

а лучше логику меняй, не делай главным то что логичнее дополнением.



Dimka Maslov ©   (2016-03-21 19:25) [7]

मैं गलत हो सकता है, लेकिन मुझे WM_MOUSEACTIVATE संदेश को रोकना होगा



ttUser ©   (2016-03-22 11:27) [8]


> Могу ошибаться, но надо бы поперехватывать сообщение WM_MOUSEACTIVATE

всё сработало!
शुक्रिया!



पन्ने: 1 पूरी शाखा

मंच: "अन्य";
वर्तमान संग्रह: 2017.02.26;
डाउनलोड करें: [xml.tar.bz2];

ऊपर









मेमोरी: 0.58 एमबी
समय: 0.021 c
15-1458595804
यूरी
2016-03-22 00:30
2017.02.26
आपको जन्मदिन की शुभकामनाएं! 22 मार्च 2016 मंगलवार


1-1348444158
sss
2012-09-24 03:49
2017.02.26
लाइब्रेरी से f-tsii आयात करें, जहां पैरामीटर संरचना का एक संकेतक है


15-1458477503
MsGuns
2016-03-20 15:38
2017.02.26
एक्सेल-> एमएस SQL ​​सर्वर


2-1434959523
कला
2015-06-22 10:52
2017.02.26
त्रुटि सूची सूचकांक बाध्य (0)


2-1434957180
Djonik
2015-06-22 10:13
2017.02.26
idhttp json - किवी प्राधिकरण





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский