maurizio74 (Normal User)
Pro
Messaggi: 115
Iscritto: 30/03/2009
|
Ciao a tutti mi chiedevo se fosse possibile far attivare un immagine bitmap
inserita nella picture di un command premendo i tastierini numerici della tastiera del computer????
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
E poi dimmi che non è un trip.
Se il command (con Style=Graphical) non ha già una immagine o se ce l'ha ma la vuoi cambiare
Command.picture = LoadPicture(indirizzo della picture)
oppure
Command.picture=Image1.Picture (deposito della nuova immagine
Se la vuoi togliere
Command.picture = LoadPicture()
Come operare dipende da che versione della calcolatrice sei arrivato .
In teoria dovresti simulare un MouseDown dove caricare la nuova immagine e un MouseUp dove caricare la vecchia.
|
|
Louis (Normal User)
Pro
Messaggi: 150
Iscritto: 22/04/2008
|
In alternativa di quanto segnalato da Alfonso, potresti utilizzare ImageList, nel seguente modo.
Poniamo d'avere una Txt ove vengono inseriti i numeri e d'aver caricato l'ImageList con indice corrispondente ad ogni numero:
Codice sorgente - presumibilmente Delphi |
If Val(Text1.Text) = 1 Then Set Command1.Picture = ImageList1.ListImages(1).Picture If Val(Text1.Text) = 2 Then Set Command1.Picture = ImageList1.ListImages(2).Picture If Val(Text1.Text) = 3 Then Set Command1.Picture = ImageList1.ListImages(3).Picture ' .......
|
|
|
maurizio74 (Normal User)
Pro
Messaggi: 115
Iscritto: 30/03/2009
|
non sò come fare fare ??? mousedown mouseup che cosa form o number???
e come faccio a caricare devo mettere es. number=c\documnti\immagine ecc.???
altra cosa come li richiamo col tastierino numerico del computer???
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Se tu cliccassi sui tasti dei numeri potresti usare gli eventi mouse_down e mouse_up dei pulsanti.
Ma tu chiedi cosa fare usando i tasti numerici della tastiera allora puoi usare i KeyDown e keyUp dei pulsanti.
Quando ho scritto simulare, intendevo una subroutine dove metti il codice per cambiare la bitmap del pulsante in modo da avere lo stesso effetto in entrambe le situazioni.
Codice sorgente - presumibilmente VB.NET |
Private Sub TastoGiu (index as integer) Command(index).Picture = LoadPicture(indirizzo della picture "tasto abbassato-index") end sub
|
index potrebbe essere il numero premuto o cliccato.
Le immagini, finchè non funziona tutto, lasciale nella cartella della tua applicazione.
Poi potrai studiarti l'ImageList.
Ultima modifica effettuata da Alfonso il 21/01/2010 alle 17:45 |
|
maurizio74 (Normal User)
Pro
Messaggi: 115
Iscritto: 30/03/2009
|
grazie per le risposte però non ho capito il codice che devo mettere in keydown???
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Se non è cambiato niente dall'ultima tua versione aggiungi:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim Index As Integer Select Case KeyCode Case Asc("0") To Asc("9") Index = KeyCode - Asc("0") TastoGiu Index End Select End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Dim Index As Integer Select Case KeyCode Case Asc("0") To Asc("9") Index = KeyCode - Asc("0") TastoSu Index End Select End Sub Private Sub Number_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) TastoGiu Index End Sub Private Sub Number_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) TastoSu Index End Sub Private Sub TastoGiu(Index As Integer) Number(Index).Picture = ImageGiu.Picture End Sub Private Sub TastoSu(Index As Integer) Number(Index).Picture = ImageSu.Picture End Sub
|
|
|
maurizio74 (Normal User)
Pro
Messaggi: 115
Iscritto: 30/03/2009
|
Ti ringrazio tantissimo per la tua pazienza, l'unica cosa che non ho capito adesso è:
allora io ho i numeri della calcolatrice che sono fatti di command e si chiamano "number"
adesso io cosa devo fare creare altri command doppioni e chiamarli tastogiu e tastosu o praticamente non c'ho capito niente???'
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
La seconda è quella giusta!!
TastoGiu e TastoSu sono due subroutine (servono ad impostare la bitmap dei pulsanti number) che sono richiamate:
1- dagli eventi Mouse_Down e Up dei pulsanti Number quando ci clicchi sopra
2- dagli eventi Keydown e Keyup della form quando premi i tasti numerici della tastiera.
Rispetto all'ultima versione del tuo programma, sono tutti pezzi di codice che non esistevano e vanno aggiunti nel codice della form CALC
|
|