View Full Version : سوال: نوشتن یک کد و استفاده از آن در تمام اجزای برنامه
bugattis
شنبه 18 مهر 1388, 09:31 صبح
کد زیر برای فازسی نوشتن توی یه text در برنامه نویسی vb است
این کد را چطور تبدیل به یک تابع کنم که هر وقتی که خواستم از این کد در text های دیگه هم استفاده کنم (در کل می خوام هر وقت که خواستم این کد رو فراخوانی کنم)|
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
Dim f$, find%, i%
f = "ابپتثجچحخدذرزژسشصضطظعغفقك گلمنوهيئؤ"
For i = 1 To Len(f)
If KeyAscii = Asc(Mid(f, i, 1)) Or KeyAscii = AscW(Mid(f, i, 1)) Then
find = 1
Exit For
End If
Next
Select Case KeyAscii
Case vbKeySpace, vbKeyBack, vbKeyDelete, vbKeyReturn, vbKeyUp, vbKeyDown, vbKeyLeft, _
vbKeyRight, vbKeyPageDown, vbKeyPageDown, vbKeyHome, vbKeyEnd, vbKeyInsert
find = 1
End Select
If find = 0 Then KeyAscii = 0
End Sub
powerboy2988
شنبه 18 مهر 1388, 09:37 صبح
شما مي توني اين كد رو به صورت يك تابع دربياري و يك module به پروژت اضافه كني و اين تابع رو تو module بزاري
bugattis
شنبه 18 مهر 1388, 10:44 صبح
یه کم بیشتر توضیح بدید من توی این قسمت مبتدی ام
powerboy2988
شنبه 18 مهر 1388, 10:58 صبح
اين هم عكس هايي واسه اضافه كردن يك module به برنامه و درست كردن يك public Sub
bugattis
شنبه 18 مهر 1388, 13:27 عصر
با عرض پوزش از دوست عزیز
اگه ممکنه کد بالا رو که خودم قرار دادم برام آماده کنید و فایلشو بزارید برای دانلود
یا هر کد دیگه ای که فایلشو برای دانلود آماده دارید
با تشکر:گیج:
powerboy2988
شنبه 18 مهر 1388, 13:31 عصر
با عرض پوزش از دوست عزیز
اگه ممکنه کد بالا رو که خودم قرار دادم برام آماده کنید و فایلشو بزارید برای دانلود
یا هر کد دیگه ای که فایلشو برای دانلود آماده دارید
با تشکر:گیج:
شما سورس فايلتو بزار.. حتما انجام ميشه دوست عزيز
relax_cp
شنبه 18 مهر 1388, 14:39 عصر
اگه می خواهی کاری کنی که توی تکست باکس فارسی نوشته بشه از کد زیر می تونی استفاده کنی
این کد رو توی یک ماژول بذار:
Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long
این دو کد را هم توی همون ماژول بذار:
Public Sub farsisaz()
LoadKeyboardLayout "00000429", &H1 'fa
End Sub
Public Sub englisysaz()
LoadKeyboardLayout "00000409", &H1 'En
End Sub
حالا هر جا خواستی صفحه کلید فارسی بشه توی رویدادش بنویس farsisaz مثلا:
کد زیر به محض ورود به فرم صفحه کلید را فارسی میکنه:
Private Sub Form_Load()
farsisaz
End Sub
powerboy2988
شنبه 18 مهر 1388, 14:56 عصر
مي توني از اين ocx هم استفاده كني
مثال :
FK1.FarsiKey
pcdownload.bloghaa.com
شنبه 18 مهر 1388, 19:03 عصر
bugattis جان کدی که شما در اختیار داری یه کم طولانیه
که میتونی به صورت زیر تغییر بدی:
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
f = "ابپتثجچحخدذرزژسشصضطظعغفق? ?گلمنوهيئؤ"
If InStr(1, f, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
و برای استفاده از اون کد برای تکست باکس های مختلف اول تابع زیر را بنویس:
Private Function fa(Key As Integer) As Long
On Error Resume Next
f = "ابپتثجچحخدذرزژسشصضطظعغفق? ?گلمنوهيئؤ"
If InStr(1, f, Chr(Key)) = 0 Then
fa = 0
else
fa=key
End If
End Function
وسپس در رویداد keyPress هر تکست باکس کد زیر را وارد کن:
keyascii=fa(keyascii)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.