ورود

View Full Version : سوال: اجرای یک کد اگر تو تکست داریم مینویسیم



Aydin3max
پنج شنبه 02 شهریور 1391, 18:46 عصر
فارسی این کد اینجوری میشه.
میخوام توی تایمر بنویسم اگر داریم توی تکست مینویسیم یه سری کد رو اجرا کنه اگر چیزی نمینویسیم یه سری کد دیگه
ممنون اگه کسی ج بده

SlowCode
پنج شنبه 02 شهریور 1391, 21:15 عصر
از این روش میتونی استفاده کنی، :

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Print "Type" ' Or do something else
Timer1.Enabled = False
End Sub

یعنی وقتی که دکمه ای زده بشه تایمر شروع به کار میکنه و بعد خودش غیر فعال میشه.

one hacker alone
پنج شنبه 02 شهریور 1391, 23:44 عصر
چیزی که دوستمون گفتن میشه و حالتی که شما میخواین اینجوری میشه که توی تایمر ما مقدار تکست رو چک کنیم اگر <>"" یه کار بکنه و در غیر اینصورت یه کار دیگه

SlowCode
جمعه 03 شهریور 1391, 00:25 صبح
چیزی که دوستمون گفتن میشه و حالتی که شما میخواین اینجوری میشه که توی تایمر ما مقدار تکست رو چک کنیم اگر <>"" یه کار بکنه و در غیر اینصورت یه کار دیگه

اینکه درست نیست،شاید اولش یه حرف تایپ کنه بعد دیگه ننویسه پس برنامه باید وایسه ولی با کد شما باز هم ادامه میده.

Aydin3max
جمعه 03 شهریور 1391, 18:29 عصر
دوستان برنامه من اینجوریه که توی روییداد Change تکست1 یه سری کد داره که تکست 2 رو تغییر میده و تکست2 هم همینجور تکست 1 رو تغییر میده
میخوام وقتی تکست1 رو دارم تغییر میدم کدهای تکست2 رو انجام نده و همینطور برعکس

SlowCode
جمعه 03 شهریور 1391, 18:43 عصر
شما از کد پست 2 استفاده کردی؟ فکر کنم راحت ترین گزینه برای شما همونه.

محسن واژدی
جمعه 03 شهریور 1391, 18:54 عصر
سلام علیکم
کد زیر هم که تقریبا" مشابه کد جناب محسن15 هست را بررسی کنید: Private Sub Text1_Change()
Timer1 = True
End Sub


Private Sub Timer1_Timer()
Static sOldTxt$
Timer1.Interval = 500
If Text1 sOldTxt$ Then
Caption = "Typing..."
sOldTxt$ = Text1
Else
Caption = ""
Timer1 = False
End If
End Sub


البته Timer1.Interval=1 قرار دهید

موفق باشید

SlowCode
جمعه 03 شهریور 1391, 19:13 عصر
آقای واژدی فکر کنم کد شما اشکال داشت، چون کار نکرد و من اینطوری ویرایشش کردم:
Dim sOldTxt$
Private Sub Form_Load()
Timer1.Interval = 500
sOldTxt$ = Text1
End Sub

Private Sub Text1_Change()
Timer1 = True
End Sub


Private Sub Timer1_Timer()
If Text1 <> sOldTxt$ Then
Caption = "Typing..."
sOldTxt$ = Text1
Else
Caption = ""
Timer1 = False
End If
End Sub

محسن واژدی
شنبه 04 شهریور 1391, 01:00 صبح
آقای واژدی فکر کنم کد شما اشکال داشت، چون کار نکرد و من اینطوری ویرایشش کردم: سلام علیکم
ممنون، کد مشکلی ندارد، البته کد جدید هم صحیح است، در کدی که بندی ضمیمه پست 7 کردم متغیر sOldTxt از نوع Static است و با رسیدن روال به انتها متغیر حذف نمیشود، و اینکه interval تایمر را در خود تایمر قرار دادم این بود که دیگر نیازی به تذکر در مورد تنظیم تایمر نباشد، البته فراموش کردم بنویسم مقدار اولیه تایمر بر روی 1ms تنظیم شود

موفق باشید