Article View: pl.comp.lang.vbasic
Article #92402Re: Zawsze duże litery
From: Marcin Miga
Date: Wed, 26 Oct 2005 07:21
Date: Wed, 26 Oct 2005 07:21
71 lines
2434 bytes
2434 bytes
wilus2 wrote:
> Co zrobić, żeby przy wpisywaniu do TextBoxa były zawsze wielkie
> litery.
>
> Zrobiłem coś takiego:
> Private Sub Text6_Change()
> Text6 = UCase(Text6)
> End Sub
> i mam zawsze wielkie litery tylko jak przełączę na klawiaturze
> CapsLock-iem na małe litery (CapsLock wyłączony)to pisze mi wielkimi
> literami ale w spak (od tyłu).
Nie wiem o co chodzi z tym CapsLockiem, ale pisanie od tyłu może byc
spowodowane tym, że nie zapamiętujesz i nie odtwarzasz ostatniej
pozycji kursora w TextBoxie.
Prawidłowo to Twoja procedura powinna wyglądać tak:
<CODE>
Private Sub Text6_Change()
Dim intPos as Integer
intPos = Text6.SelStart
Text6.Text = UCase(Text6.Text)
Text6.SelStart = intPos
End Sub
</CODE>
A jak nadal będziesz miał z tym problemy, to proponuje przejść na API.
'Wystarczy' wysłać styl do okienka ES_UPPERCASE.
Przykład:
<CODE>
Option Explicit
DefLng L
Private Const ES_UPPERCASE As Long = &H8&
Private Const GWL_STYLE As Long = -16
Private Declare Function GetWindowLong Lib "user32.dll" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Sub Command1_Click()
Dim lngStyle, lngHwnd
lngHwnd = Text1.hwnd
lngStyle = GetWindowLong(lngHwnd, GWL_STYLE)
If lngStyle <> 0 Then
lngStyle = lngStyle Or ES_UPPERCASE
SetWindowLong lngHwnd, GWL_STYLE, lngStyle
End If
End Sub
</CODE>
Tu po wykonaniu Command1_Click, cokolwiek wpiszemy do Text1, to będzie
to zawsze wielkimi literami :)
pozdrawiaMM
--
Marcin M. Miga
"More matter with less art"
Technical Details
Message-ID:
<C57BDD8470737A4D9F2CE5DEE25D7B9007E5E266@mailserver2.domdata.local>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!helios.domdata.com!DOMDATA3.BAUBODEN.comReferences:
<1281.00000010.435f19f1@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!helios.domdata.com!DOMDATA3.BAUBODEN.com NNTP-Posting-Host: 192.168.151.148 Newsgroups: pl.comp.lang.vbasic Date: Wed, 26 Oct 2005 09:21:49 +0200 Message-ID: <C57BDD8470737A4D9F2CE5DEE25D7B9007E5E266@mailserver2.domdata.local> From: "Marcin Miga" <Marcin.Miga[@]gmail.com> Subject: Re: Zawsze duże litery References: <1281.00000010.435f19f1@newsgate.onet.pl> User-Agent: XanaNews/1.17.5.9 MIME-Version: 1.0 Lines: 72 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit