مشاهده نسخه کامل
: دوستان و اساتید برنامه نویسی یک راهنمایی بکنید؟
Ship Storm
22-10-2007, 18:17
دوستان سلام خوبین همگی
یه سوال پیش اودمه
چجوری میتونم توی یک Textbox وقتی مینویسم مثلا 123 برام بنویسه bab و این حروف ادامه پیدا کنه تا کلمه babak درست بشه مثلا زدیم 12345 بنویسه babak و وقتی بنویسیم 1234567بنویسه babakba یعنی کلمه مورد نظر رو فقط تکرار کنه.
با تشکر
Ship Storm
24-10-2007, 07:54
کسی از دوستان عزیز نمیتونه تو نوشتن این برنامه ما رو کمک کنه خیلی حیاتی هستش ها.
بفرما:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Ship Storm
24-10-2007, 14:52
بفرما:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون دوست عزیزم
امیدوارم کار کنه میرم تست میکنم و نتیجش رو میگم :11:
Ship Storm
24-10-2007, 15:24
واقعا یه دنیا ممنون دوست عزیزم عالی بود
فقط یه سوال داشتم من باید این برنامه رو توضیح بدم که چجوری نوشتمش یه لطفی میکنی در موردش تک تک خطوطش یکم توضیح بدید مخصوصا خطی که نوشتید:
KeyAscii = Asc(Mid(myString, c, 1))
ممنون و با تشکر
وقتی از خاصیت KeyPress استفده میکنیم هر کلیدی که زده میشه کد اسکی اون کلید داخل متغییر KeyAscii قرار
میگیره ( مثلا اگه کلید 1 رو وارد کنیم مقدار KeyAscii برابر 49 میشه)
ما با تغییر این متغییر در واقع می تونیم کلیدی که زده شده رو تغییر بدیم
کاربر که یه کلید رو وارد کرد ما با دستور Mid یه حرف از رشته ای رو که تعریف کردیم (منظور myString است) رو انتخاب میکنیم. بعد با دستور asc اونو به کد اسکیش تبدیل می کنیم و در KeyAscii قرار می دیم
بعد هم یه واحد به متغییر c اضافه می کنیم تا دفعه بعد که از mid استفاده کردیم حرف دوم اون رشته رو اتخاب کنه
وقتی هم متغییر c مقدارش 6 شد یعنی یک بار تمام رشته babak به خروجی رفته برای همین متغییر c رو برابر 1 قرار می دهیم.
شاد باشید
Ship Storm
24-10-2007, 16:35
وقتی از خاصیت KeyPress استفده میکنیم هر کلیدی که زده میشه کد اسکی اون کلید داخل متغییر KeyAscii قرار
میگیره ( مثلا اگه کلید 1 رو وارد کنیم مقدار KeyAscii برابر 49 میشه)
ما با تغییر این متغییر در واقع می تونیم کلیدی که زده شده رو تغییر بدیم
کاربر که یه کلید رو وارد کرد ما با دستور Mid یه حرف از رشته ای رو که تعریف کردیم (منظور myString است) رو انتخاب میکنیم. بعد با دستور asc اونو به کد اسکیش تبدیل می کنیم و در KeyAscii قرار می دیم
بعد هم یه واحد به متغییر c اضافه می کنیم تا دفعه بعد که از mid استفاده کردیم حرف دوم اون رشته رو اتخاب کنه
وقتی هم متغییر c مقدارش 6 شد یعنی یک بار تمام رشته babak به خروجی رفته برای همین متغییر c رو برابر 1 قرار می دهیم.
شاد باشید
ممنون دوست گلم عالی بود :40::40::40::40::10::10::10::10:
واقعا ممنون :11::11::11::11::11::11::11::11::11::11::11::11:
خوشحال میشدم آی دی یا ایمیلتون رو میتونستم داشته باشم. :20:
Ship Storm
25-10-2007, 19:17
hoax3r جان خیلی لطف کردی
یک سوال داشتم میخواستم ببینم میشه از روش زیر هم برنامه بالا رو نوشت من خودم یکسری کد نوشتم میزارم اینجا ببین چطوریه ولی کار نمیکنه میخاستم ببینی میشه با حلقه های IF این کار رو انجام داد.
ممنون و با تشکر
============
Private Sub c1_Click()
lbl_output.Caption = a
End Sub
Private Sub Form_Activate()
Dim a, b As Long
a = 1
b = 1
End Sub
Private Sub Form_Load()
Dim a, b As Long
a = 1
b = 1
End Sub
Private Sub txt_input_Change()
If b = 1 Then
txt_input.PasswordChar = "B"
a = a + 1
End If
If b = 2 Then
txt_input.PasswordChar = "A"
a = a + 1
End If
If b = 3 Then
txt_input.PasswordChar = "B"
a = a + 1
End If
If b = 4 Then
txt_input.PasswordChar = "A"
a = a + 1
End If
If b = 5 Then
txt_input.PasswordChar = "K"
a = a + 1
End If
b = b + 1
If b = 6 Then
b = b - 5
End If
txt_input.MaxLength = Val(a)
End Sub
با سلام
خوب خیلی خوبه که خودتم روش کار کردی
و اما مشکلاتی که من دیدم :
اول برای اینکه بتونی از متغییر های a , b توی دیگر رویه ها استفاده کنی باید خارج از روی ها تعریف بشن
دوم اینکه برای مقدار دهی متغییرها همون Form_Load کافیه Form_Activate می تونی حدف کنی
سوم اگر از PasswordChar استفاده کنی کل مقداری که داخل تکس باکس هست تغییر میکنه نه یه حرف
چهارم اینکه نمی دونم چرا از txt_input.MaxLength = Val(a) استفاده کردی. ولی به نظرم اگر برش داری بهتر باشه
پنچم اینکه خاصیت Change یکم کارو سخت می کنه چون اگر بخواهیم داخل این رویه تکس باکس رو تغییر بدیم.
همین تغییر باعث فراخوانی دوبار رویه Change میشه بهتره از همون خاصیت KeyPress یا KeyDown استفاده بشه
اابته اگر بخواهیم از if توی KeyPress استفاده کنیم میشه کد رو اینجوری کرد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شاد باشید
Ship Storm
26-10-2007, 11:21
hoax3r جان واقعا لطف کردید و ممنون از این راهنمایی خوب وارزندتون باید خدمتتون عرض کنم که کد هایی که برای بنده گذاشتید رو بنده در محیط VB وارد کردم فقط یک مشکلی داره فقط حرف B اول رو میزنه و دیگه هیچ حرفی از کیبرد خونده نمیشه مثل اینکه Textbox فقط یک حرف رو میگره بیشتر قبول نمیکنه به نظر شما استاد و سرور گرامی مشکل کجا میتونه باشه؟
ببینید در اینجا :
Private Sub Form_Load()
a = 1
b = 1
End Sub
چون متغیر b برابر 1 قرا داده شده و طبق دستور حلقه For زیر :
If b = 1 Then
txt_input = txt_input & "B"
a = a + 1
End If
فقط قادره حرف B رو چاپ کنه در صورتی که حلقه بعدی به این صورته :
If b = 2 Then
txt_input = txt_input & "A"
a = a + 1
End If
یعنی وقتی b=2 میشه حرف A از کلمه Babak رو چاپ میکنه و همین روند ادامه داره ولی همیشه متغیر b=1 هستش چون تو Form_Load اینطوری تعریف شده.
ممنون میشم در این زمینه راهنمایی های لازم رو بفرمایید.
با تشکر و تقدیم احترام
دوستدار شما Ship Storm (حامد)
با سلام حامد جان، امیدوارم خوب باشین
خوب نمی دونم مشکل چیه چون خودم که تست میکنم ایرادی نداره،
متغییر b هم با عبارت b = b + 1 تغییر پیدا میکنه بعد اینکه همه دستورات if انجام شد.
حالا یه بار دیگه تست کنید.
البته بد نیست با کلید F8 خط به خط کد رو برسی کنی اینجوری سریعتر می تونی مشکل رو پیدا کنی
مخلص شما آرش
شاد باشید
Ship Storm
26-10-2007, 20:52
استاد آرش عزیز سلام مجدد
استاد ما هرکاری کردیم نتونستیم این رو اجرا کنیم بخدا خیلی هم ور رفتیم ولی نشدفکر کنم یک جای کار ایراد داره یه بار خودتون تست میکنید اگه تستتون به نتیجه رسید اگه تونستید برام فایل .vbp و .frm و .vbw رو اگه زحمتی نیست یک جا اپلود کنید تا من ببینم چجوریه.
ممنون و با تشکر
براتون آپلود کردم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Ship Storm
27-10-2007, 08:16
براتون آپلود کردم
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
واقعا لطف کردی استاد آرش عزیز :11:
برم ببینم چی شده
ممنون :11::40:
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.