Newsgroup: it.comp.lang.delphi
Titolo: Sempre sul click del mouse...

Salve,
già mi avete aiutat dicendo che posso simulare un click del mouse
appoggiandomi all'API mouse-event.....il problema ora è che speravo di
capire leggendo l'help come richiamare un API, cosa che non ho mai fatto, e
non ci ho trovato nulla di chiaro e nessun esempio sopratutto.
Pensavo quindi di cheidervi se potevate aiutarmi ancora spiegandomi in poche
parole come potevo implementare la cosa....con qualceh stringa di codice
insomma di esempio.
Altra cosa...cercando e ricercando nell'help è sbucato fuori una funziona
che sembra fatta apposta per simulare il click del mouse...mi riferisco a
tale TBitBtn.Click che viene descritto come:
"Simulates a mouse click, as if the user had clicked the button.
procedure Click;
Description
When Click is called, any code attached to the OnClick event is executed.
If the value of the Kind property is bkClose, calling Click closes the form.
If the value of Kind is bkHelp, calling Click displays the Help screen
assigned with the HelpContext property to the bitmap button. If Kind has any
other value, the inherited Click method is called."
..perchè nessuno me ne aveva parlato? ha delel controindicazioni? Funziona
anche per pilotare applicazioni esterne (l'uso che devo farne)? O forse non
c'entra niente?
Grazie.
--
Giulio Pipitone (
www.fighters4web.com
 )
#sito per la lotta agli abusi in rete#

uses shellAPI
...
button1.onclick(self);
simula la pressione del button1
il resto non ho letto x' adesso mangio ;)
(dovrebbe andare ma nn ho tempo di controllare adesso x il motivo sopra)


e bastaaaaaaaaa co sto click del mouse :)))))

 ..perchè nessuno me ne aveva parlato? 
Perche' probabilmente nessuno ha capito esattamente di cosa hai
bisogno.  Se il tuo scopo e' quello di forzare il click di un
bottone nella tua stessa applicazione, allora invoca pure l'OnClick
del bottone:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button2Click(nil);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('Button2 Premuto !');
end;
SendInput o la spedizione di un messaggio possono essere usati
se, invece, la tua applicazione vuol simulare il click di un
bottone posto sulla finestra creata da un'altra applicazione.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Giulio Pipitone (
www.fighters4web.com
 )
Andrea

 Quindi non c'entra niente con quello che vuoi fare tu.
Non e' detto: puo' darsi che cio' che cio' che l'OP cerca
sia esattamente richiamare il metodo Click di un particolare
bottone, all'interno della sua stessa applicazione.


 bottone, all'interno della sua stessa applicazione.
Guarda che nel post originale del thread lui dice ESPRESSAMENTE E SENZA
POSSIBILITA' DI FRAINTENDIMENTI :
"..perchč nessuno me ne aveva parlato? ha delel controindicazioni? FUNZIONA
ANCHE PER PILOTARE APPLICAZIONI ESTERNE( L'USO CHE DEVO FARNE )?"
Quindi per l'uso che deve farne, NON VA BENE. CHIUSO l'argomento.
Andrea

 POSSIBILITA' DI FRAINTENDIMENTI :
Nel post originale del thread, Ciappi chiede:
"avrei bisogno di sapere come si fa a inviare un click sinistro del
mouse....vorrei insomma poter poter impsotare il comando: "clicca col
sinistro" che deve interagire proprio come se il click fosse venuto dal
mouse...."
Non c'e' alcun accenno ad applicazioni esterne ed inoltre il
nostro amico, successivamente, chiede se funziona *ANCHE* per 
applicazioni esterne, il che non vuol dire che lo debba 
utilizzare esclusivamente per esse.
E' per questo motivo che, come ho scritto nel messaggio precedente,
se ha bisogno di utilizzare il metodo per la sua stessa applicazione,
va bene eccome.


 ANCHE PER PILOTARE APPLICAZIONI ESTERNE( L'USO CHE DEVO FARNE )?"
Sorry, non ho letto "l'uso che devo farne".
Il consiglio precedente, in ogni caso, rimane valido.


 ad altre istanze.
Infatti io non ho detto "agiscono" ma "possono agire" che č cosa BEN diversa
:)
Andrea

 :)
"Ogni classe ha i suoi metodi specifici che agiscono all'INTERNO della
singola classe" [The DeerBeer].


 singola classe" [The DeerBeer].
Ok, ho scritto di fretta( pensavo davvero di aver scritto possono agire ),
cmq io non bevo( o
meglio, non così tanto... :) ).
Andrea

 Il consiglio precedente, in ogni caso, rimane valido.
Certo, se deve farne un uso nella sua applicazione E sceglie di usare un
oggetto di tipo TBitBtn nessuno gli vieta di usare la Click. Ma sempre e
solo in quest'ambito, perň!
Cmq nessuno č perfetto!!!!!
Andrea

 oppure impostarne una sua proprietà
Ribadisco: non e' cio' che si intende per comunicazione.
Ciao.


 Ciao.
Ciao,
Andrea

 Questa non č comunicazione?
Se la metti su questo piano, anche lanciare un processo e'
comunicazione, anche accendere le casse e' comunicazione,
anche spegnere il PC e' comunicazione.  Una cosa e' impostare
lo stato di un oggetto, un'altra cosa (BEN diversa) e' fare
comunicare tra loro due o piu' oggetti.
Spero di mettere il punto a questa discussione inutile.


Ti può essere utile questo codice?
xx := SendMessage ( MioBottone.Handle, WM_LBUTTONDOWN, xpos, ypos );
dove tutto l'help lo puoi trovare posizionando il cursore su 
WM_LBUTTONDOWN e facendo F1 (the hard way)
Un piccolo aiuto: MioBottone può essere un oggetto qualsiasi della tua 
form che risponde all'evento left button click. Handle è il numero 
identificatore in Windows per quel particolare oggetto.
Ma anche (e qui si aprirebbe un altro discorso) puoi recuperare l'Handle 
della form principale di un altro programma (Applicazione) che è attiva 
in quel momento e mandargli il messaggio alla posizione [xpos, ypos] 
relativa all'origine dell'Handle.
Con un po' di fortuna e di prove e di ricerca su qualche libro (e 
leggeteli!!! ;) ) trovi la soluzione a quel che ti serve.
--
La soluzione ha senso o fa senso?
(cit. Prof. Galligani)

 leggeteli!!! ;) ) trovi la soluzione a quel che ti serve.
Ne ho due di manualoni sul delhpi ma nessuno riporta indicazioni che mi
possnao essee d'aiuto...e neanche in portali piů o meno noti ho trovato
esempi o forum che mi chiarissero il problema...
Se riuscissi a spiegarmi in altre parole cosa intendevi dirmi....grazie.
--
--
Giulio Pipitone (
www.FIGHTERS4WEB.COM
)
#mirror italiano ufficiale 
http://spam.abuse.net#

 ha scritto nel messaggio
news:7a12705b0e7a5b492ff...@mygate.mailgate.org...


 Se riuscissi a spiegarmi in altre parole cosa intendevi dirmi....grazie.
Sto' cercando... Se devi "simulare" un click sulla tua applicazione o 
dalla tua applicazione su un'altra.
Devi far vedere all'utente che avviene un "click"? Es. un programma 
tutorial in cui si vede il mouse che va sul pulsante, si sente il suono 
"click", il pulsante che si abbassa, resta pigiato un istante, il 
pulsante che si alza ed avviene l'evento associato?
Forse se rispieghi qual'è il problema applicativo (ho perso l'inizio del 
3d) si può ragionare se la soluzione che hai scelto "ha senso o fa senso"...
Ciao.
Mimmo.

.....


 il sendmessage.
Quindi nel Task Manager lo vedi come una applicaione separata? Allora 
devi trovare l'handle alla Main Form dell'applicazione.
Sottomano non ho il codice di come si fa. Mi sembra che ci sia sul 
Texeira and Pacheco e anche sul libro di Cantù.
Poi devi fare una trasformazione di coordinate dal sistema di 
riferimento della tua applicazione al sistema di riferimento della 
applicazione destinazione. Il punto (0,0) è sempre il punto in alto a 
sinistra della finestra. A questo scopo si usano le funzioni 
ClientToScreen() e ScreenToClient().
A questo punto dovresti avere tutte le informazioni.
In bocca al lupo !