powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
24 сообщений из 24, страница 1 из 1
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264033
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здравствуйте!
вот такой вот вопрос. совершенно не понимаю в чем дело. какой-то бред.
вместо русских букв вводятся типа: éöó !!! (независимо от выбора фонта)

что делать??? помогите!!!
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264059
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
me.TextBox1.Font.Charset = ???

вот этим свойством регулируется
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264159
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. получается, что поддержка unicode в forms2 - условная?
а если я буду вводить вперемежку русские,немецкие и китайские?
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264243
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и где таблица charset?
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264253
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица в ОС конечно , для кириллицы charset=204
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264257
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vv40inт.е. получается, что поддержка unicode в forms2 - условная?
а если я буду вводить вперемежку русские,немецкие и китайские?


добро пожаловать в сложный мир, вам в VB.NET пора
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264289
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
спасибо, но 204 стоит по-умолчанию...
и какой выставлять?

http://msdn.microsoft.com/ru-ru/library/system.windows.forms.inputlanguagechangedeventargs.charset.aspx
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264300
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
спасибо, но я не начинаю проект с нуля, а добавляю новые возможности в ОГРОМНЫЙ старый проект....
б... - бред какой-то на ровном месте!!! ненавижу vb6!!!
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264321
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень просто, вы должны в свой textbox загружать unicode-строки:

http://support.microsoft.com/kb/193540
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264336
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может пригодиться
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264724
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One, спасибо.
но как-то всё это неправильно!
ведь copy-paste работают нормально:
я копирую из notepad текст на русском/китайском ипр БЕЗ ПРОБЛЕМ!
проблемы возникают при попытке ввода С КЛАВИАТУРЫ!!
так в чем дело? в настройках клавы?
по-моему в вводе свё дело. где-то от клавы до компонента текст перекодируется в какую-то фигню.
я пробовал на разных машинах - везде такая фигня.

так в чём же дело и как с этим бороться??!!!
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264731
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а мне надо , чтоб пользователь мог вводить на одной и той же машине на всех возможных языках: немецком,арабском ипр
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264743
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема в том, что только показывать могут эти контролы, а вводить в разных раскладках не умеют
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264795
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
спасибо.
а на кой тогда вообще нужен Forms2:TextBox? для ввода латыни? ну,блин,пипец какой-то!!
давно говорил нач-ству,что vb6-дэрмо. надо с него уходить, но оно уперлось!!! я имею ввиду начальство. ну,в смысле,что упелось :)
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264804
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms2 - это библиотка от microsoft office, её вообще нельзя юзать в нормальных распространяемых продуктах
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264890
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneForms2 - это библиотка от microsoft office, её вообще нельзя юзать в нормальных распространяемых продуктахЕсли точнее, то MSForms это библиотека из комплекта VBA и ее таки можно юзать в нормальных распространяемых продуктах, если эти подукты распространяются с VBA.
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264897
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем внимательно:

NOTE: The Forms 2.0 controls used in this article were not designed for use on Visual Basic forms and have not been formally tested in the environment. This article documents their use only in this very limited context to work around a limitation to the Visual Basic Intrinsic controls. Using other features of these controls on Visual Basic forms is not supported.

Furthermore, Forms 2.0 is part of Microsoft Office and is not redistributable. Therefore, you cannot distribute Forms 2.0 (fm20.dll) with your application. It must already be on the target machines.

For additional information on distributing fm20.dll, please see the following article in the Microsoft Knowledge Base:
224305 (http://support.microsoft.com/kb/224305/EN-US/ ) INFO: Usage and Redistribution of FM20.DLL [OffDev]
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264905
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажте, пожста, а мб можно перехватить ввод и нормально его перекодировать?
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264922
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно перехватить
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36264924
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
Option Explicit

Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
                         lpDest As Any, _
                         lpSource As Any, _
                         ByVal nCount As Long)
Private Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" ( _
                         ByVal cChar As Byte) As Integer
Private Declare Function VkKeyScanW Lib "user32" ( _
                         ByVal cChar As Integer) As Integer
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" ( _
                         ByVal wCode As Long, _
                         ByVal wMapType As Long) As Long
