Newsgroup: it.comp.appl.access
Titolo: ApiGetFocus Casella di Riepilogo

Ciao a tutti, mi sono imbattutto in un problema nel codice che mi sta dando 
Access 2007, la versione 2003 funzionava perfettamente.
Devo eseguire lo scroll di un certo numero di righe di una casella di 
riepilogo di un certo numero di righe.
Eseguendo doppio click su una riga il programma apre una maschera 
corrispondente al record selezionato per eventuali modifiche, operazione che 
può essere fatta anche evidenziando con il mouse una riga e premendo un 
tasto di Modifica.
Al riapparire della maschera con la casella di riepilogo devo eseguire lo 
scroll di un certo numero di righe, per far ciò utilizzo il comando API 
Sendmessage che però richiede come parametro l'handle della casella di 
riepilogo che cerco di ottenere con la funzione ApiGetFocus, e qui esce 
fuori il problema:
se seleziono la riga e poi premo il pulsante di modifica, al riapparire 
della maschera con la casella di riepilogo trova l'handle correttamente, se 
invece eseguo doppio click al ritorno il comando ApiGetFocus mi restituisce 
sempre 0.
Ho provato in tutti i modi ad aggirare il problema ma niente da fare.
Da sottolineare che l'evento doppio click non fa altro che eseguire il 
comando modifica_click e da questo punto in poi il codice è unico.
Non so se sono stato chiaro, posso anche allegare parti di codice in seguito 
se può essere utile.
Grazie in anticipo
Ungi 


Forza il Focus al ritorno prima di fare il GetFocus...!
Me!nomeList.SetFocus
poi usa la chiamata per il recupero dell'hWnd....
@Alex

@Alex
Già fatto, ma purtroppo nessun risultato.
Anche se forzo il focus sulla casella di riepilogo e subito dopo chiedo 
l'handle, se si torna da un doppio click mi dà sempre il valore dell'handle 
=0 e quindi la funzione SendMessage che deve operare lo scroll non sa su 
cosa operare.
E' come se andasse in tilt dopo un doppio click.
Se invece forzo il focus con il mouse, nel senso che faccio un singolo click 
con il mouse su una riga della casella di riepilogo, il recuper dell'handle 
funziona: c'è un modo per simulare da codice il click del mouse, oppure 
qualche altra funzione per effettuare lo scroll?


Utilizzi questo per trovare l'hWnd..?
http://www.mvps.org/access/api/api0027.htm
Per il resto mi sembra tutto strano...
@Alex

@Alex
Esatto, ho usato proprio quel codice.
A questo punto penso sia un bug del 2007, lo stesso codice col 2003 
funzionava benissimo.

 ha scritto nel messaggio 
news:4811bc2a$0$18155$4faf...@reader3.news.tin.it...

Più tempo passa e più mi convinco che microsoft intende abbandonare Access o 
perlomeno far migrare verso sql server e visual studio.
Ciao, Carlo 


Dimenticavo, la Casella di Riepilogo è impostata in modalità selezione 
multipla estesa.
Nel caso di selezione multipla impostata a Nessuna il problema non si pone, 
anche perchè in questo caso è possibile utilizzare la proprietà Listindex 
del controllo senza usare le Api, come spiegato sul sito di Lebans:
http://www.lebans.com/List_Combo.htm
 

 ha scritto nel messaggionews:4811bc2a$0$18155$4faf...@reader3.news.tin.it...

Sinceramente è da un pò che la penso come te... o almeno che ho questa
impressione, anche se in realtà MS sembra tenere il piede in 2 o più
scarpe... vedi il Blog di Clint Covington e derivati...!
Personalmente avevo iniziato circa 1 anno fà ad usare 
VB.NET
 per il
quale è effettivamente tutt'altro mondo... e per gli appassionati di
programmazione oggetti li c'è da sbizzarrirsi... a tutti i livelli.
Il problema è che nel frattempo mi sono anestetizzato... ed ho mollato
praticamente tutto... ;-)
Chiassà che nell'attesa qualche cosa si stabilizzi.
@Alex

 perlomeno far migrare verso sql server e visual studio.
Più  o meno le stesse cose che si scrivevano dieci anni fa; eppure...
Ciao: Oscar     ;-)

 ha scritto nel messaggio 
news:481211a4$0$41660$4faf...@reader4.news.tin.it...

