Macca96 (Normal User)
Rookie
Messaggi: 26
Iscritto: 08/01/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
|
|
Umberto (Member)
Pro
Messaggi: 156
Iscritto: 27/09/2011
|
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.
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
|
|
Macca96 (Normal User)
Rookie
Messaggi: 26
Iscritto: 08/01/2013
|
grazie per le risposte... ora provo la soluzione di Marco e poi vi faccio sapere
|
|
Macca96 (Normal User)
Rookie
Messaggi: 26
Iscritto: 08/01/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
|
|
torn24 (Normal User)
Pro
Messaggi: 156
Iscritto: 04/01/2008
|
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
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 |
|
Macca96 (Normal User)
Rookie
Messaggi: 26
Iscritto: 08/01/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
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
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 |
TYPE tMouseDati h AS INTEGER ' coordinata x' v AS INTEGER ' coordinata y' b AS INTEGER ' bottone premuto END TYPE ... ' La funzione diventa: SUB mouse (Funk AS INTEGER, t AS tMouseDati) STATIC Crsr 'Track whether Cursor is shown. IF Funk = 1 THEN Crsr = 1 'Show Cursor. IF Funk = 2 AND Crsr = 0 THEN EXIT SUB 'Don't hide Cursor more than once. IF Funk = 2 AND Crsr = 1 THEN : Crsr = 0 'Hide Cursor. POKE 100, 184: POKE 101, Funk: POKE 102, 0 'Poke machine code necessary for POKE 103, 205: POKE 104, 51: POKE 105, 137 'using the mouse into memory POKE 106, 30: POKE 107, 170: POKE 108, 10 'starting at offset 100 in the POKE 109, 137: POKE 110, 14: POKE 111, 187 'current segment. This code is POKE 112, 11: POKE 113, 137: POKE 114, 22 'then executed as a unit, via the POKE 115, 204: POKE 116, 12: POKE 117, 203 'statement " Call Absolute ". CALL Absolute(100) 'Call machine code. t.b = PEEK(&HAAA) 'Get values for Buttons. t.h = (PEEK(&HBBB) + PEEK(&HBBC) * 256) 'Horizontal position ( 2 bytes ). t.v = (PEEK(&HCCC) + PEEK(&HCCD) * 256) 'Vertical position ( 2 bytes ). END SUB
|
|
|