PDA

View Full Version : سوال: غیر فعال کردن حرکت دادن فرم



30rabi
شنبه 21 خرداد 1390, 12:21 عصر
با سلام خدمت اساتید محترم
چگونه می توان حرکت دادن یک فرم رو غیر فعال کرد؟
ممنون

returnx
شنبه 21 خرداد 1390, 13:40 عصر
شی فرم خاصیتی داره به نام Movable که مقدار True یا False می گیره که شما می تونید از پنجره propertise اون رو برابر falseبزارید ...
اما با کد نویسی نمیتونین این کار انجام بدید چون VB6 از این تابع پشتیبانی نمیکنه...
یعنی اگه اینجوری استفاده کنید VB6 پیام خطا میده:

Me.Moveable = False

pcdownload.bloghaa.com
یک شنبه 22 خرداد 1390, 11:05 صبح
با استفاده از کد نویسی باید از تایمر استفاده کنی به شکل زیر:


Dim x, y As Integer
Private Sub Form_Load()
Timer1.Interval = 1
x = Me.Left
y = Me.Top
End Sub
Private Sub Timer1_Timer()
If Me.Left > x Or Me.Left < x Then
Me.Enabled = False
Me.Left = x
Me.Enabled = True
End If
If Me.Top > y Or Me.Top < y Then
Me.Enabled = False
Me.Top = y
Me.Enabled = True
End If
End Sub

alizanganeh
شنبه 01 بهمن 1390, 21:11 عصر
میشه این کدی که دادید رو د موردش توضیح بدید؟
من نمیفهمم چیکار میکنه
یعنی نمیدونم برای چی این کدها نوشته شده
اگر میشه کار کدها رو بگید
ممنون

pcdownload.bloghaa.com
یک شنبه 02 بهمن 1390, 00:41 صبح
یه مختصر توضیحی میدم:
دوتا متغیر تو جنرال تعریف میکنه تا از تایمر هم قابل دسترسی باشن.
مقدار top و left فرم را میریزه داخل اون دوتا متغیر.
بعد تو تیامر چک میکنه به محض اینکه مقدار top یا left فرم کمتر یا بیشتر از مقدار اولیه اون یعنی x و y شد.
میاد فرم را غیر فعال میکنه محل فرم را به جای اول بر میگردونه و دوباره فرم را فعالش میکنه.این فعال و غیر فعال کردن فرم
باعث میشه ویندوز فراموش کنه روی چه چیزی کلیک شده بود و این باعث میشه کد کاراتر بشه.

shahabbasic
یک شنبه 02 بهمن 1390, 00:41 صبح
با استفاده از کد نویسی باید از تایمر استفاده کنی به شکل زیر:


Dim x, y As Integer
Private Sub Form_Load()
Timer1.Interval = 1
x = Me.Left
y = Me.Top
End Sub
Private Sub Timer1_Timer()
If Me.Left > x Or Me.Left < x Then
Me.Enabled = False
Me.Left = x
Me.Enabled = True
End If
If Me.Top > y Or Me.Top < y Then
Me.Enabled = False
Me.Top = y
Me.Enabled = True
End If
End Sub
X,Y رو در اجرای برنامه میگیره که همون چپ و بالای فرم باشه بعد تایمر هر 50 میلی ثانیه چک میکنه که اگر چپ و بالای فرم از اسکرین بیشتر یا کمتر از X و Y شد دوباره به همون حالت برگردونه
در ضمن interval تایمر فقط به شکل نمایشی مقدارهای کمتر از 50 رو قبول میکنه اگر مقدار کمتر از 50 هم داشته باشه بازم همون 50 میلی ثانیه عمل میشه یعنی 1 میلی ثانیه با 50 میلی ثانیه فرقی نداره
چون حداقل سیکل ساعت پردازنده 50 میلی ثانیست

alizanganeh
یک شنبه 02 بهمن 1390, 01:57 صبح
خب متوجه شدم
حالا چطور میشه با کد دوباره فعالش کرد؟
یعنی بشه با کد گفت که فرم جابجا بشه؟
ممنون

pcdownload.bloghaa.com
یک شنبه 02 بهمن 1390, 12:25 عصر
کافیه تایمر را غیر فعال کنی.