Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничение на длину вводимого текста. / 3 сообщений из 3, страница 1 из 1
21.02.2004, 10:04
    #32417654
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничение на длину вводимого текста.
Поле Строка (свободное!) для ввода текста, Поле5 - длина текста. Нужно ограничить текст 50-ю знаками. Пишу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
If Len(Строка.Text) =>  50  Then
Строка.Text = Left(Строка.Text,  50 )
Поле5.ForeColor =  255 
MsgBox  "Длина текста - 50  знаков!"
Else
Поле5.ForeColor =  0 
End If
Поле5= Len(Строка.Text)

Программа затыкается на выводе сообщения. Если строку с сообщением убрать - работает, но так: при достижении предельной длины курсор перескакивает в начало поля Строка, т.е. 51-ый знак затирает 1-ый и т.д.
Можно сделать, чтоб и сообщение было, и курсор бы "уперся" в конец поля Строка?
...
Рейтинг: 0 / 0
21.02.2004, 12:00
    #32417680
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничение на длину вводимого текста.
Из Гетца:

txtTest - имя текстбокса

Код: plaintext
1.
2.
3.
Private Sub txtTest_Change()
   
     Call adhLimitChars(txtTest, Val(txtValue))
End Sub


Cкопируй это в модуль:
Код: 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.
Option Compare Database
Option Explicit

' From Access 2002 Desktop Developer's Handbook
' by Litwin, Getz, and Gunderloy. (Sybex)
' Copyright  2001 .  All rights reserved.

Private Declare Function SendMessageLong _
 Lib  "user32"  Alias  "SendMessageA"  _
 (ByVal hWnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, lngValue As Long) As Long

Private Declare Function GetFocus _
 Lib  "user32"  () As Long

Private Const EM_SETLIMITTEXT As Long = &HC5

Public Sub adhLimitChars(txt As TextBox, lngLimit As Long)
 
    Dim hWnd As Long
    Dim lngResult As Long
    Dim lngNewMax As Long
    
    ' Get the window handle for the current window.
    hWnd = GetFocus()
    
    ' Hey, what if there's ALREADY too much text in
    ' there?  Limiting the text would make it
    ' impossible to type in there at all.  You want
    ' to set the limit to be the max of the amount
    ' you want and the amount that's in there!
    lngNewMax = Len(txt.Text)
    If lngNewMax < lngLimit Then
        lngNewMax = lngLimit
    End If
    
    ' Send the message to the current text box
    ' to limit itself to lngNewMax characters.
    SendMessageLong hWnd, EM_SETLIMITTEXT, lngNewMax,  0 
End Sub



Удачи :)
...
Рейтинг: 0 / 0
21.02.2004, 12:04
    #32417684
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничение на длину вводимого текста.
Input Mask = CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

ну вообщем "C" - 50 раз

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничение на длину вводимого текста. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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