Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 9 Then Exit Sub
If KeyAscii > 9 And KeyAscii < 32 Then Exit Sub
Text1.SelText = Chr(KeyAscii)
Text1.SelStart = Text1.SelStart - 1
KeyAscii = 0
End Sub
Private Sub Form_Load()
Text1.Alignment = 1
End Sub
Ввод тескта справо на лево
Как сделать чтобы текст водился справо на лево?
Всё гениально и просто: Text1.Alignment = 1 :D
Если Вы имеете ввиду не положение курсора, а именно ввода справа налево, то наверное так:
Вообще-то есть такое свойство - RightToLeft, только у меня оно в "True" не хочет ставиться почему-то...
The RightToLeft property is a design feature in localized Arabic and Hebrew versions of Visual Basic 6.0 and should have no effect in other language versions.
Аа )) Ну и фиг с ним.
Код:
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYOUTRTL = &H400000
Private Sub Form_Load()
LayoutRTL Text1.hwnd
End Sub
Sub LayoutRTL(ahwnd As Long)
Dim lExStyles As Long
lExStyles = GetWindowLong(ahwnd, GWL_EXSTYLE)
lExStyles = lExStyles Or WS_EX_LAYOUTRTL
SetWindowLong ahwnd, GWL_EXSTYLE, lExStyles
End Sub
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYOUTRTL = &H400000
Private Sub Form_Load()
LayoutRTL Text1.hwnd
End Sub
Sub LayoutRTL(ahwnd As Long)
Dim lExStyles As Long
lExStyles = GetWindowLong(ahwnd, GWL_EXSTYLE)
lExStyles = lExStyles Or WS_EX_LAYOUTRTL
SetWindowLong ahwnd, GWL_EXSTYLE, lExStyles
End Sub
Действительно )
Цитата: HookEst
The RightToLeft property is a design feature in localized Arabic and Hebrew versions of Visual Basic 6.0 and should have no effect in other language versions.
Это не так, у меня стоит Microsoft Visual Basic 6.0 Enterprise Edition, который спокойно дает сделать RightToLeft=True
и от Edition это не должно зависеть, возможно достаточно установленой в системе поддержке двунаправленного письма. не знаю. но у меня не идет, у Virtuoso тоже...
Цитата: HookEst
Вообще-то, это Microsoft сказал, не я("я только разместил объяву")).
и от Edition это не должно зависеть, возможно достаточно установленой в системе поддержке двунаправленного письма. не знаю. но у меня не идет, у Virtuoso тоже...
и от Edition это не должно зависеть, возможно достаточно установленой в системе поддержке двунаправленного письма. не знаю. но у меня не идет, у Virtuoso тоже...
Все верно. А версия вижул барсика тут не при чем