PDA

View Full Version : سوال: موس



morteza@z
چهارشنبه 24 اسفند 1390, 10:22 صبح
سلام چه طور می شود که زمانی که کاربر در برنامه کلیک می کند موجی در زیر موس درست شود مثل موس که دکمه کنترل را می زنیم

Heidari66
چهارشنبه 24 اسفند 1390, 11:12 صبح
نامفهموه؟!
بیشتر توزیغ بدید!!!

tstsst
چهارشنبه 24 اسفند 1390, 12:16 عصر
Private Sub Form1_Click(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.Click
Dim x, y As Integer
x = e.X
y = e.Y
Me.CreateGraphics.DrawEllipse(Pens.Red, x, y, 20, 20)
Timer1.Enabled = True
TextBox1.Text = 0
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
TextBox1.Text += 1
If TextBox1.Text = 5 Then
Timer1.Enabled = False
Me.CreateGraphics.Clear(Me.BackColor)
TextBox1.Clear()
End If
End Sub

یک راه حل ابتکاری :لبخند:

morteza@z
چهارشنبه 24 اسفند 1390, 12:59 عصر
سلام دوست من منظورم اینکه زیر خود موس ودر هر جایی که موس باشد تکرار شود مثل این عکس84157

tstsst
چهارشنبه 24 اسفند 1390, 14:01 عصر
سلام دوست من منظورم اینکه زیر خود موس ودر هر جایی که موس باشد تکرار شود مثل این عکسمن منظورتونو کاملا فهمیدم ولی فکر نکنم بغیر از این که دایره رو بکشید و بس از یک زمان مشخص پاکش کنید راه دیگه ای باشه ؟!
Me.CreateGraphics.DrawEllipse(Pens.Red, x, y, 20, 20)
با یکم زیاد کم کردم x,y میتونید دقیقا روی همون نقطه دلخواه برید !

بفرمایید
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 10, y - 10, 20, 20)

برای رنگشم که معلومه Pens.Red رو تغییر دهید.

فرید نجفلو
چهارشنبه 24 اسفند 1390, 15:22 عصر
شما مظور تون کلیک بر روی یک فرم خاصه یا هر جایی از برنامه(مثلا رو یک لیبل یا دکمه و ...)؟

tstsst
چهارشنبه 24 اسفند 1390, 16:28 عصر
اینجوری بیشتر شبیه می شه
و به تکسباکس هم کاری نداره !:لبخند:

Dim x, y, z As Integer
Private Sub Form1_Click(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.Click
z = 40
x = e.X
y = e.Y
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 10, y - 10, z, z)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
z = z - 5
Me.CreateGraphics.Clear(Me.BackColor)
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 10, y - 10, z, z)
If z = 0 Then
Timer1.Enabled = False
Me.CreateGraphics.Clear(Me.BackColor)
End If
End Sub

morteza@z
چهارشنبه 24 اسفند 1390, 20:50 عصر
سلام دوست من منظورم همین بود فقط می خوام که در زیر اشاره گر موس دایره تشکیل شود و هر جا که موس باشد

tstsst
چهارشنبه 24 اسفند 1390, 21:22 عصر
این دقیقا هر جا که موس هست تشکیل میشه ولی اگه یکمی بالاتر یا پایین تره x,y اینو کمو زیاد کن تا درست شه برای مثال
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 30, y - 20, z, z)
همون 20 و 30 رو کم و زیاد کن.

morteza@z
چهارشنبه 24 اسفند 1390, 21:45 عصر
سلام در قسمت z های آخر خطا میده مشکل کجاست

tstsst
چهارشنبه 24 اسفند 1390, 22:14 عصر
z خطا می ده ؟!!!
z که یک عدد فقط
اگه همین جوری نوشته باشی نباید خطا بده ؟!

Dim x, y, z As Integer
Private Sub Form1_Click(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.Click
z = 40
x = e.X
y = e.Y
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 10, y - 10, z, z)
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
z = z - 5
Me.CreateGraphics.Clear(Me.BackColor)
Me.CreateGraphics.DrawEllipse(Pens.Red, x - 10, y - 10, z, z)
If z = 0 Then
Timer1.Enabled = False
Me.CreateGraphics.Clear(Me.BackColor)
End If
End Sub


چه خطایی می ده ؟!

morteza@z
چهارشنبه 24 اسفند 1390, 22:49 عصر
دوست من بازم خطا میده در این قسمت x = e.X y = e.Y

فرید نجفلو
چهارشنبه 24 اسفند 1390, 23:23 عصر
بابا خودتم یه آستین بزن بالا
این کد فکر کنم کارتون رو تا حدی راه بندازه::لبخندساده:

Private StartDrawSize As Integer = 45
Private DrawSize As Integer
Private DrawStep As Integer = 5
Private RepateTimes As Integer = 3
Private DrawedTimes As Integer = 1
Dim ClickPiont As New Point
Private FolowMouse As Boolean = True
Private Sub Form1_Click(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.Click
ClickPiont = e.Location
DrawSize = StartDrawSize
DrawedTimes = 1
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Draw()
End Sub
Private Sub Draw()
Me.CreateGraphics.Clear(Me.BackColor)
If DrawSize <= 0 Then
If DrawedTimes >= RepateTimes Then
Timer1.Stop()
Else
DrawSize = StartDrawSize
DrawedTimes += 1
End If
End If
If FolowMouse Then ClickPiont = Me.PointToClient(MousePosition)
Dim NewDrawRec = New Rectangle(ClickPiont.X - (DrawSize / 2), ClickPiont.Y - (DrawSize / 2), DrawSize, DrawSize)
Me.CreateGraphics.DrawEllipse(Pens.Red, NewDrawRec)
DrawSize -= DrawStep
End Sub

hakim22
شنبه 27 اسفند 1390, 15:46 عصر
به نظرم یک فرم ترنسپرنت باید بسازی و اون حالت انیمیشینی رو توش دربیاری (کار ساده گرافیکی و استفاده از تایمر شاید لازم باشه )
بعد هر جا که کاربر کلیک میکنه اون فرم رو نمایش بدی البته فرمت می تونه خیلی کوچیک باشه و همچنین حاشیه هاشو هم باید حذف کنی