[Gambas-user] How to Change Keyboard Layout

Fabien Bodard gambas.fr at gmail.com
Fri Oct 5 06:40:10 CEST 2018


In fact as the switching dépend of the desktop it os not easily portable to
other desktop... it s a quite hard coded thing. You will need to add a
config option to your program to allow final user to adapt it to its
current desktop shortcut.

Le jeu. 4 oct. 2018 23:00, Gianluigi <bagonergi at gmail.com> a écrit :

> With activated gb.desktop component:
>
> Private $bArabian 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
>   ' This combination works with the Italian layout and not with the
> American one.
>   ' You must find a combination suitable for Arabic.
>   Desktop.SendKeys("{[Shift_L]6}")
>   Wait 0.1
>   s = hTxt.Text
>   hTxt.Delete
>   If s = "&" Then
>     $bArabian = True
>     Print "Arabian keyboard"
>   Else
>     $bArabian = False
>     Print "American keyboard"
>   Endif
>   Print $bArabian
>
> End
>
> Public Sub txtArabian_GotFocus()
>   ' I don't remember your shortcut to switch keyboard layout, supposing
> Ctrl+K
>   If $bArabian = False Then
>     Desktop.SendKeys("{[Control_L]K}")
>     $bArabian = True
>   Endif
>
> End
>
> Public Sub txtAmerican_GotFocus()
>   ' I don't remember your shortcut to switch keyboard layout, supposing
> Ctrl+K
>   If $bArabian Then
>     Desktop.SendKeys("{[Control_L]K}")
>     $bArabian = False
>   Endif
>
> End
>
> Public Sub Form_KeyPress()
>
>   If Key.Code = Key["K"] And If Key.Control Then
>     Print "SWITCH KEYBOARD"
>   End If
>
> End
>
> Regards
> Gianluigi
>
> Il giorno gio 4 ott 2018 alle ore 21:41 Wael M via User <
> user at lists.gambas-basic.org> ha scritto:
>
>> Thanks Gianluigi and thanks Lee
>> you both put some solutions that seems brilliant but I got confused and
>> couldn't get an appropriate code out of those
>> is my fault I know but don't forget I'm new to Gambas
>> so if you please could send me an example for a forum with two textboxes
>> each one changes the keyboard language when it get focus, I will be
>> profoundly appreciated
>>
>> thanks again for your valuable time
>>
>> --------------------------------------------
>> On Thu, 10/4/18, T Lee Davidson <t.lee.davidson at gmail.com> wrote:
>>
>>  Subject: Re: [Gambas-user] How to Change Keyboard Layout
>>  To: user at lists.gambas-basic.org
>>  Date: Thursday, October 4, 2018, 3:08 PM
>>
>>  If each box will use a specific
>>  layout, you could use a semaphore.
>>
>>  [code]
>>  Public $IsEnglishLayout
>>  = True
>>
>>  Public Sub
>>  EnglishTextbox1_GotFocus()
>>    If Not
>>  $IsEnglishLayout then Destkop.Sendkeys(blah)
>>    $IsEnglishLayout = True
>>  End
>>
>>  Public Sub
>>  ArabicTextbox1_GotFocus()
>>    If
>>  $IsEnglishLayout then Destkop.Sendkeys(blah)
>>    $IsEnglishLayout = False
>>  End
>>  [/code]
>>
>>
>>  ___
>>  Lee
>>
>>
>>  On 10/3/18 5:27 PM, Wael M
>>  via User wrote:
>>  > 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
>>
>>  ----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]----
>>
>>
>> ----[ Gambas mailing-list is hosted by https://www.hostsharing.net ]----
>>
>
> ----[ 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/20181005/e0bbb2e7/attachment.html>


More information about the User mailing list