Figurati! Sono il primo ad augurarmi che si vada verso un miglioramento e un 
potenziamento di Access ma, temo, questa volta si faccia sul serio.
Non verrà completamente abbandonato, questo no, è troppo importante nella 
sua collocazione, riuscendo egregiamente a coprire le esigenze di 
programmatori di database medio/piccoli.
A mio avviso VBA ha fatto il suo tempo, bisogna aprirsi ai nuovi framework, 
cominciando a parlare di .VBA.
Sembra che si sia voluto spingere verso l'utilizzatore non professionista a 
parte l'uso con SharePoint.
Anche il Jet non ha subito sostanziali modifiche fatta eccezione per i campi 
multivalore, l'oggetto Field2 con Load e SaveToFile.
Completamente modificati, invece, i report.
A mio avviso si vuole spingere i programmatori a passare a database server 
side come MySQL o SQL Server, lasciando Access agli utilizzatori entry level 
o personali.
Staremo a vedere...
Ciao, Carlo 

 ha scritto nel messaggionews:481211a4$0$41660$4faf...@reader4.news.tin.it...

Parlo da completo ignorante...
Per quanto ho visto... NET è veramente uno strumento che fa
impressione.
Anche con NET la semplicità di realizzare un'applicativo funzionale
con poco tempo è impagabile... a mio avviso ha inglobato la grossa
potenzialità di Access in questo senso.
Il problema è che, si è pur semplice, ma non così semplice....
pertanto non è avvicinabile dagli utenti EntryLevel.
Per quelli, che poi sono veramente in molti, Access rimarrà il solo
strumento.
JET è un DB che in locale non ha rivali ed a mio avviso già da quando
MS ha distribuito la versione Express con O2000, nel quale peraltro
aveva rimosso i riferimenti a DAO, aveva dato un segnale forte... ma
JET rimane JET ed in locale non ha rivali.
Chiaro che per gestioni MultiUtente strutturate come Clinet-Server
ritengo che sia lo sviluppatore serio a dover essere il primo a fare
la scelta del DB... che nonostante si dica che JET in rete funziona...
sappiamo bene che le sue lacune, senza elencarle, possono essere
troppo penalizzanti...
Chi ha provato il NET credo non abbia difficoltà a capire veramente
cosa stà accadendo per chi sviluppa a livelli discreti...
@Alex

 ha scritto nel messaggio 
news:57a5186e-7817-4a5a...@a22g2000hsc.googlegroups.com...
Parlo da completo ignorante...
Per quanto ho visto... NET è veramente uno strumento che fa
impressione.
Anche con NET la semplicità di realizzare un'applicativo funzionale
con poco tempo è impagabile... a mio avviso ha inglobato la grossa
potenzialità di Access in questo senso.
Il problema è che, si è pur semplice, ma non così semplice....
pertanto non è avvicinabile dagli utenti EntryLevel.
Per quelli, che poi sono veramente in molti, Access rimarrà il solo
strumento.
JET è un DB che in locale non ha rivali ed a mio avviso già da quando
MS ha distribuito la versione Express con O2000, nel quale peraltro
aveva rimosso i riferimenti a DAO, aveva dato un segnale forte... ma
JET rimane JET ed in locale non ha rivali.
Chiaro che per gestioni MultiUtente strutturate come Clinet-Server
ritengo che sia lo sviluppatore serio a dover essere il primo a fare
la scelta del DB... che nonostante si dica che JET in rete funziona...
sappiamo bene che le sue lacune, senza elencarle, possono essere
troppo penalizzanti...
Chi ha provato il NET credo non abbia difficoltà a capire veramente
cosa stà accadendo per chi sviluppa a livelli discreti...
@Alex
---------------------------------------
E' esattamente quello che penso anche io.
Mi sa che dobbiamo veramente cominciare a rimboccarci le maniche e fare il 
grande passo.
Ciao, Carlo 

 Staremo a vedere...
?
Mhmmm: guarda che Access ha sempre lavorato benissimo con SQL Server   :-)
Tu usi solo gli .mdb come BE?
Ciao: Oscar


Ciao, Carlo 

 E' proprio di quest'ovvio che si parla: perchè non cominciare da subito?
Ribalterei la domanda: perchè vorresti cominciare subito?
Se avessi l'esigenza di trasformare "Frantoio" (esempio pratico) in
applicativo web, allora buttati: 
ASP.NET
 fa per te.
E' quella l'esigenza?
O invece vorresti sbatterti due anni per rifare con le windows forms
un'applicazione identica a quella che già hai?
In tal caso, quali vantaggi avresti rispetto ad oggi?
Ciao: Oscar


