Newsgroup: it.comp.lang.visual-basic
Titolo: Controllo componenti usate

Ciao a tutti, il mio problema è il seguente :
ho fatto una procedura che controlla le componenti di un form e svolge
alcune operazioni a seconda del tipo di controllo trovato con un ciclo
for each contr in controls
    if typeof contr IS Textbox then ....
    if typeof contr IS Combobox then ....
next
Il problema è che questa funzione la uso in diversi progetti con diverse
componenti, quindi se ad esempio uso le griglie della Sheridan avrò
SSDBGrid, SSCombo ... tra le definizioni dei dati e posso usare
    if typeof contr IS SSDBGrid then ....
mentre dove non uso i componenti Sheridan dovrei cancellare tali righe di
codice perchè altrimenti VB non trova la definizione di tali tipi di dati
dandomi errore.
Devo quindi usare la compilazione condizionale, ma quale constante
condizionale posso usare o come posso definirla ?


Io di compilazioni condizionali non me ne intendo proprio perň un consiglio per il tuo problema te
lo so dare:
Potresti usare la funzione TypeName che restituisce una STRINGA contenente il nome del tipo di
dati passato e funziona anche se le si passano oggetti.
In questo caso nel tuo programma potresti fare:
Select Case TypeName(Contr) '<-- mi sembra piů adatto un Select case
    Case "TextBox"
        'Codice...
    Case "SSRibbon"
        'Codice...
    'Ecc...
End Select
Spero di esserti stato di aiuto.
Ciao
    Diego

    if typeof contr IS Combobox then ....
Non devi per forza usare il TypeOf.
Un'alternativa "rozza" ma funzionante: se puoi continuare ad usare la
stringa "SS" di default nei nomi dei controlli Sheridan, e la eviti
negli altri, puoi fare un controllo del tipo:
If Instr(Contr.Name, "SS") Then
    ' è un controllo Sheridan e lo gestisci come tale
Else
    ' è un controllo standard
End If
Un amante della programmazione pulita e OO mi picchierebbe... ;-))
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi sul
    Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------
Real E-address: 
gaet...@hotmail.com


Dov'e' che abiti????  >:-]
--
Roal Zanazzi
z...@iol.it

pacifiche, oggetti contundenti per i tipi minacciosi ! :-P
birra... Roal...... mi sa che questo è un tentativo di corruzione... ^______^
OK, scusate per l'OT....
Ciao,
Moreno
#sirri#@
morenosoft.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
Home Page - 
http://www.geocities.com/SiliconValley/Bridge/1414/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

Dov'e' che abiti????  >:-]
AZZ, lo sapevo che Roal se ne accorgeva...
Pescara, un bel po' lontana da Como :-)))
Comunque vieni pure, sono armato... birra a volontà per le persone
pacifiche, oggetti contundenti per i tipi minacciosi ! :-P
... eppoi bisogna pur aggirare le s*****ate del VB !
In quel caso non funziona neanche On Error Resume Next !
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi sul
    Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------
Real E-address: 
gaet...@hotmail.com