PDA

View Full Version : سوال: نحوه فاصله افتادن بین حروف داخل تکست



Hassan2500
جمعه 05 اسفند 1390, 18:13 عصر
سلام
من یه کدی میخام که وقتی حروف داخل تکست نوشته میشود یک فاصله بین هر حرف خود بخود گذاشته شود و میخام هنگام پیست شدن هم این عمل انجام شود

dataking
جمعه 05 اسفند 1390, 18:25 عصر
سلام دوست خوبم
از masked editbox استفاده کن جواب کارت را میده مسکید ادیت باکس

shahabbasic
جمعه 05 اسفند 1390, 18:27 عصر
سلام
برای پیست :

Private Sub Text1_Change()
p = Clipboard.GetText
If Text1.Text = p Then
For i = 1 To Len(p)
f = Mid(p, i, 1)
g = g & f & " "
Next i
Text1.Text = g
Text1.SelStart = Len(Text1.Text)
End If
End Sub
برای تایپ :

Private Sub Text1_KeyPress(KeyAscii As Integer)
s = Text1.Text & " "
Text1.Text = s
Text1.SelStart = Len(Text1.Text)
End Sub

Hassan2500
جمعه 05 اسفند 1390, 19:01 عصر
جناب shahabbasic کد برای پیست کار نمیکنه و ارور Run-time error 521 میده و کد دوم کار میکنه فقط یه ایراد داره اونم اینه که وقتی که حروفیکه فاصله بینشون افتاده رو میخای حرفی دیگه بجاشون بنویسی یعنی ویرایش کنی فوکوس به آخر تکست میپره اگه میشه اصلاحش کنید

تکست: ب ر ن ا م ه
مثلاً میخام ن رو بکنم د حرف ن پاک نمیشه و د آخر حروف میپره یعنی آخر تکست

ASedJavad
جمعه 05 اسفند 1390, 19:51 عصر
سلام
ببین این بدردت میخوره:
Private Sub Text1_Change()
Dim a() As String, x As String
x = Replace$(Text1.Text, " ", "")
If LenB(x) = 0 Then Exit Sub
ReDim a(1 To Len(x))
For i = 1 To Len(x)
a(i) = Mid(x, i, 1)
Next
Dim z As Long
z = Text1.SelStart
Text1.Text = Join(a, " ")
Text1.SelStart = z
End Sub

Hassan2500
جمعه 05 اسفند 1390, 20:04 عصر
سلام
بخدا کارت جناب asedjavad بیسته خیلی دنبال این کد بودم بازم میگم کارت بیسته

shahabbasic
جمعه 05 اسفند 1390, 23:15 عصر
سلام
ببین این بدردت میخوره:
Private Sub Text1_Change()
Dim a() As String, x As String
x = Replace$(Text1.Text, " ", "")
If LenB(x) = 0 Then Exit Sub
ReDim a(1 To Len(x))
For i = 1 To Len(x)
a(i) = Mid(x, i, 1)
Next
Dim z As Long
z = Text1.SelStart
Text1.Text = Join(a, " ")
Text1.SelStart = z
End Sub

جیگرتو بخورم این کد ایراد داره شما با همین کد توی تکس باکس تایپ کن ببین حروف رو جا به جا میزنه

setroyd
جمعه 05 اسفند 1390, 23:31 عصر
Private Sub Text1_Change()
Dim a() As String, x As String
x = Replace$(Text1.Text, " ", "")
If LenB(x) = 0 Then Exit Sub
ReDim a(1 To Len(x))
For i = 1 To Len(x)
a(i) = Mid(x, i, 1)
Next
Text1.Text = Join(a, " ")
Text1.SelStart = Len(Text1.Text)
End Sub

اینم تصحیح شده ی کدی که دوستمون گذاشتن .

ASedJavad
شنبه 06 اسفند 1390, 13:46 عصر
شما با همین کد توی تکس باکس تایپ کن ببین حروف رو جا به جا میزنه
قرار نیست اینجا لقمه جویده شده بذاریم تو دهن کسی
قراره کلیت راه حل رو بگیم تا سوال کننده خودش به جواب برسه
حالا اگه برا شما خیلی مهمه تو کدی که گذاشتم، خطوط 10 تا 12 رو با خطوط زیر جایگزین کن:
z = Len(Replace(Left(Text1.Text, Text1.SelStart), " ", ""))
Text1.Text = Join(a, " ")
Text1.SelStart = IIf(z = 0, 0, z * 2 - 1)