wrote:

Capisco il punto di vista di Oscar che peraltro condivido...!
Il pregresso non ha senso di essere reingegnerizzato... se non con lo
scopo di fare ESERCIZIO finalizzato al cambio di sistema...!
Come dice Oscar la grossa differenza di NET la fanno le applicazioni
WEB... rese quasi scolastiche rispetto al passato.
C'è da dire però che per quanto ho potuto vedere partire da ZERO con
un'applicativo in NET è relativamente difficile, e personalmente solo
nell'ottica di affrontare un NUOVO gestionale mi orienterei verso
NET...!
Chiaro che dipende anche dai tempi in cui si deve fornire il lavoro
OPERATIVO.
Per quanto ho visto, con NET anche per applicazioni DESK i vantaggi ci
sono... oggetti Bound, controlli Bound a tutti i livelli senza
necessità di INSTALLARE e/o REGISTRARE nulla, facilità di effettuare
UPGRADE del SW ecc, chiaro che lo scotto dello studio lo si deve
pagare... ma se lo si gestisce in parallelo arriva il momento in cui
si vede la differenza.
Non stò dicendo che uno sia meglio dell'altro... ma personalmente ho
trovato in NET cose che agevolano molto la gestione delle interfaccie
grafiche e funzionali, la stessa possibilià che si ha nelle form di
ereditarietà fa si che ci si possa costruire Form Base alle quali poi
far fare il BOUND dei controlli in modo estremamente semplice...!
Sono sicuramente esempi banali per chi sà di cosa parlo.... ma forse
poco comprensibili per chi non ha mai usato NET quindi chiudo la
parentesi.
La cosa può essere dubbia, a mio avviso, solo per applicativi ADP per
i quali i vantaggi di Access sono realmente ancora molto evidenti...
per prestazioni anche.
@Alex


Ciao: Oscar
P.S:
Non ci saranno problemi con gli aggiornamenti di programmi .NET? E chi l'ha
detto.
Se tu hai in giro applicazioni sviluppate col FWork 2002, e poi distribuisci
aggiornamenti che sfruttano features del FW *201X* ... vedrai che tanti
utenti dovranno aggiornarsi la virtual machine.
 Le stesse cose che capitano con Java.


Ciao, Carlo 

"Carlo Costarella"





Aaaaaaaaaah  Carlo, ma dovevi dirlo subito!   ;-)
Beh, c'è poco da dire: un'applicazione utilizzata in concorrenza a livello
web (potenzialmente su 300 postazioni di lavoro) è proprio carne da cannone
per 
ASP.ADO.NET
.
Certo, ammetterai che non è esattamente il tipico Target italiano, in cui
_ainoi_ la ditta media tende sempre più al lustrascarpe!
Aggiungo che, in generale, le richieste d'operatività su web sono ampiamente
compatibili con le caratteristiche di costo/prestazioni/sicurezza di un
Terminal Server (o, più economico, XPUnlimited che conosci meglio di tutti).
Ciao: Oscar

  Le stesse cose che capitano con Java.
Si questo è normale ma non dimenticare che alla base di NET c'è un
I.L. intermediate language.... pertanto questo è un'assunto...!
@Alex


Mah, è un discorso abbastanza ampio: si trovano Threads interessanti a
proposito.
Leggi questo, ad esempio:
http://groups.google.it/group/microsoft.public.it.office.access/browse_threa
d/thread/bffb70428528a9d1/c8ea52352696b412?hl=it&lnk=st&q=adp+lentissimi#c8e
a52352696b412
Ciao: Oscar

 Ciao: Oscar
@Alex


Ciao!
P.S:  Non è scontato che Carlo appartenga al 'generalmente'

 P.S:  Non è scontato che Carlo appartenga al 'generalmente'
E' assodato che se mi torna la passione io stia dall'altra
parte.... ;-)
@Alex


Purtroppo mi trovo costretto a imparare 
asp.net
 anche se non so proprio da 
dove iniziare...ho già postato un primo tread su 
Microsoft.public.it.dotnet.asp...me tapino!
Ciao, Carlo 

 ha scritto nel messaggio 
news:a4d09928-b849-49b9...@t63g2000hsf.googlegroups.com...
[cut]
Alex e Oscar ho trovato molto ma molto interessante questo articolo:
http://msdn2.microsoft.com/it-it/library/cc185052.aspx
Ciao, Carlo