Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Knapp som undviker musen

Postades av 2001-01-20 23:02:00 - Anders Moldin, i forum spel/grafik, Tråden har 7 Kommentarer och lästs av 1103 personer

Hur gör man en knapp som undviker musen? Mesig fråga men...
/Anders


Svara

Sv: Knapp som undviker musen

Postades av 2001-01-22 10:40:00 - Peter Holm

Det är rätt enkelt......

Lägg in in commandbutton i en form...

och klistra in följande kod och kör programmet.
'=========================================

Option Explicit

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Left = Int(4500 * Rnd(1)) + 1
Command1.Top = Int(4500 * Rnd(1)) + 1
End Sub

Private Sub Form_Load()
Me.Width = 5000
Me.Height = 5000
Command1.Width = 500
Command1.Height = 500
End Sub

'=========================================

Det är eventet MouseMove som triggas då du för muspekaren över knappen.


Svara

Hmm, lite mer:

Postades av 2001-01-22 18:10:00 - Anders Moldin

Tack, men tanken var mer att den skulle "flyta" precis framför musen hela tiden... Går det att fixa?
Finns det nån som kanske kan lite ytligt förklara koden ovan? Jag ändrade t.ex 4500 till 1, 2 och 3, men då lade sig bara knappen i övre vänstra hörnet...
MVH /Molle


Svara

Sv: Hmm, lite mer:

Postades av 2001-01-23 08:54:00 - Peter Holm

Tja.....

Asså allt är möjligt.... KOden förklaras.

command1.left=500

detta sätter egenskapen left för kommandoknapp 1. Det innebär att dess vänstra kant kommer att befinna sig 500 twips (en twip är ca 1/567 cm alltså skitliten del, jag har för mig att det går ca 20 twips på en bildskärmspunkt, sk. pixel.)

Alltså kommer kommandoknapp 1 att sitta ca en centimeter från vänsterkanten.

command1.top=500

Likaså fast från ovankanten.

du angav 1 2 och 3 vilket betyder att knappen fastnade uppe i hörnet eftersom det går 20 twips på en pixel så kan du inte se den rörelsen.

Den andra delen av koden bestämmer ett slumptal så knappen hoppar slumpvis.

För att göra det du vill blir det lite mer komplicerat då man också måste hålla reda på åt vilket håll användaren rör musen.

Men generellt är det så att eventet mouse:move triggas (utlöses) då du för musen över en kontroll. Inparametrarna x och y, anger musens position.

Rör du musen åt höger skall du sätta command1.left =x+1
Rör du musen åt vänster skall du sätta command1.left=x-command1.width-1
Sedan måste du göra på liknande sätt för uppåt och neråt.

/Peterh


Svara

visar många

Postades av 2001-01-23 14:04:00 - Johan Hjort

Om man håller in space och rör på musen så ploppar det upp en massa knappar hela tiden...

/Hjorten


Svara

Sv: visar många

Postades av 2001-01-23 15:33:00 - Anders Moldin

Jo, jag märkte det :)
Kan någon hjälpa mig med att ta reda på musens koordinater? Så att den "flyter" framför... Snälla?
MVH /Molle


Svara

kanske hjälper lite .....

Postades av 2001-08-19 21:17:00 - Per-Olof Edqvist

Dim JOX As Boolean

Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "32" Then JOX = True Else JOX = True
End Sub

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If JOX = False Then
Randomize
Dim nLeft As Integer, nRight As Integer
nLeft = Int(2000 * Rnd(1)) + 1
nRight = Int(2000 * Rnd(1)) + 1
Command1.Move nLeft, nRight
End If
End Sub


Svara

10 min...

Postades av 2001-08-21 03:27:00 - Mazen Harake

Detta lilla spel tog strax under 10 minuter å göra... jag tror att det är typ liknande du menar eller?

klistra in i notepad och Döp om till Form1.frm sen är det bara att kompilera!

OBS! kom ihåg att inte bara klippa å klistra utan också försöka förstå koden! fråga om det är nått som du tycker är svårt!

/Mazen

----------------- Klipp och klistra Det här i Notepad --------------------

VERSION 5.00
Begin VB.Form Form1
BackColor = &H00FF0000&
BorderStyle = 0 'None
Caption = "Form1"
ClientHeight = 660
ClientLeft = 0
ClientTop = 0
ClientWidth = 1395
LinkTopic = "Form1"
ScaleHeight = 660
ScaleWidth = 1395
ShowInTaskbar = 0 'False
StartUpPosition = 2 'CenterScreen
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'****************************************
'* "Fånga kvadraten" (eller nått) *
'* försök att klicka i kvadraten för *
'* att "fånga" den *
'****************************************
'* Gjord av: Mazen Harake *
'* Exemplet är gjort för Pellesoft.nu *
'* Email: mazenh@hotmail.com *
'* Maila om du har frågor! *
'* NO SPAM!!! *
'****************************************

Dim intEscape As Integer 'Hur många pixlar den ska flytta sig åt gången

Private Sub Form_Click()
'Om användaren lyckas... beröm och avslut!
MsgBox "Gött jobbat!!!", vbInformation + vbOKOnly, "Stäng"
Unload Me
End Sub

Private Sub Form_Load()
Randomize Timer
Form1.BackColor = QBColor(Int(15 * Rnd(1)) + 1) 'Random färg på kvadraten
intEscape = 50
MsgBox "Klicka på rutan för att stänga den!" + vbCrLf + "Om du inte lyckas... använd CTRL+ALT+DELETE", vbInformation + vbOKOnly, "Hmmmm..."
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

'X är musens X kordinater i formen, inte på skärmen!
'Y är då musens Y kordinater!

If (X > 0 And X < (Me.Width / 2)) Then 'Musen kommer in från höger
'Flytta kvadraten åt höger
Form1.Move Me.Left + intEscape, Me.Top
ElseIf (X > (Me.Width / 2) And X < Me.Width) Then 'Musen kommer in från vänster
'Flytta kvadraten åt vänster
Form1.Move Me.Left - intEscape, Me.Top
End If

If (Y > 0 And Y < (Me.Height / 2)) Then 'Musen kommer in uppifrån
'Flytta ner kvadraten
Form1.Move Me.Left, Me.Top + intEscape
ElseIf (Y > (Me.Height / 2) And Y < Me.Height) Then 'Musen kommer in nerifrån
'Flytta upp kvadraten
Form1.Move Me.Left, Me.Top - intEscape
End If

'om kvadraten hamnar utanför skärmen... centrera den för att börja om!
If Me.Left < 0 Then
Me.Move Int(Screen.Width / 2) - (Me.Width / 2), Int(Screen.Height / 2) - (Me.Height / 2)
ElseIf Me.Top < 0 Then
Me.Move Int(Screen.Width / 2) - (Me.Width / 2), Int(Screen.Height / 2) - (Me.Height / 2)
ElseIf Me.Top + Me.Height > Screen.Height Then
Me.Move Int(Screen.Width / 2) - (Me.Width / 2), Int(Screen.Height / 2) - (Me.Height / 2)
ElseIf Me.Left + Me.Width > Screen.Width Then
Me.Move Int(Screen.Width / 2) - (Me.Width / 2), Int(Screen.Height / 2) - (Me.Height / 2)
End If

'Om du vill ändra färg på kvadraten (typ Flasha den) så kommentera bort
'den nedre raden

'Form1.BackColor = QBColor(Int(15 * Rnd(1)) + 1)

End Sub


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 765
27 960
271 761
627
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies