Newsgroup: it.comp.lang.visual-basic
Titolo: vb6 Lentezza Usercontrol in ambiente sviluppo

Ho creato per prova uno usercontrol con una textbox.
Ho agganciato tramite autocomposizione le varie propriet� che mi
interessano, senza scrivere altro codice (in pratica � una normalissima
texbox senza essere estesa)
Ho incollato un 50 di queste textbox per simulare una condizione reale.
Quando switcho dal codice all'ide grafica, si nota un rallentamento, in
pratica premendo CTRL-PAUSE si vede che vengono interrogate tutte le
property dello usercontrol.
E' normale o no? Mi sembra tutto appesantito e ingestibile.
Forse dovrei creare il componente invece di usare lo usercontrol via
codice?
Cos� facendo ad ogni modifica dovrei reinviare il pacchetto di
installazione ai clienti, decisamente scomodo.
Tnx
L'autocomposizione ha scritto codice tipo:
'AVVISO: NON RIMUOVERE O MODIFICARE LE SEGUENTI RIGHE DI COMMENTO
'MappingInfo=Text1,Text1,-1,Locked
Public Property Get Locked() As Boolean
    Locked = Text1.Locked
End Property
Public Property Let Locked(ByVal New_Locked As Boolean)
    Text1.Locked() = New_Locked
    PropertyChanged "Locked"
End Property
'Carica i valori delle propriet� dalla posizione di memorizzazione.
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    Text1.Text = PropBag.ReadProperty("Text", "Text1")
    Text1.SelStart = PropBag.ReadProperty("SelStart", 0)
    Text1.SelText = PropBag.ReadProperty("SelText", "")
End Sub
'Scrive i valori delle propriet� nella posizione di memorizzazione.
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Text", Text1.Text, "Text1")
    Call PropBag.WriteProperty("SelStart", Text1.SelStart, 0)
    Call PropBag.WriteProperty("SelText", Text1.SelText, "")
End Sub

 Tnx
Se, quando usi il tuo usercontrol nell'IDE di VB, non ti interessa che 
salvando/chiudendo il form che lo contiene vengano mantenuti i valori delle 
propriet� "custom" che hai aggiunto/esteso, puoi tranquillamente fare a meno 
di aggiungere PropertyChanged/ReadProperty/WriteProperty per tali propriet�: 
vedrai che le prestazioni aumenteranno.
Bye
Raf 

 vedrai che le prestazioni aumenteranno.
Beh alcune non posso toccarle, di mio ho aggiunto solo 4/5 cose:
- Ucase/Lcase automatico
- DataType dove indico se � una casella integer, decimal, date ecc
- Decimal Format in caso di decimal, formatta il numero in quel modo
- Un boolean per dire se la casella di testo � agganciata ad una tabella
esterna (mi viene notificato un evento in tal caso, quando cambio il
valore, cosicch� possa mostrare la descrizione associata al campo)
- Una sub interna di formattazione sulla base del tipo di dato
- Un metodo per far si che INVIO sposti il focus
L'importante � che non schianti tutto, dato che devo iniziare un nuovo
progetto, non vorrei che poi arrivato a met� dell'opera devo rifare tutto
da capo. Se � pi� lenta alla fine mi interessa il giusto.
Ecco l'elenco di quello che gestisco attualmente:
'Scrive i valori delle propriet� nella posizione di memorizzazione.
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Alignment", Text1.Alignment, 0)
    Call PropBag.WriteProperty("Appearance", Text1.Appearance, 0)
    Call PropBag.WriteProperty("BackColor", Text1.BackColor, &H80000005)
    Call PropBag.WriteProperty("BorderStyle", Text1.BorderStyle, 1)
    Call PropBag.WriteProperty("Enabled", Text1.Enabled, True)
    Call PropBag.WriteProperty("Font", Text1.Font, Ambient.Font)
    Call PropBag.WriteProperty("ForeColor", Text1.ForeColor, &H80000008)
    Call PropBag.WriteProperty("Locked", Text1.Locked, False)
    Call PropBag.WriteProperty("MaxLength", Text1.MaxLength, 0)
    Call PropBag.WriteProperty("MouseIcon", MouseIcon, Nothing)
    Call PropBag.WriteProperty("MousePointer", Text1.MousePointer, 0)
    Call PropBag.WriteProperty("PasswordChar", Text1.PasswordChar, "")
    Call PropBag.WriteProperty("Text", Text1.Text, "")
    Call PropBag.WriteProperty("ToolTipText", Text1.ToolTipText, "")
  'custom
    Call PropBag.WriteProperty("ConvertText", m_ConvertText,
m_def_ConvertText)
    Call PropBag.WriteProperty("DecFormat", m_DecFormat, m_def_DecFormat)
    Call PropBag.WriteProperty("AutoSendTab", m_AutoSendTab,
m_def_AutoSendTab)
    Call PropBag.WriteProperty("SearchExternalTable",
m_SearchExternalTable, m_def_SearchExternalTable)
End Sub

 da capo. Se � pi� lenta alla fine mi interessa il giusto.
Sembra che a debug ed in eseguibile vada veloce.
Confermate che non ci sono alte probabilit� di crash che sappiate?