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
Pascal - Problema Mouse
Forum - Pascal - Problema Mouse

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Buongiorno, sto realizzando un progetto LEGGERMENTE complesso e volevo renderlo un pochino più user friendly, e tra varie migliorie mi sembrava giusto aggiungere la funzionalità del mouse.
So già che esiste una unità chiamata mouse.TPU e mi sono documentato sul sito free Pascal org doc lib rtl o quello che è. Non è grande quindi mi sono quasi studiato a memoria le procedure/funzioni che contiene.
Ora viene il problema. Ho scelto di arrendermi ad usare FPC su dosbox in quanto presenta diverso problemi di compatibilità, nonostante mi sembri più "puro" rispetto ai programmi per windows.
Oggi inizio a pensare che la scelta di usare dev Pascal che compila per prompt dei comandi (in realtà scrivo con geany e con dev compilo solo, ma non c'entra) non sia più tanto migliore, in quanto ha un altro problema grave che ne compromette l'usabilità in alcuni progetti: NON va il MOUSE!!!  D: :grr:

Mi sono sbattuto più di un'oretta su internet senza trovare alcunché di rilevante, quindi vorrei chiedere a voi saggi.
E prometto che questa sarà l'ultima volta che userò Pascal e poi passerò al C.

SI può usare in qualche modo il mouse in programmi Pascal sotto Windows, ovvero emulati via prompt dei comandi????

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:58
Sabato, 02/08/2014
Ciao!

Prova questo semplice programma:
Codice sorgente - presumibilmente Delphi

  1. Program TestMouse;
  2. Uses crt, mouse;
  3.  
  4. Var evento:TMouseEvent;
  5.  
  6. begin
  7.   InitMouse;
  8.   Writeln('Move mouse cursor to square 10,10 to end');
  9.   textColor(3);
  10.   Repeat
  11.     GetMouseEvent(evento);
  12.     goToXY(1, 3);
  13.     write(' X,Y= (',evento.X:3,',',evento.Y:3,') Bottone: ',evento.buttons);
  14.     write(' azione: ',evento.action:3);
  15.   Until (evento.X=10) and (evento.Y=10);
  16.   DoneMouse;
  17.   textColor(7);
  18.   writeln; writeln; write('Fine... ');
  19.   readln; writeln;
  20. end.

Funziona correttamente ?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:10
Domenica, 03/08/2014
Testo quotato

Postato originariamente da Poggi Marco:

Ciao!

Prova questo semplice programma:
Codice sorgente - presumibilmente Delphi

  1. Program TestMouse;
  2. Uses crt, mouse;
  3.  
  4. Var evento:TMouseEvent;
  5.  
  6. begin
  7.   InitMouse;
  8.   Writeln('Move mouse cursor to square 10,10 to end');
  9.   textColor(3);
  10.   Repeat
  11.     GetMouseEvent(evento);
  12.     goToXY(1, 3);
  13.     write(' X,Y= (',evento.X:3,',',evento.Y:3,') Bottone: ',evento.buttons);
  14.     write(' azione: ',evento.action:3);
  15.   Until (evento.X=10) and (evento.Y=10);
  16.   DoneMouse;
  17.   textColor(7);
  18.   writeln; writeln; write('Fine... ');
  19.   readln; writeln;
  20. end.

Funziona correttamente ?




nuoooo!!!! MITICO! MICIDIALE!!!:hail:

potrei per favore avere qualche informazione in più su qquesto "meccanismo"? giusto per curiosità :)
io facevo solo x:=getmousex e non funzionava!

grazie mille!!!:k:

PS: ho notato che evento è un record...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:43
Martedì, 19/08/2014
scusate, mea culpa.

sono abituato a leggere sulla documentazione solo le procedure e funzioni, non i tipi e tutta quella roba lì che non mi piace. penso che dovrò iniziare.

non mi sono accorto che nel tuo programma hai messo tutti gli attributi del record, bello!

qui è tutto quello che hai detto, completo:
http://www.freepascal.org/docs-html/rtl/mouse/tmouseevent. ...

certo, non dice proprio tutto, come ad esempio in questo caso non specifica i valori di "action", ma mi basta di gran lunga questo. grazie ancora

PM Quote
Avatar
Bonnox (Member)
Pro


Messaggi: 85
Iscritto: 23/08/2014

Segnala al moderatore
Postato alle 20:07
Martedì, 02/09/2014
sperando di fare del bene a qualcuno, vi riporto i miei stati del mouse. possiamo contribuire tutti al miglioramento di questa tabella database! =D



riepilogo azioni mouse:

0: stazionamento (rimane 0 anche se si muove il cursore di windows all'interno di un "pixel" dos)

1: pressione di un tasto

    1: sinistro

    2: destro

    4: rotella centrale premuta

2: compare subito dopo la pressione di un tasto ma non so cosa significhi

3: non lo ho incontrato

4: movimento (attraversamento di più "tiles")

Ultima modifica effettuata da Bonnox il 02/09/2014 alle 20:31
PM Quote