[Gambas-user] How to Change Keyboard Layout
Gianluigi
bagonergi at gmail.com
Thu Oct 4 09:59:47 CEST 2018
> here is the problem, when I put cursor in the desired textbox, it evokes
> the code and losing the focus the focus again the textbox making it
evoking
> the same code again and so on
I can not understand the reason for the loss of focus, in the simple tests
I made this does not happen, eg:
Public Sub TextBox1_GotFocus()
keyboard(TextBox1)
End
Public Sub TextBox2_GotFocus()
keyboard(TextBox2)
End
' Etcetera...
Private Sub keyboard(hTxt As TextBox)
Dim s As String
Desktop.SendKeys("{[Shift_L]6}")
Wait 0.1
s = Mid(hTxt.Text, hTxt.Pos, 1)
Print s
Wait 0.1
Desktop.SendKeys("[BackSpace]")
If s = "&" Then
Print "Italian keyboard"
Else
Print "Stranger keyboard"
Endif
End
Regards
Gianluigi
Il giorno gio 4 ott 2018 alle ore 01:00 Gianluigi <bagonergi at gmail.com> ha
scritto:
> If you get the layout when you open the app, it should work.
> Just keep an eye on the switches, e.g:
>
> Private $bItalian As Boolean
>
> Public Sub Form_Open()
>
> Dim s As String
> Dim hTxt As TextBox
>
> hTxt = New TextBox(Me)
> hTxt.Foreground = Color.Transparent
> hTxt.SetFocus
> Me.Show
> Wait 0.1
> Desktop.SendKeys("{[Shift_L]6}")
> Wait 0.1
> s = hTxt.Text
>
> hTxt.Delete
> If s = "&" Then
> $bItalian = True
> Print "Italian keyboard"
> Else
> $bItalian = False
> Print "Stranger keyboard"
> Endif
> Print $bItalian
>
> End
>
> Public Sub Form_KeyPress()
>
> ' I don't remember your shortcut to switch keyboard layout, supposing
> Ctrl+K
> If Key.Code = Key["K"] And If Key.Control Then
> $bItalian = Not $bItalian
> Print $bItalian
> End If
>
> End
>
> Regards
> Gianluigi
>
> Il giorno mer 3 ott 2018 alle ore 23:28 Wael M via User <
> user at lists.gambas-basic.org> ha scritto:
>
>> Thank you very much Gianluigi for your help, grazie :)
>> it worked and could detect my language but not the way I want
>> let me tell you my story :)
>> I came to linux from windows and I'm trying to translate an app I did
>> with VB to the corresponding codes in Gambas.
>> I realized that Gambas is not the same as VB because Linux is not the
>> same as windows
>> Gambas is just using the same names and following the main rules of VB
>> in my app I had a form that with three textboxes are filled in Arabic and
>> three are filled in English
>> when I put the cursor in a textbox it detects the keyboard layout and
>> change it to the desired language
>> I followed the code you gave but I want to put the event of this code to
>> be when textbox got focus
>> here is the problem, when I put cursor in the desired textbox, it evokes
>> the code and losing the focus the focus again the textbox making it evoking
>> the same code again and so on
>> so what I really need is to detect the keyboard layout like reading it
>> directly from linux
>>
>> again and again thank you very much for your patience and help
>>
>> --------------------------------------------
>> On Wed, 10/3/18, Gianluigi <bagonergi at gmail.com> wrote:
>>
>> Subject: Re: [Gambas-user] How to Change Keyboard Layout
>> To: "Gambas Mailing List" <user at lists.gambas-basic.org>
>> Date: Wednesday, October 3, 2018, 4:00 PM
>>
>> With this code, I'm trying to explain better
>> what I meant to say:
>>
>> Public
>> Sub TextBox1_GotFocus()
>>
>> Dim s As String
>>
>>
>> Desktop.SendKeys("{[Shift_L]6}")
>> Wait 0.1
>> s =
>> TextBox1.Text
>> Print s
>>
>> Wait 0.1
>> TextBox1.Clear
>> If s = "&" Then
>> Print "Italian keyboard"
>> Else
>> Print
>> "Stranger keyboard"
>> Endif
>>
>> End
>>
>> Regards
>> Gianluigi
>>
>> Il giorno
>> mer 3 ott 2018 alle ore 09:45 Gianluigi <bagonergi at gmail.com>
>> ha scritto:
>> >Lee, I subscribed to the list
>> you mentioned but should I repeate the same thread there or
>> what?
>>
>>
>>
>> >Charlie, thanks for your answer but it didn't
>> exactly did what I want
>>
>> >I'm using Ubuntu
>>
>> >the code you put gave me this result:
>> XKBLAYOUT=us,ara
>>
>> >what I need to get is the current keyboard layout
>>
>> >maybe I wasn't clear while putting my problem, so
>> I"ll try to explain more
>>
>> >I want to check my current keyboard layout so if its
>> Arabic, it would be changed to English (in >some
>> textboxes) and vices versa.
>>
>> >i.e I want to use English in some textboxes and Arabic
>> in others, and I
>> want that to be done >through a code to check Keyboard
>> layout and change
>> it if needed or keep it if no need to change >it
>>
>> >thanks in advance to everyone trying to help
>>
>> This
>> code that need to do something else, maybe you can direct it
>> to a key that makes you understand if the keyboard is
>> 'ara' or 'us'.
>> RegardsGianluigi
>>
>>
>> ----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]----
>>
>> -----Inline Attachment Follows-----
>>
>>
>>
>> ----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]----
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/user/attachments/20181004/0c3d0761/attachment.html>
More information about the User
mailing list