Private Declare Function MapVirtualKeyW Lib "user32" ( _
                         ByVal wCode As Long, _
                         ByVal wMapType As Long) As Long
Private Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" ( _
                         ByVal lParam As Long, _
                         ByVal lpBuffer As String, _
                         ByVal nSize As Long) As Long
Private Declare Function GetKeyNameTextW Lib "user32" ( _
                         ByVal lParam As Long, _
                         ByVal lpBuffer As Long, _
                         ByVal nSize As Long) As Long

Public Function GetKeyboardString( _
      ByVal sChar As String, _
      Optional ByRef vKey As KeyCodeConstants, _
      Optional ByRef iShift As ShiftConstants) As String
Dim lScanCode As Long
Dim b() As Byte
Dim sRet As String
Dim sBuf As String
Dim lSize As Long
Dim bNt As Boolean
Dim iKeyCode As Integer

   ' Determine if we have Unicode support or not:
   bNt = ((GetVersion() And &H80000000) =  0 )
   
   ' Get the keyboard scan code for the character:
   If (bNt) Then
      b = sChar
      CopyMemory vKey, b( 0 ),  2 
      iKeyCode = VkKeyScanW(vKey)
   Else
      b = StrConv(sChar, vbFromUnicode)
      iKeyCode = VkKeyScan(b( 0 ))
   End If
   
   ' Split into shift and key portions:
   iShift = (iKeyCode And &HFF00&) \ &H100&
   vKey = iKeyCode And &HFF&

   ' Build the string for the return state:
   sRet = _
      IIf(iShift And vbAltMask, "Alt+", vbNullString) & _
      IIf(iShift And vbCtrlMask, "Ctrl+", vbNullString) & _
      IIf(iShift And vbShiftMask, "Shift+", vbNullString)
   
   ' Translate the virtual-key code into a scan code.
   If (bNt) Then
      lScanCode = MapVirtualKeyW(vKey,  0 )
   Else
      lScanCode = MapVirtualKey(vKey,  0 )
   End If
   
   ' GetKeyNameText retrieves the name of a key (the scan code
   ' must be in bits 16-23):
   lScanCode = lScanCode * &H10000
   If (bNt) Then
      ReDim b( 0  To  512 ) As Byte
      lSize = GetKeyNameTextW(lScanCode, VarPtr(b( 0 )),  256 )
      If (lSize >  0 ) Then
         sBuf = b
         sRet = sRet & Left$(sBuf, lSize)
      End If
   Else
      sBuf = Space$( 256 )
      lSize = GetKeyNameText(lScanCode, sBuf,  256 )
      sRet = sRet & Left$(sBuf, lSize)
   End If
      
   GetKeyboardString = sRet
      
End Function
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36265078
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vv40inKonst_One,
б... - бред какой-то на ровном месте!!! ненавижу vb6!!!

Действительно бред - при чем тут VB6? На чем тот же The Bat! написан - явно не на VB6, а проблемы те же - у всех языков тех времен.

Хотите полноценный уенкод - переходите на NET-языки. Там полная поддержка, в том же VB.NET.
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36265105
vv40in
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,
спасибо за пример .
вот что получилось. работает только с TextBox из forms
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub TextBox1_KeyPress(KeyAscii As MSForms.ReturnInteger)
    Dim b() As Byte, a As String, s As String, iKeyCode As Integer
    a = ChrW(KeyAscii)
    b = StrConv(a, vbUnicode)
    CopyMemory iKeyCode, b( 0 ),  2 
    KeyAscii = iKeyCode 'AscW(ChrW(iKeyCode))
End Sub
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36266816
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчитаем внимательно:И что? KB224305 моим словам не противоречит — см. список applies to.
...
Рейтинг: 0 / 0
vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
    #36266930
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyKonst_Oneчитаем внимательно:И что? KB224305 моим словам не противоречит — см. список applies to.

нет конечно, но чтобы с точки зрения VB было всем ясно =)
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / vb6:forms2(fm20.dll):TextBox: с клавы невозможно ввести русский текст
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]