Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema sulle condizioni IF
Forum - C# / VB.NET - Problema sulle condizioni IF

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2331
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:40
Venerdė, 08/08/2008
Salve a tutti

ho questo problema sulle condizioni

o so io che non capisco bene il funzionamento o non so cosa

spiego subito


guardate questa immagine

http://img186.imageshack.us/img186/9698/immagineib5.png


allora come vedete il mouse e in una posizione sopra a quel triangolino
che cliccandoci su fa spostare il cursore

bhe il problema e quello

le condizioni if scazzano

guardate questo esempio

dove sbaglio? :/

1) esempio

Codice sorgente - presumibilmente Delphi

  1. If operazione = "selettore" Then
  2.  
  3.  
  4.             If msx > 240 & msx < 230 & msy > 179 & msy < 240 Then
  5.                 MsgBox("ok")
  6.             Else
  7.                 MsgBox("fuori area")
  8.             End If
  9.  
  10.         End If



msx = mouse X
msy = mouse Y

anche se le cordinate non rientrano in quella condizione
continua a stamparmi OK dicendo che il cursore del mouse e nell'area che ho delimitata

ho provato anche in questo modo
ma fa la stessa e identica cosa

Codice sorgente - presumibilmente Delphi

  1. If operazione = "selettore" Then
  2.  
  3.             ' se il muose su X e superiroe di 240
  4.            If msx > 240 Then
  5.                  'ma se non e minore di 230
  6.                 If msx < 230 Then
  7.                     'e se il mouse su Y e superiroe a 179
  8.                    If msy > 179 Then
  9.                       'ma non supera il 240
  10.                         If msy < 240 Then
  11.  
  12.                             MsgBox("sei nell'area del selettore")
  13.  
  14.  
  15.                        End If
  16.                    End If
  17.                End If
  18.            End If



Potete dirmi dove sbaglio :-|


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 22:19
Venerdė, 08/08/2008
Testo quotato

Postato originariamente da Thejuster:

Codice sorgente - presumibilmente Delphi

  1. If operazione = "selettore" Then
  2.  
  3.             ' se il muose su X e superiroe di 240
  4.            If msx > 240 Then
  5.                  'ma se non e minore di 230
  6.                 If msx < 230 Then
  7.                     'e se il mouse su Y e superiroe a 179
  8.                    If msy > 179 Then
  9.                       'ma non supera il 240
  10.                         If msy < 240 Then
  11.  
  12.                             MsgBox("sei nell'area del selettore")
  13.  
  14.  
  15.                        End If
  16.                    End If
  17.                End If
  18.            End If



Potete dirmi dove sbaglio :-|



certo che se msx č maggiore di 240 come fa ad essere minore di 230??? e cosi il resto.
Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2.         Dim y As Integer
  3.         i = 235
  4.         y = 210
  5.         If i < 240 And i > 230 And y < 240 And y > 179 Then
  6.             MsgBox("ok")
  7.         else
  8.            MsgBox("sei fuori")
  9.         End If



non conosco bene il vb.net ma & serve per legare due stringhe per usare l'opertore logico and si scrive And.

Ultima modifica effettuata da Overflow il 08/08/2008 alle 22:23
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2331
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 23:59
Venerdė, 08/08/2008
Nulla da fare.

Ho appena riprovato e stranamente come volevasi dimostrare mi da sempre sei fuori.

anche se le cordinate sono messe prefettamente bene.

mi da sei fuori.

lol

mi spiegate sta cosa :-|?



Bhe qui di sicuro c'č qualcosa che non quadra
allora il calcolo dovrebbe essere codesto


Ho una HotSpot renderizzata dalle directX
e mi delimita un quadrato virtuale il quale sarebbe quel triangolo che permette di spostarsi se si vā a cliccare in quell'area delimitata

l'area delimitate misure massime e


Asse X  ( Orizzontale )

Inizia dal pixel 240 e finisce al pixel 179

Asse Y ( Verticale )

Inizia dal pixel 240 e finisce al pixel 230


recapitolando

240        280
<---------->
^ 240
|
|
|
|
V--230


Se il puntatore del mouse all'interno di quest'area virtuale e clicco va ad eseguirmi quest'azione ma come avete visto da sempre errore

http://img291.imageshack.us/img291/3261/immaginetm5.png


riguardando la screenshot capisco che qualcosa non va nel calcolo che ho fatto

qualcun'altro potrebbe illuminarmi? grazie mille:rotfl:

Ultima modifica effettuata da Thejuster il 09/08/2008 alle 0:18


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:48
Domenica, 10/08/2008
Secondo me stai facendo un po' di confusione con le coordinate:
Codice sorgente - presumibilmente Plain Text

  1. X = 0 --------------> X = Max
  2. Y = 0
  3.   |
  4.   |
  5.   |
  6.   |
  7.   |
  8.   |
  9.  \./
  10. Y = Max


Le condizioni sono:
Codice sorgente - presumibilmente Delphi

  1. If (X > Xmin And X < Xmax) And (Y > Ymin And Y < Ymax) Then ...



Oppure, se hai un Rectangle che delimita la regione di schermo che vuoi puoi fare cosė:
Codice sorgente - presumibilmente VB.NET

  1. Dim Rect As Rectangle
  2. '...
  3. Dim Region As New Region(Rect)
  4.  
  5. If Region.IsVisibile(msx, msy) Then ...


PM Quote