Newsgroup: it.comp.lang.visual-basic
Titolo: [vb6] Proprio stupida: Pulsanti non visualizzabili

Immagino sia una sciocchezza, ma non ne arrivo a capo...
Con vb6 ho fatto un un ocx nel quale provo a impostare la proprietą .visible
= true di un pulsante, ma questa resta a false e nessun errore viene
generato.
Perchč?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Perchč?
Ci pubblichi il codice che hai scritto e che non sortisce il risultato
sperato?
--
ciao, hal



 
E' un po' scritto così, ma così è.
Ho un metodo pubblico Message°Show che richiama una sub privata
Message°ArrangeButtons.
In Message°Show viene impostata la visibilità di alcuni picturebox (e
funzionano!!!) e in Message°ArrangeButtons i bottoni restano nascosti
Public Sub Message°Show(Title, Message, Options As eMessageOptions, Optional
HideAfterXMilli As Long = -1, Optional Source As String = "")
'+<ShowNonModalMessage>--CREATE--
On Error Resume Next
  m_MessageSource = Source
  '
  '-- Nascondo il messaggio
  '
  Message°Hide
  '
  '-- MESSAGGI --
  '
  lblMsgTitolo.Caption = Title
  lblMsgMessaggio.Caption = Message
  '
  '-- ASPETTO DEI BOTTONI
  '
  Message°ArrangeButtons Options
  '
  '-- ICONE
  '
  Dim pbxIcon As PictureBox
  pbxMsgIconInformation.Visible = False
  pbxMsgIconQuestion.Visible = False
  pbxMsgIconExclamation.Visible = False
  pbxMsgIconCritical.Visible = False
  Select Case True
    Case Options And evbInformation = evbInformation
      Set pbxIcon = pbxMsgIconInformation
    Case Options And evbQuestion = evbQuestion
      Set pbxIcon = pbxMsgIconQuestion
    Case Options And evbExclamation = evbExclamation
      Set pbxIcon = pbxMsgIconExclamation
    Case Options And evbCritical = evbCritical
      Set pbxIcon = pbxMsgIconCritical
  End Select
  pbxIcon.Move pbxMsgInfoPosition.Left, pbxMsgInfoPosition.Top
  pbxIcon.Visible = True
  pbxIcon.ZOrder 0
  '
  '-- Show
  '
  Dim pos As Long
  pos = (UserControl.Width \ 2) - (pbxMessage.Width \ 2)
  If pos < 0 Then pos = 0
  pbxMessage.Left = pos
  pos = (UserControl.Height \ 2) - (pbxMessage.Height \ 2)
  If pos < 0 Then pos = 0
  pbxMessage.Top = pos
  pbxMessage.ZOrder 0
  pbxMessage.Visible = True
  '
  '-- Gestione auto hide
  '
  If HideAfterXMilli > 0 Then
    tmrMsgAutoHide.Enabled = False
    tmrMsgAutoHide.Interval = HideAfterXMilli
    tmrMsgAutoHide.Enabled = True
  End If
End Sub
Private Sub Message°ArrangeButtons(Options As eMessageOptions)
'+<ShowNonModalMessage>--CREATE--
  Dim c As Long
  Dim Cmd As Object
  '
  '-- ELENCO DI BOTTONI
  '
  Dim Cmds As New Collection
  cmdMsgToolsSi.Caption = "&Si"
  Select Case True
    Case Options And evbOKOnly = evbOKOnly
      cmdMsgToolsSi.Caption = "&OK"
      Cmds.Add pbxMsgToolsSi
    Case Options And evbYesNo = evbYesNo
      Cmds.Add pbxMsgToolsSi
      Cmds.Add pbxMsgToolsNo
    Case Options And evbYesNoCancel = evbYesNoCancel
      Cmds.Add pbxMsgToolsSi
      Cmds.Add pbxMsgToolsNo
      Cmds.Add pbxMsgToolsAnnulla
    Case Options And evbOKCancel = evbOKCancel
      cmdMsgToolsSi.Caption = "&OK"
      Cmds.Add pbxMsgToolsSi
      Cmds.Add pbxMsgToolsAnnulla
  End Select
  '
  '-- LARGHEZZA DEI BOTTONI
  '
  Dim CmdsWidth As Long: CmdsWidth = 0
  For c = 1 To Cmds.Count
    Set Cmd = Cmds(c)
    CmdsWidth = CmdsWidth + Cmd.Width
  Next c
  '
  '-- SPAZIATURA DEI BOTTONI
  '
  Dim CmdsSpace As Long: CmdsSpace = 0
  CmdsSpace = (UserControl.Width - CmdsSpace) \ Cmds.Count
  '
  '-- POSIZIONAMENTO DEI BOTTONI
  '
  Dim CmdsLeft As Long: CmdsLeft = 0
  For c = 1 To Cmds.Count
    CmdsLeft = CmdsLeft + CmdsSpace
    Set Cmd = Cmds(c)
    Cmd.Left = CmdsLeft
    CmdsLeft = CmdsLeft + Cmd.Width
  Next c
  '
  '-- DEFAULT DEI BOTTONI
  '
  Dim cmdDefault As CommandButton
  Select Case True
    Case Options And evbDefaultButton1 = evbDefaultButton1
      Set cmdDefault = Cmds(1)
    Case Options And evbDefaultButton2 = evbDefaultButton2
      Set cmdDefault = Cmds(2)
    Case Options And evbDefaultButton3 = evbDefaultButton3
      Set cmdDefault = Cmds(3)
  End Select
  '
  '-- VALORE ASSOCIATO AI BOTTONI
  '
  pbxMsgToolsSi.Tag = 0
  pbxMsgToolsNo.Tag = 0
  pbxMsgToolsAnnulla.Tag = 0
  For c = 1 To Cmds.Count
    Set Cmd = Cmds(c)
    Cmd.Tag = c
  Next c
  '
  '-- VISIBILITA' DEI BOTTONI
  '
  pbxMsgToolsSi.Visible = False
  pbxMsgToolsNo.Visible = False
  pbxMsgToolsAnnulla.Visible = False
  For c = 1 To Cmds.Count
    Set Cmd = Cmds(c)
    Cmd.Visible = True
  Next c
  'cmdDefault.SetFocus
 
End Sub


Pardon, il codice postato prevede che i bottoni siano stati messi dentro dei
picture box (e cosi funziona!!!) mentre prima i bottoni appartenevano
direttamente a un picturebox globale... spero sia chiaro!!


 Perchč?
Non ho guardato il tuo codice, ma sei a posto a livello di writeproperties e 
readproperties.....?
-- 
"Tutta la droga del mondo non vale un grammo della mia adrenalina"
Lorenzo Cherubini alias Jovanotti
Per bypassare i filtri antispam scrivi nel testo del messaggio "AIEIE"
MasterDavidex - David Ruscelli 



ah ah ah ah ah............ scuse pubbliche: sbagliavo il posizionamento dei
bottoni che finivano troppo a destra, praticamente fuori dal form!!!
grazie comunque.
