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


Lägga ihop if-satser....

Postades av 2001-08-06 13:47:00 - Daniel Jönsson, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 525 personer

Jag håller på att göra ett spel där man styr image1 med piltangenterna och när man krockar med image2 så ska det hända något. Då knåpade jag ihop dem här koderna:

If (Image1.Top > Image2.Top And Image1.Top < (Image2.Top + Image2.Height)) Or (Image2.Top > Image1.Top And Image2.Top < (Image1.Top + Image1.Height)) Then Form2.Show: Form1.Hide

If (Image1.Left > Image2.Left And Image1.Left < (Image2.Left + Image2.Width)) Or (Image2.Left > Image1.Left And Image2.Left < (Image1.Left + Image1.Width)) Then Form2.Show: Form1.Hide

Det fungerade inte så jag gick in på chatten och frågade. Då sa dom att jag måste sätta ihopa dom här två if-satserna till en. Då e min fråga. Hur gör jag? Någon som kan visa några exempel eller börja göra om min så jag förstår?

Tacksam för svar. /Daniel Jönsson







Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-06 15:22:00 - Sven Åke Persson

Hej
Så här skulle jag skriva.Om detta inte fungerar så är
vilkoren fel formulerade.

If Image1.Top > Image2.Top _
And Image1.Top < Image2.Top + Image2.Height _
Or Image2.Top > Image1.Top _
And Image2.Top < Image1.Top + Image1.Height _
Then Form2.Show
Form1.Hide

mvh
Sven


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-06 16:31:00 - Johan Djupmarker

>Då knåpade jag ihop dem här koderna
Om jag inte minns fel var det jag som skrev dom, men men...

If (Image1.Top > Image2.Top And Image1.Top < (Image2.Top + Image2.Height)) Or _
(Image2.Top > Image1.Top And Image2.Top < (Image1.Top + Image1.Height)) AND _
(Image1.Left > Image2.Left And Image1.Left < (Image2.Left + Image2.Width)) Or _
(Image2.Left > Image1.Left And Image2.Left < (Image1.Left + Image1.Width)) Then
Form2.Show
Form1.Hide
End if

/Johan


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-06 16:42:00 - Sven Åke Persson

Hej igen
Efter att ha tänkt ett tag på ditt prob ,så bör det se ut så här

If Image1.Top > Image2.Top Then
If Image1.Top < Image2.Top + Image2.Height _
Or Image2.Top > Image1.Top Then
If Image2.Top < Image1.Top + Image1.Height Then
Form2.Show
Form1.Hide
End If
End If
End If

Man skall unvika AND så länge man kan,det är bättre att lägga
en If sats till under istället för AND

mvh
Sven


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-06 20:49:00 - Andreas Hillqvist

Kanske denna funktionen fungerar?

Public Function HitTest(Image1 As Image, Image2 As Image) As Boolean
If Image2.Left + Image2.Width <= Image1.Left Then
ElseIf Image2.Left >= Image1.Left + Image1.Width Then
Else
If Image2.Top + Image2.Height <= Image1.Top Then
ElseIf Image2.Top >= Image1.Top + Image1.Height Then
Else
HitTest = True
End If
End If

End Function


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-06 22:50:00 - Ivar Torstensson

Lär mig snälla Svenpon varför man inte skall använda AND.

IT undrar...


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-07 00:44:00 - Sven Åke Persson

Hej
>varför man inte skall använda AND .

Exemel enl ovan:

If Image1.Top > Image2.Top _
And Image1.Top < Image2.Top + Image2.Height _
Or Image2.Top > Image1.Top _
And Image2.Top < Image1.Top + Image1.Height _
Then Form2.Show
Form1.Hide

Om nu första påståendet ovan If Imag1 ......
är Falskt så måste iallafal programmet testa de andra
AND och OR vilkoren helt i onödan.
Är första vilkoret Falskt faller ju det övriga.
Dvs Ersätt AND med If........ Then
If .......Then osv osv.

mvh
Sven




Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-07 10:08:00 - Ivar Torstensson

Jaja självklart. Smart tänkt!


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-07 14:12:00 - Andreas Hillqvist

Är du säkert på att din satts hanterar alla situationer? Bilderna kan ju ha olika bred och sånt. Har inte satt mig i din satts men den ser lite skum ut. Efter som det kräver mindre jämförelse för att garantera att bilden inte koliderar med varandra än om det kolliderar med varandra. Det jag utnutjar i min funktion. Fick iden när jag arbetade med datum intervall. Där jag skulle kontrollera om perioker kolliderade med varandra.


Svara

Sv: Lägga ihop if-satser....

Postades av 2001-08-07 14:34:00 - Andreas Hillqvist

Har gjort ett litet exempel. Klistra in följande kod i ett tomt formulär:

Option Explicit

Private MoveImage As Image
Private StillImage As Image

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyLeft
If Shift And vbShiftMask Then
MoveImage.Width = MoveImage.Width - Screen.TwipsPerPixelX
Else
MoveImage.Left = MoveImage.Left - Screen.TwipsPerPixelX
End If
Case vbKeyUp
If Shift And vbShiftMask Then
MoveImage.Height = MoveImage.Height - Screen.TwipsPerPixelY
Else
MoveImage.Top = MoveImage.Top - Screen.TwipsPerPixelY
End If
Case vbKeyRight
If Shift And vbShiftMask Then
MoveImage.Width = MoveImage.Width + Screen.TwipsPerPixelX
Else
MoveImage.Left = MoveImage.Left + Screen.TwipsPerPixelX
End If
Case vbKeyDown
If Shift And vbShiftMask Then
MoveImage.Height = MoveImage.Height + Screen.TwipsPerPixelY
Else
MoveImage.Top = MoveImage.Top + Screen.TwipsPerPixelY
End If
End Select
If HitTest(MoveImage, StillImage) Then
BackColor = vbRed
Else
BackColor = vbGreen
End If
End Sub

Public Function HitTest(Image1 As Image, Image2 As Image) As Boolean
If Image2.Left + Image2.Width <= Image1.Left Then
ElseIf Image2.Left >= Image1.Left + Image1.Width Then
Else
If Image2.Top + Image2.Height <= Image1.Top Then
ElseIf Image2.Top >= Image1.Top + Image1.Height Then
Else
HitTest = True
End If
End If
End Function

Private Sub Form_Load()
Set MoveImage = Controls.Add("VB.Image", "Image1")
MoveImage.Appearance = 0
MoveImage.BorderStyle = vbFixedSingle
MoveImage.Visible = True

Set StillImage = Controls.Add("VB.Image", "Image2")
StillImage.Appearance = 0
StillImage.BorderStyle = vbFixedSingle
StillImage.Visible = True
StillImage.Move MoveImage.Left + MoveImage.Width * 2, MoveImage.Top + MoveImage.Height * 2
End Sub


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 622
27 953
271 709
665
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