Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6]RunTime Error 398 Client Site not available

    Salve a tutti.

    E' da qualche giorno che mi sono accorto di un piccolo ma strano errore di runtime all'interno della mia applicazione segnalato principalmente da chi la utilizza su Windows XP.

    Ho utilizzato un controllo utente per i command button che se non sbaglio trovai su VBCorner realizzato da Mirko Marchese ( sempre se non sbaglio ).
    Il controllo funziona correttamente ed è molto valido ma presenta questo piccolo problema. All'apertura di qualsiasi form contenga il componente ovviamente il controllo esegue tutto il suo codice per generare il bottone ed il suo stile grafico, capita di tanto in tanto che generi questo errore

    Runtime Errror 398 - Client site not available

    sono riuscito a generare l'errore navigando tra i form ed ho visto che dipende da questa porzione di codice

    codice:
    Private Sub Draw3DEffect()
        If Not Ambient.UserMode Then
            If m_ButtonStyle = gbWinXP Then
                    DrawWinXPButton 0
            ElseIf m_ButtonStyle = gbOfficeXP Then
                    XPAdjustColorScheme
            Else
                If m_BEVEL < 2 Then
                    DRAWRECT hdc, 0, 0, ScaleWidth, ScaleHeight, &H80000010
                    DRAWRECT hdc, 0, 0, ScaleWidth + 1, ScaleHeight + 1, &H80000014
                Else
                    RunXTRA3D COLOR_UniColor(UserControl.BackColor), m_BEVEL, BEVELDEPTH
                End If
            End If
        Exit Sub
        End If
    a quanto pare , più precisamente, da questa riga

    codice:
    If Not Ambient.UserMode Then
    Documentandomi in rete ho letto che l'errore potrebbe scaturire dal fatto che Vb6 cerca di creare un oggetto sul form che ancora non è stato completamente inizializzato.
    Ho aperto questo topic per chiedervi aiuto nel capire da cosa derivi realmente questo errore.

    Ciao a tutti.
    Buona Giornata !

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758

    Re: [VB6]RunTime Error 398 Client Site not available

    Originariamente inviato da meodorienban
    Ho utilizzato un controllo utente per i command button che se non sbaglio trovai su VBCorner realizzato da Mirko Marchese ( sempre se non sbaglio ).
    Mi spiace, ma non sono stato io a realizzare quel controllo
    Il mio si chiama XPButton ed è effettivamente reperibile sul sito VBCorner che hai citato in versione OpenSource, oltre che in versione compilata insieme ad altri controlli nella suite XPControls, reperibile sul sito TheTruster's Box.

    Il controllo che stai utilizzando dovrebbe essere l'XPUniButton.

    Boolean

  3. #3
    Mio errore allora mi scuso, ero sicuro di aver usato il tuo controllo ma era su di un altro progetto ! questo è abbastanza vecchiotto e non ricordavo esattamente !

  4. #4
    Ciao a tutti.
    Da quello che sono riuscito a capire documentandomi il problema derivava proprio da quello che pensavo. Il controllo utente tentava di creare il bottone quando il form era ancora in fase di Run Time e quindi generava un errore.
    Per ora ho gestito l'errore ed ovviamente il problema è risolto ma non nella maniera migliore

    codice:
    Private Sub Draw3DEffect()
    On Error GoTo retry
    retry:
        If Not Ambient.UserMode Then
            If m_ButtonStyle = gbWinXP Then
                    DrawWinXPButton 0
            ElseIf m_ButtonStyle = gbOfficeXP Then
                    XPAdjustColorScheme
            Else
                If m_BEVEL < 2 Then
                    DRAWRECT hdc, 0, 0, ScaleWidth, ScaleHeight, &H80000010
                    DRAWRECT hdc, 0, 0, ScaleWidth + 1, ScaleHeight + 1, &H80000014
                Else
                    RunXTRA3D COLOR_UniColor(UserControl.BackColor), m_BEVEL, BEVELDEPTH
                End If
            End If
        Exit Sub
        End If
    In questo modo se il controllo riceve un errore ritenta la creazione del comando e ovviamente riesce perché il form è stato correttamente caricato. Nel mentre cercherò di migliorare il codice del controllo per risolvere definitivamente il problema.
    Oltretutto questo controllo XpBs.ctl è introvabile in rete sparito dalla circolazione !

    Ciao a tutti e grazie mille.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.