Newsgroup: it.comp.lang.visual-basic
Titolo: Valutare espressioni alfanumeriche.

>>
Dim Sinistra As Integer
Sinistra = "Form1.Command1.Left"	'??
<<<
Salutoni.
Paolo F.

 Sinistra = "Form1.Command1.Left" '??
togliendo i doppi apici?
ciaociao

 <<<
Dim Sinistra As Long
Sinistra = Form1.Command1.Left
Alberto

 <<<
semplicemente togliendo le virgolette prima di Form e dopo Left.
In questo modo stai passando una stringa ad una variabile che dovrebbe
contenere un intero (quindi non può accettare una stringa).
Ciao, SK
--
La pasienzia non è mai troppo (Totò)
<><><>
Esistono 10 tipi di persone: chi conosce il binario e chi no

 Sinistra = Form1.Command1.Left
dubito che sia così facile.
immagino che il problema dell'op sia da risolvere al runtime.
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 immagino che il problema dell'op sia da risolvere al runtime.
Mmmmhhh...
Se cambia solo il controllo, si può utilizzare la collection controls.
Se cambia anche la property, ad esempio Left, Top, Heigth, Width, i colori,
ecc..., la vedo molto più grigia...
Ciao
Alberto

 Sinistra = "Form1.Command1.Left" '??
Forse ho capito il problema e in qualche modo avrei pensato di fare qualcosa
del tipo:
Forms("Form1").Controls("Command1").Properties("Left")
Ma peccato che così com'è scritto non funziona.
Comunque potresti fare una funzione alla quale passi il nome del Form e con
un For Each...Next sull'insieme Forms ti cerchi il Form in questione.
Esempio:
Function ExtractValue(strForm As String, _
        strControl As String, _
        strProperty As String)
    Dim frm As Object
    For Each frm in Forms
        If frm.Name = strForm Then
            ExtractValue = frm.Controls(strControl).xxxx '*
            Exit For
        End If
    Next
End Function
* al posto di xxxx ci va qualcosa che non ho ancora scoperto, almeno che non
ti serva solo la proprietà Left del controllo ed allora sostituisci con Left
i caratteri xxxx.
-- 
Esteban
www.seber.it

 ha scritto nel messaggio
news:bv3b2t$nuhop$1...@ID-217323.news.uni-berlin.de...

Questo sempre che ti serva parametrizzare anche il nome del Form, altrimenti
basterebbe fare:
Form1.Controls("Command1").Left
-- 
Esteban
www.seber.it

 i caratteri xxxx.
CallByName()
Ciao


Beh, basterebbe fare una funzioncina con un bel select case che contempli le
proprietà che potrebbero servire:
Select Case s_Property
    Case "Left"
        .
    Case "Width"
    .
    .
    ecc..
End select
ciaociao

 ha scritto nel messaggio
news:bv3bpc$ncgr5$2...@ID-184808.news.uni-berlin.de...

Grazie Zanna!
Ecco allora la funzione ExtractValue completa (beh, magari manca una
gestione degli errori...):
Function ExtractValue(strForm As String, _
        strControl As String, _
        strProperty As String) As Variant
    Dim frm As Object
    Dim prop As Object
    For Each frm In Forms
        If frm.Name = strForm Then
            ExtractValue = CallByName(frm.Controls(strControl), _
                                        strProperty, VbGet)
            Exit For
        End If
    Next
End Function
-- 
Esteban
www.seber.it


Questo e' ancora facile, basta usare un paio di CallByName in sequenza
Dim Control As Object
Dim Value As Variant
Set Control = CallByName(Form1, "Text1", VbGet)
Value = CallByName(Control, "Left", VbGet)
il problema e' la prima parte ovvero l'oggetto form: se anche questa e'
dinamica e contenuta in una stringa, la cosa si complica perche' come noto
puo' essere recuperata dall'insieme Forms solo se e' gia' stata caricata...
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 
Come si dice sui siti 'tosti' per aquisire crediti: RISPOSTA ACCETTATA!.
grazie a tutti.
nb.
Per non sembrare che stiamo qui a passare il tempo... in due parole la 
funzione mi serve a poter parametrizzare l'accesso a tutti i pulsanti 
dell'applicazione, vale a dire che con una combinazione di tasti accedo 
ad un sottomenu che mi chiede quali sono i parametri da associare ad ogni 
pulsante (utenti abilitati, pesonalizzazione caption ecc.), per cui mi 
serviva proprio poter passare a funzione form e controllo.
di nuovo.

 >     Dim prop As Object
-- 
Esteban
www.seber.it