Newsgroup: it.comp.lang.visual-basic
Titolo: Click del mouse

Ciao a tutti,
esiste un modo furbo di rilevare il click del mouse? ... mi spiego meglio
...
Se in un form ho n controlli e faccio un click su un controllo, l'evento
click mi viene generato solo per
quelo controllo, io vorrei rilevare l'evento click del form in generale e a
run time capire quale controllo e' stato clickato.
grazie a tutti


Ecco, a meno che tu non debba rilevare tutte le operazioni del mouse, 
non e' proprio un modo "furbo".
Devi impelagarti in chiamate api non proprio semplici che, permettimi, visto
il tipo di domanda, per adesso potremmo tralasciare.
Piuttosto, cosa vorresti fare, esattamente ?
ciao, hal

 wrote in message
9fh7ou$43tpj$1...@ID-56381.news.dfncis.de...

Il problema mio e' questo:
l'interfaccia del programmino che sto facendo contiene fondamentalmente solo
FlexGrid che devono essere aggiornate, scritte, ecc... (praticamente e' una
specie di interfaccia verso un database); la mia idea era di avere un
piccolo codice nel .frm generale per tutte le FlexGrid nel quale compongo
una stringa di chiamata specifica per la singola FlexGrid clicckata,
editata, ecc... e la singola procedura la scrivo in un modulo.
Tutto questo arzigogolo mi e' venuto in mente perche' non so' bene quante
FlexGrid ci saranno alla fine, e quindi non me la volevo menare a fare
codice tutto uguale di risposta agli eventi; in pratica se devo aggiungere
un altro controllo mi basta aggiungere una procedura con un nome particolare
nel moduletto e il gioco e' fatto (o almeno credo...); spero di essere stato
abbastanza chiaro.
A tutt'oggi ho un altro problema che credo sia frutto della mia inesperienza
in VB: la chiamata alla EbExecuteLine della Vba6.dll funziona se eseguo il
programma da VB ma mi da un errore di RunTime una volta compilato; ho
installato il SP5 di visual studio ma il problema e' rimasto; ti e' gia'
capitato?
Grazie mille


Grazie veramente per il suggerimento, cerchero' al piu' presto di
implementare (se ce la faccio); se ti puo' interessare metti in un modulo il
codice:
Declare Function EbExecuteLine Lib "vba6.dll" _
 (ByVal pStringToExec As Long, ByVal Foo1 As Long, _
  ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long
Function FExecuteCode(stCode As String, _
                      Optional fCheckOnly As Boolean) As Boolean
    FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly))
End Function
Se chiami la funzione FExecuteCode(...una stringa qualsiasi...) questa
stringa viene eseguita come fosse una funzione, con questa cosa qui si puo'
realizzare una specie di puntatore a funzione (circa), se non avesse il
problema che ti ho descritto in precedenza; quello che non capisco e' che,
dopo una ricerca in rete, ho scoperto che con questa funzione alcuni hanno
dei problemi (anche diversi dal mio) ed altri nessun problema (...vai a
fidarti delle dll)
Cerco qualcuno che sia riuscito a venirne fuori.
Grazie
Alessio


Grazie per l' informazione.
Grazie al tuo esempio ed all' efficacia di Google ho scoperto che:
Google:
---> 
http://www.shadoware.de/vb/execute_string.html
da cui:
"
Achtung: 
Leider funktioniert diese API-Funktion derzeit nur in der Entwicklungsumgebung, 
nicht in kompilierter Form. 
^^^^^^^^^^^^^^^^^^^^
Falls Sie eine Idee haben, wie dieses Problem zu lösen ist, 
mailen Sie mir bitte.
^^^^^^^^^^^^^^^
"
Quindi non risulta funzionare in codice compilato ed anche l' autore dell' articolo,
tale Thomas Bachem, gradirebbe essere informato via mail 
(Webm...@SHADOWare.de?subject=VB: Code in Strings ausführense)
se qualcuno scopre una soluzione.
Ho anche provato a copiare vba6.dll
nella system32, ma e' partito il debugger :(
ciao, hal

Ho scritto ieri all'autore del codice, che mi ha risposto (in inglese!) che
sul suo sito c'e' scritto che il codice gira solo nell'IDE di VB e non nel
codice compilato. Mi viene in mente: chissa' se da VC si puo' far
funzionare? O se si puo' capire qualcosa di piu' su questa benedetta
funzioncina?
Grazie di tutto.
Ciao