Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
QBasic - Come posso utilizzare il mouse e creare una GUI in un programma di Qbasic?
Forum - QBasic - Come posso utilizzare il mouse e creare una GUI in un programma di Qbasic?

Avatar
Macca96 (Normal User)
Rookie


Messaggi: 26
Iscritto: 08/01/2013

Segnala al moderatore
Postato alle 14:44
Martedì, 30/04/2013
Ciao a tutti... come è possibile utilizzando il linguaggio basic creare una GUI con semplici tasti azionabili tramite il cursore del mouse?


spiegandomi meglio,
ciò che vorrei realizzare è un piccolo programma che tramite le  funzioni della grafica di qbasic crei uno o più pulsanti... questi tasti dovranno poi essere utilizzabili tramite il cursore del mouse, ed una volta premuti avviino una serie di processi e calcoli.... in poche parole vorrei creare un programma con una piccola interfaccia utente... un po' come avviene con visualbasic...

Quali funzioni permettono di utilizzare il mouse?
Come faccio a fare in modo che alla pressione di un tasto si avvii un processo?

p.s.
il programma deve essere programmato e deve girare sotto MS-DOS, ma non credo faccia molta differenza

Grazie in anticipo per le risposte

PM Quote
Avatar
Umberto (Member)
Pro


Messaggi: 156
Iscritto: 27/09/2011

Segnala al moderatore
Postato alle 17:04
Martedì, 30/04/2013
Non conosco il Qbasic ,ma potresti usare le shellgui con il comando shell siccome funzionano via line dei comandi le trovi tra i programmi del sito richiedono che tu abbia installato il python su mac e linux , per windows nella cartella c'è l' exe.


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:44
Martedì, 30/04/2013
Ciao!

Anche se un po criptico, e per certi versi discutibile, prova questo esempio:
http://www.instructables.com/id/Using-a-mouse-in-QBasic-pr ...


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Macca96 (Normal User)
Rookie


Messaggi: 26
Iscritto: 08/01/2013

Segnala al moderatore
Postato alle 20:59
Martedì, 30/04/2013
grazie per le risposte... ora provo la soluzione di Marco e poi vi faccio sapere

PM Quote
Avatar
Macca96 (Normal User)
Rookie


Messaggi: 26
Iscritto: 08/01/2013

Segnala al moderatore
Postato alle 21:37
Martedì, 30/04/2013
provando quel metodo, l'ho trovato un po' macchinoso, in quanto devo selezionare i casi per ogni tasto, per fargli riconoscere le coordinate...



frugando su internet, ho trovato Visual Basic 1.0 per il DOS (attenzione perchè c'è anche per windows, e il linguaggio non è compatibile)....
il visual basic moderno lo conosco... so come muovermi. questo sinceramente non lo riesco a far funzionare. magari sbaglio io.... riuscireste a trovarmi una guida? va bene anche in inglese...

Grazie

PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 138
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 9:06
Mercoledì, 01/05/2013
forse potrebbe esserti utile questo video, vb for dos . mentre per guide sembra difficile trovarne :)

http://www.youtube.com/watch?v=dEqWA_mmPCk



Se si impara dai propri sbagli
non è cosi drammatico  sbagliare !
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 11:45
Mercoledì, 01/05/2013
Una soluzione per utilizzare il mouse con qbasic, è quella di definire un tipo apposito per registrare i dati, e passarli alla funzione.
Nel Visual Basic 1.0, è presente una buona guida in linea ricca di esempi.

Ovviamente sono entrambi compilatori piuttosto datati, con funzionalità ormai obsolete ( soprattutto per la grafica ). E' quindi consigliabile utilizzare una macchina virtuale che simuli il DOS.
Esempio: http://www.dosbox.com/
Ecco qua la documentazione: http://www.dosbox.com/wiki/Basic_Setup_and_Installation_of_DosBox

Ultima modifica effettuata da Poggi Marco il 01/05/2013 alle 11:46


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Macca96 (Normal User)
Rookie


Messaggi: 26
Iscritto: 08/01/2013

Segnala al moderatore
Postato alle 14:08
Mercoledì, 01/05/2013
ciao marco... cosa intendi esattamente con "definire un tipo apposito per registrare i dati, e passarli alla funzione"?

comunque DosBox già lo uso in quanto Windows 7 mi manda errori a palate se provo ad eseguire un programma con la console

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 15:58
Mercoledì, 01/05/2013
Intendo definire un record che racchiuda le "proprietà" del mouse, ed usarlo localmente, invece di dichiarare delle variabili globali.

Esempio:
Codice sorgente - presumibilmente VB.NET

  1. TYPE tMouseDati
  2.  h AS INTEGER  ' coordinata x'
  3.  v AS INTEGER  ' coordinata y'
  4.  b AS INTEGER  ' bottone premuto
  5. END TYPE
  6.  
  7. ...
  8.  
  9. ' La funzione diventa:
  10.  
  11. SUB mouse (Funk AS INTEGER, t AS tMouseDati)
  12. STATIC Crsr                                                                    'Track whether Cursor is shown.
  13. IF Funk = 1 THEN Crsr = 1                                           'Show Cursor.
  14. IF Funk = 2 AND Crsr = 0 THEN EXIT SUB              'Don't hide Cursor more than once.
  15. IF Funk = 2 AND Crsr = 1 THEN : Crsr = 0              'Hide Cursor.
  16. POKE 100, 184: POKE 101, Funk: POKE 102, 0    'Poke machine code necessary for
  17. POKE 103, 205: POKE 104, 51: POKE 105, 137    'using the mouse into memory
  18. POKE 106, 30: POKE 107, 170: POKE 108, 10       'starting at offset 100 in the
  19. POKE 109, 137: POKE 110, 14: POKE 111, 187     'current segment.  This code is
  20. POKE 112, 11: POKE 113, 137: POKE 114, 22       'then executed as a unit, via the
  21. POKE 115, 204: POKE 116, 12: POKE 117, 203     'statement " Call Absolute ".
  22. CALL Absolute(100)                                                      'Call machine code.
  23. t.b = PEEK(&HAAA)                                               'Get values for Buttons.
  24. t.h = (PEEK(&HBBB) + PEEK(&HBBC) * 256)            'Horizontal position ( 2 bytes ).
  25. t.v = (PEEK(&HCCC) + PEEK(&HCCD) * 256)            'Vertical position   ( 2 bytes ).
  26. END SUB



Nulla va più veloce della luce, quindi rilassati.
PM Quote