Newsgroup: it.comp.appl.access
Titolo: form dove voglio io

ciao
sto cercando di aprire delle form pop up sotto al mouse, ma senza grandi
risultati
con MouseMove e docmd.moveSize riesco a muovere la detta formpop in funzione
della posizione del mouse
peccato che mousemove mi fornisca le coordinate relative al controllo in
questione
come posso sapere il top e il left di una form ?
form.top e form.left non esistono! eppure il manuale dice il contrario.. ma
non riesco più a ripescare quella pagina..
mi sapete aiutare?
grazie ciao!

 grazie ciao!
Arrabattando tra le API...., trovi alcune Routine che ricavano le 
coordinate reali della Form e la sua posizione all'interno della
risoluzione prevista....!
@Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

"il mago galbusera" <galb...@katamail.com.INDOVINACOSADEVITOGLIERE> ha
scritto nel messaggio news:ajqh2l$sck$1...@fe1.cs.interbusiness.it...

Questo il codice da copiare in un modulo pubblico:
Prevede che sia stata creata una maschera da aprire e (solo per esempio) si
chiama "TuaFormScelta":
Option Compare Database
Option Explicit
    Type POINTAPI
          X As Long
          y As Long
          End Type
      Global Const GWL_STYLE = (-16)
      Global Const WS_DLGFRAME = &H400000
      Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) _
           As Long
      Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
          (ByVal hwnd As Long, ByVal nIndex As Long) As Long
      Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
          (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong _
          As Long) As Long
Function ShowPopup()
         Dim coord As POINTAPI
         Dim attr&
         GetCursorPos coord
         DoCmd.OpenForm "TuaFormScelta"
         attr& = GetWindowLong(Forms![TuaFormScelta].hwnd, GWL_STYLE)
         attr& = SetWindowLong(Forms![TuaFormScelta].hwnd, GWL_STYLE, _
                    attr& And Not WS_DLGFRAME)
         DoCmd.MoveSize (coord.X * 14), (coord.y * 14), , 1100
         End Function
Questo un esempio che apre laform scelta al passaggio del mouse su di un
pulsante e la posiziona sotto il mouse:
Private Sub Pulsante3_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
        Call ShowPopup
End Sub
Ovviamente Call ShowPopup la puoi mettere in qualsiasi evento tu voglia, per
esempio su click dello sfondo.
Ciao, Carlo


wow!
era esattamente quello che mi serviva.. grazie mille :)
Volevo chiedere una cosa:
Dim attr&
^^^^^^^^^
che significa quella "&" ? è un puntatore?
nell'help in linea che ho io (che non funziona troppo bene.. mi mancano un
sacco di pagine e non so come mai come già notificato in un altro post) non
c'è nulla a riguardo
e cmq a che servono le funzioni GET e SET WindowLong a che servono?
Dove posso trovare della documentazione per "Arrabattanrmi tra le API" sotto
access?
grazie mille


Charles Simonyi è un programmatore ungherese della Microsoft. Questo
illustre Conosciuto si è inventato la "Notazione Ungherese" che è un insieme
di prefissi o paroline chiave che indicano, per esempio, un tipo di
variabile.
Per esempio % indica un integer, & indica un long, $ indica una variabile di
tipo stringa.
Il tutto serve per velocizzare la scrittura del codice.
Per un elenco completo ti rimando ad un buon libro sulle API come Visual
Basic Win32 API - guida del programmatore -
Intanto comuncia a linkare questo sito:
http://www.marcominerva.com/vbcorner/whatsapi.htm
GetWindowsLong e SetWindowLong rispettivamente ottengono e settano dei
parametri nella struttura di maschere o finestre.
Ciao, Carlo

 Il tutto serve per velocizzare la scrittura del codice.
[...]
    Scusa il disturbo ma c'e' qualcosa che non quadra: in BASIC tipizzare le
variabili mediante un carattere qualificatore non e' una convenzione ma un
elemento della sintassi. Facoltativo in Visual Basic, che conserva questa
possibilita' per compatibilita verso il basso.
    La Notazione Ungherese invece e' una convenzione di scrittura del
codice. Non obbligatoria, quindi, e non facente parte della sintassi del
linguaggio. Vedi per esempio, per Visual Basic:
 
http://makeashorterlink.com/?O31C23F81
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 Maurizio
Quello che dici è solo in parte vero. Infatti alcune paroline aggiunte alla
variabili, come & $ %, sono state adottate dai programmatori di VB proprio
per ricalcare lo stile della notazione ungherese che era precedente.
Se oggi vuoi spiegare il significato dei caratteri speciali, per specificare
il tipo di variabile, devi ricorrere alla notazione ungherese che
all'origine del tipo di programmazione.
Questo è stato chiesto...
Ciao, Carlo

 Questo è stato chiesto...
    Scusa se insisto ma siccome non sono d'accordo con te mi sembra piu'
corretto dirsele certe cose che lasciar perdere, visto che sono alla base
del linguaggio che usiamo in questo ng.
    Era stato chiesto:
"Dim attr&
^^^^^^^^^
che significa quella "&" ? è un puntatore?"
    Secondo me l'unica risposta possibile e' nella guida in linea di Access:
**************************************************************
Tipo di dati Long
Le variabili di tipo Long (a intero lungo) sono memorizzate come numeri con
segno a 32 bit (4 byte) compresi nell'intervallo fra -2.147.483.648 e
2.147.483.647. Il carattere di dichiarazione del tipo per Long è la "e"
commerciale (&).
**************************************************************
    Dici anche che i caratteri di dichiarazione del tipo sono stati adottati
dai programmatori di VB per ricalcare lo stile della notazione ungherese.
Ma, ammesso sia vero questo, e se e' vero spero che almeno uno di questi
tizi si faccia vivo, allora questi signori semplicemente si sbagliano,
perche' non siamo nell'ambito della "notazione", ne' ungherese ne'
ostrogota, ma del puro e semplice uso di un elemento facoltativo della
sintassi del linguaggio. Come usare o non usare Let. O Call. Quali che siano
le motivazioni addotte.


 le motivazioni addotte.
bha.. per quanto ne so io la notazione ungherese era fatta di prefissi (e
non postfissi come la & nel caso che mi ha indicato carlo) e funzionava
grossomodo così:
intVar per una variabile intera
sVar per una stringa
chVar per un char
e così via
in ogni caso era un qualcosa di cui avevo sentito solo parlare, ma non ne
avevo mai fatto uso.. voi la usate?
io la uso (se "uso" è la parola corretta) solo per i controlli delle form
che non contengono campi
es
tbRicerca per una textbox dove inserire il testo di una ricerca
lstArticoli per una list box di articoli in elenco
saluti
Galbusera

 lstArticoli per una list box di articoli in elenco
--


 m'intendi? Sta scritto: la casa costruita sulla sabbia...
hai perfettamente ragione
però concedimi che ci sono cose assodate e che non ci possiamo permettere il 
lusso di rileggerle per il solo gusto di farlo. almeno con me il tempo è 
sempre tiranno! Ne è passata di acqua sotto i ponti da quando programmavo 
il mio primo C64 per gestire tramite la sua porta una serie di luci e 
motorini passo-passo per rallegrare i miei festini! ne ho passati di 
manuali e linguaggi, e se ogni volta avessi dovuto soffermarmi più di un 
attimo sul concetto di variabile, sua definizione etc.. bhe.. forse starei 
ancora ad usare il turbo pascal 7!
[ora vado un po ot]
a volte penso a come si sia sviluppato il mestiere di programmatore in 
questi ultimi anni. Non ho visto tutto, ma nei miei 25 anni o visto nascere 
varie tecnologie dalla oop al java, dal web al rad, dai linguaggi di 
scripting alle varie shell.. e tutto questo sta crescendo e maturando con 
una ovvia velocità esponenziale. E questi sono gli anni in cui un persona 
normale (cioè che ha ancora una vita solciale oltre che professionale) non 
può fisicamente seguire con l'attenzione che merita ogni argomento. Allora 
tocca fare delle scelte, ma io non sono mai stato bravo a fare scelte, sono 
sempre stato capriccioso ed arrogante, ho voluto sempre tutto. Il risultato 
è questo: so un po' di tutto e non sono un esperto in niente
Se mi è quindi concesso, un consiglio a chi più giovane di me sta leggendo 
queste righe, bhe forse è meglio chiarirsi un po' le idee prima, magari 
parlandone OT anche sui ng, per avere qualche consiglio e concentrarsi su 
quei pochi ma decisivi argomenti
Ricordo che una volta, all'università, durante un corso di fisica 
quantistica il prof mi disse: ".. ormai gli esperimenti portano via anni, è 
finità l'era degli esperimenti di galileo che duravano al più qualche ora, 
adesso, finiti gli studi, un ricercatore neolaureato in fisica comincia a 
lavorare ad un eseprimento assegnatogli dall'università, se gli va bene 
avrà fama e successo, se gli va male, quando se ne accorge, è troppo 
vecchio per rientrare le giro e si è giocato la carriera."
Ecco è estattamente quello che sta succedendo a chi lavora a stretto 
contatto con l'informatica
mamma mia.. rileggendo mi sembra un po' pessimistica, ma non importa, adesos 
vi saluto: ho un bel " Advanced Bash Scripting Guide, an in-depth 
exploration of the art of shell scripting" da leggere
-- 
****************************************
saluti
Il mago galbusera

 ha scritto nel messaggio
news:ajt2b6$1e0mgd$1...@ID-52090.news.dfncis.de...

Caro Maurizio, ecco quello che dice Daniel Appleman (che sono sicuro
conosci) riguardo al nostro dire:
Many Visual Basic programmers have adopted the Hungarian notation style over
the traditional Basic typing which consists of adding a special character
after the variable name (for example, % indicates an integer, & indicates a
long, $ indicates a string, and so forth). You will find that the code
samples in this book tend to use the traditional Basic type characters
instead of Hungarian notation.
Non sempre le proprie "convinzioni" sono completamente corrette. Se poi
pensi che elemnti del calibro di Daniel Appleman possano saperne meno di me
o di te, "semplicemente ti sbagli".
Ciao, Carlo

 o di te, "semplicemente ti sbagli".
    Carissimo Carlo. A me non piace fare polemica ma sostenere le mie giuste
convinzioni. Quelle cioe' che ritengo giuste. E se capisco di aver sbagliato
lo ammetto e se lo ritengo il caso mi scuso anche. Tu sei capace di fare
altrettanto? Vedremo. Perche', caspiterina, mi stai proprio tirando per i
capelli!...
    Sai cosa c'e' scritto, secondo me, nella tua citazione? Traduco come
posso:
"Molti programmatori Visual Basic hanno adottato lo stile della Notazione
ungherese *in luogo* *al posto* *invece* della tradizionale tipizzazione del
Basic che consiste nell'aggiungere caratteri speciali dopo i nomi delle
variabili (per esempio, % indica un integer, & indica un long, $ indica uno
string, e cosi' via) Troverete che nel codice degli esempi di questo libro
si preferisce l'uso dei caratteri di tipo tradizionali del Basic invece
della Notazione ungherese."
    Che facciamo? Ci spostiamo su it.cultura.linguistica.inglese?
    ;-)


 ha scritto nel messaggio
news:ajvh2t$1efu57$1...@ID-52090.news.dfncis.de...

Hai ragione.
Ciao, Carlo

 Hai ragione.
    Perdonami ma a casa mia la ragione si da' ai fessi. Devo dedurre che non
sei capace di ammettere di aver sbagliato oppure ho interpretato male le tue
intenzioni?


 ha scritto nel messaggio
news:ajvqmb$1eic7g$1...@ID-52090.news.dfncis.de...

Ciao Maurizio, sarò più chiaro.
Hai ragione perchè non sono stato preciso nella definizione.
Ecco quello che scriverei oggi, dovendo rispondere alla stessa domanda.
L'unico modo per spiegare cosa significa "Dim attr&" (almeno l'unico modo
che mi viene in mente), è quello della Notazione Ungherese.
E' a questa che si rifà la LOGICA o lo STILE di usare prefissi, suffissi o
caratteri speciali per identificare tipi, oggetti ecc.
Ovviamente il tutto serve a velocizzare la comprensione e/o la stesura del
codice: dire Dim Attr as Long è più lungo di Dim attr&
Dire Call, Left, If...Then...Else, o meglio spiegare il perchè di questi
termini risulta più facile con la traduzione letterale dei termini.
Spiegare IL PERCHE' di Dim attr& e del perché si sia usato questo carattere
speciale per specificare un tipo di dati Long, è meno agevole della
traduzione letterale dei termini stessi.
"&" in VBA congiunge, concatena, somma. Se si cerca "&" nella guida non
trovi una risposta alla domanda, almeno non la trovi agevolmente.
Quando si adottò la parola "gravità" nessuno pensò che fino a quel momento
la gravità era inesistente: semplicemente si usò la "nuova" parola per
spiegare anche fenomeni precedenti alla definizione. Ecco perchè questa
spiegazione risulta più comprensibile se ci si rifà alla notazione
ungherese.
Ciao, Carlo

 ungherese.
    Ok, questa e' la tua opinione.
    Ora dico un'altra cosa sola poi direi di chiudere qui. Almeno io chiudo,
perche' mi sembra che ci stiamo avvitando.
    Queste le informazioni che con una rapidissima spazzolata della rete
sono riuscito a trovare:
    Charles Simonyi, il padre della Notazione ungherese, e' nato a Budapest
nel 1948.
    La data di nascita piu' accreditata di tale notazione pare essere il
1972 ma la sua ufficializzazione dovrebbe risalire al 1981, quando fu
adottata in Microsoft.
    Come vedi parliamo di una data successiva, e di molto, a quelle di
nascita dei vari dialetti BASIC che gia' usavano la tipizzazione a
carattere. Ma questo non ti convince per via della tua "gravita'".
    Secondo me dovrebbe pero' convincerti il fatto che una cosa e' una
notazione, ovvero uno stile di scrittura, e altra cosa e' la *necessita'
tecnica* degli interpreti del linguaggio, la necessita' cioe' di informare
l'interprete riguardo come dovra' trattare le variabili. E tale sintassi,
(sintassi, non notazione!) e' stata mantenuta in Visual Basic per
compatibilita' proprio con quegli antichi dialetti BASIC.
    ZX80 o C64 ti dicono niente?
    Chiudo.


 --------
Anch'io.
Ciao, Carlo