Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 29-06-2001, 16.36.00   #1
LeleB
Senior Member
 
Registrato: 04-07-2000
Loc.: Riccione,Italia
Messaggi: 267
LeleB promette bene
Dunque il mio problema è questo:
ho un frame con all'interno vari controlli, con un pulsante devo disabilitare il frame stesso ma, allo stesso tempo, voglio che tutti i controlli contenuti diventino "grigi". Io avevo pensato di fare un banale ciclo di "For Each" in questo modo:

Dim c As Control

For Each c In Me.Controls
If c (è un controllo contenuto nel Frame) Then c.Enable = False
Next

Solo che non so come fare il pezzo "'è un controllo contenuto nel Frame", inoltre qualcuno sa quali sono le proprietà che ha la variabile c una volta dichiarata come Control?
LeleB non è collegato   Rispondi citando
Vecchio 30-06-2001, 18.45.53   #2
LeleB
Senior Member
 
Registrato: 04-07-2000
Loc.: Riccione,Italia
Messaggi: 267
LeleB promette bene
Ho la soluzione (a chi può interessare) me l'ha data via mail il webmaster di VB-Simple, riporto la sua risposta:

"molto semplice utilizza la proprietà Container per il controllo C

Private Sub Form_Click()
Dim c As Control
Frame1.Enabled = False
For Each c In Me.Controls
If c.Container Is Frame1 Then c.Enabled = False
Next c
End Sub

nota che abbiamo utilizzato "Is Frame1" e non "= Frame1"
questo perché utilizzando la seconda forma il programma
ci avrebbe restituito automaticamente la caption del
frame1, perché proprietà predefinita

i controlli di oggetti si fanno infatti mediante l'operatore
"Is". unico difetto di questo codice è che alcuni controlli
(quali il Timer ed il Data) non possiedono la proprietà
Container e ciò genera un errore.

Per aggirare il problema puoi utilizzare un'istruzione di
gestione degli errori (on error resume next) oppure effettuare
un controllo a priori (If Not TypeOf c Is Timer)."

Inoltre alla mia seconda domanda ha risposto:

"domanda assurda
la classe Control è una classe virtuale (nel senso di program-
mazione ad oggetti) senza membri esposti.
Essa non contiene alcuna proprietà o metodo (infatti il sistema
Intellisense di VB non te li mostra). Le proprietà vengono
definite al momento dell'assegnamento al controllo.
In sostanza l'oggetto Control contiene nessuna e tutte le
proprietà esistenti. Per dimostrare questo supponi di creare un
nuovo controllo contenente la proprietà CiccioMangiaCarote,
un codice come il precedente fa sì che c (il Control) abbia
anche una proprietà di nome CiccioMangiaCarote nel momento in
cui C punta al tuo controllo e la perde nel momento in cui C
punta ad un altro controllo."

Grazie!!!
LeleB non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Orario GMT +2. Ora sono le: 00.17.42.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.