واضح آرشیو وب فارسی:سایت ریسک: Ship Storm22-10-2007, 06:17 PMدوستان سلام خوبین همگی یه سوال پیش اودمه چجوری میتونم توی یک Textbox وقتی مینویسم مثلا 123 برام بنویسه bab و این حروف ادامه پیدا کنه تا کلمه babak درست بشه مثلا زدیم 12345 بنویسه babak و وقتی بنویسیم 1234567بنویسه babakba یعنی کلمه مورد نظر رو فقط تکرار کنه. با تشکر Ship Storm24-10-2007, 07:54 AMکسی از دوستان عزیز نمیتونه تو نوشتن این برنامه ما رو کمک کنه خیلی حیاتی هستش ها. hoax3r24-10-2007, 09:01 AMبفرما: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! Ship Storm24-10-2007, 02:52 PMبفرما: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ممنون دوست عزیزم امیدوارم کار کنه میرم تست میکنم و نتیجش رو میگم :11: Ship Storm24-10-2007, 03:24 PMواقعا یه دنیا ممنون دوست عزیزم عالی بود فقط یه سوال داشتم من باید این برنامه رو توضیح بدم که چجوری نوشتمش یه لطفی میکنی در موردش تک تک خطوطش یکم توضیح بدید مخصوصا خطی که نوشتید: KeyAscii = Asc(Mid(myString, c, 1)) ممنون و با تشکر hoax3r24-10-2007, 04:28 PMوقتی از خاصیت KeyPress استفده میکنیم هر کلیدی که زده میشه کد اسکی اون کلید داخل متغییر KeyAscii قرار میگیره ( مثلا اگه کلید 1 رو وارد کنیم مقدار KeyAscii برابر 49 میشه) ما با تغییر این متغییر در واقع می تونیم کلیدی که زده شده رو تغییر بدیم کاربر که یه کلید رو وارد کرد ما با دستور Mid یه حرف از رشته ای رو که تعریف کردیم (منظور myString است) رو انتخاب میکنیم. بعد با دستور asc اونو به کد اسکیش تبدیل می کنیم و در KeyAscii قرار می دیم بعد هم یه واحد به متغییر c اضافه می کنیم تا دفعه بعد که از mid استفاده کردیم حرف دوم اون رشته رو اتخاب کنه وقتی هم متغییر c مقدارش 6 شد یعنی یک بار تمام رشته babak به خروجی رفته برای همین متغییر c رو برابر 1 قرار می دهیم. شاد باشید Ship Storm24-10-2007, 04:35 PMوقتی از خاصیت 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 Storm25-10-2007, 07:17 PMhoax3r جان خیلی لطف کردی یک سوال داشتم میخواستم ببینم میشه از روش زیر هم برنامه بالا رو نوشت من خودم یکسری کد نوشتم میزارم اینجا ببین چطوریه ولی کار نمیکنه میخاستم ببینی میشه با حلقه های 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 hoax3r26-10-2007, 01:05 AMبا سلام خوب خیلی خوبه که خودتم روش کار کردی و اما مشکلاتی که من دیدم : اول برای اینکه بتونی از متغییر های a , b توی دیگر رویه ها استفاده کنی باید خارج از روی ها تعریف بشن دوم اینکه برای مقدار دهی متغییرها همون Form_Load کافیه Form_Activate می تونی حدف کنی سوم اگر از PasswordChar استفاده کنی کل مقداری که داخل تکس باکس هست تغییر میکنه نه یه حرف چهارم اینکه نمی دونم چرا از txt_input.MaxLength = Val(a) استفاده کردی. ولی به نظرم اگر برش داری بهتر باشه پنچم اینکه خاصیت Change یکم کارو سخت می کنه چون اگر بخواهیم داخل این رویه تکس باکس رو تغییر بدیم. همین تغییر باعث فراخوانی دوبار رویه Change میشه بهتره از همون خاصیت KeyPress یا KeyDown استفاده بشه اابته اگر بخواهیم از if توی KeyPress استفاده کنیم میشه کد رو اینجوری کرد !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! شاد باشید Ship Storm26-10-2007, 11:21 AMhoax3r جان واقعا لطف کردید و ممنون از این راهنمایی خوب وارزندتون باید خدمتتون عرض کنم که کد هایی که برای بنده گذاشتید رو بنده در محیط 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 (حامد) hoax3r26-10-2007, 01:21 PMبا سلام حامد جان، امیدوارم خوب باشین خوب نمی دونم مشکل چیه چون خودم که تست میکنم ایرادی نداره، متغییر b هم با عبارت b = b + 1 تغییر پیدا میکنه بعد اینکه همه دستورات if انجام شد. حالا یه بار دیگه تست کنید. البته بد نیست با کلید F8 خط به خط کد رو برسی کنی اینجوری سریعتر می تونی مشکل رو پیدا کنی مخلص شما آرش شاد باشید Ship Storm26-10-2007, 08:52 PMاستاد آرش عزیز سلام مجدد استاد ما هرکاری کردیم نتونستیم این رو اجرا کنیم بخدا خیلی هم ور رفتیم ولی نشدفکر کنم یک جای کار ایراد داره یه بار خودتون تست میکنید اگه تستتون به نتیجه رسید اگه تونستید برام فایل .vbp و .frm و .vbw رو اگه زحمتی نیست یک جا اپلود کنید تا من ببینم چجوریه. ممنون و با تشکر hoax3r26-10-2007, 09:12 PMبراتون آپلود کردم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! Ship Storm27-10-2007, 08:16 AMبراتون آپلود کردم !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! واقعا لطف کردی استاد آرش عزیز :11: برم ببینم چی شده ممنون :11::40: سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 307]