Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Tagbox
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Tagbox 
 
Hola a todos, en base a una clase del usuario Shell Etibox de otro post me pareció muy útil para un proyecto en el que creaba controles por código y la estuve adaptando un poco, lo dejo acá por si a alguien le interesa.

Saludos.

' gambas class file

Private pnl1 As Panel
Private pnl2 As Panel

Private lbl1 As Label
Private tgb1 As ToggleButton
Private sep1 As Separator

Private bto1 As ButtonBox
Private cko1 As CheckBox
Private cmo1 As ComboBox
Private dto1 As DateBox
Private lso1 As ListBox
Private mko1 As MaskBox
Private mio1 As MovieBox
Private txo1 As TextBox
Private vao1 As ValueBox

Public Sub _new(objControl As Object, strText As String, strType As String, intNum As Integer)
  
  pnl1 = New Panel(objControl)
  With pnl1
    .X = 8
    .y = intNum * 40
    .Width = 200
    .Height = 48
    .Name = "pnl" & Str(intNum)
    .AutoResize = True
    .Arrangement = 2
  End With
  
  lbl1 = New Label(pnl1)
  With lbl1
    .Text = strText
    .Width = 200
    .Height = 24
  End With
    
  Select strType
    Case "ButtonBox"
             bto1 = New ButtonBox(pnl1) As "GButtonBox"
             With bto1
            .Width = 200
            .Height = 24
            .Name = "bto" & Str(intNum)
            .Background = &H98FB98
            
            End With

      Case "CheckBox"
              pnl2 = New Panel(pnl1)
              With pnl2
                .X = 0
                .y = 0
                .Width = 200
                .Height = 24
                .Name = "pnl" & Str(intNum)
                .AutoResize = True
                .Arrangement = 1
                .Spacing = True
              End With
              txo1 = New TextBox(pnl2) As "GTextBox"
              With txo1
              .Width = 100
              .Height = 24
              .Name = "txo" & Str(intNum)
              .ReadOnly = True
              .Background = &HFFDC89
              End With
               cko1 = New CheckBox(pnl2) As "GCheckBox"
               With cko1
              .Width = 14
              .Height = 14
              .Name = "cko" & Str(intNum)
              End With

        Case "ToggleButton"
                pnl2 = New Panel(pnl1)
                With pnl2
                  .X = 0
                  .y = 0
                  .Width = 200
                  .Height = 24
                  .AutoResize = True
                  .Arrangement = 1
                  .Spacing = True
                End With
                
                txo1 = New TextBox(pnl2) As "GTextBox"
                With txo1
                .Width = 100
                .Height = 24
                .Name = "txo" & Str(intNum)
                .ReadOnly = True
                .Background = &HFFDC89
                '&H898CFF
                '&HFF89B5
                '&HFFDC89
                
                
                End With
                 tgb1 = New ToggleButton(pnl2) As "GToggleButton"
                 With tgb1
                .Width = 24
                .Height = 24
                .Name = "tgb" & Str(intNum)
                .Tag = "tgb" & Str(intNum)
                End With
  
          Case "ComboBox"
                  cmo1 = New ComboBox(pnl1) As "GComboBox"
                   With cmo1
                  .Width = 200
                  .Height = 24
                  .Name = "cmo" & Str(intNum)
                  .Background = &H98FB98
                  
                  End With
  
            Case "DateBox"
                    dto1 = New DateBox(pnl1) As "GDateBox"
                     With dto1
                    .Width = 200
                    .Height = 24
                    .Name = "dto" & Str(intNum)
                    '.Background = &H90D4F7
                    .Background = &H98FB98
                    End With
  
              Case "MaskBox"
                       mko1 = New MaskBox(pnl1) As "GMaskBox"
                       With mko1
                       .Width = 200
                       .Height = 24
                       .Background = &HCEE7FF
                       End With
  
                Case "TextBox"
                          txo1 = New TextBox(pnl1) As "GTextBox"
                          With txo1
                            .Width = 200
                            .Height = 24
                            .Name = "txo" & Str(intNum)
                            .Background = &HCEE7FF
                          End With
  
                  Case "ValueBox"
                          vao1 = New ValueBox(pnl1) As "GValueBox"
                           With vao1
                          .Width = 200
                          .Height = 24
                          .Name = "vao" & Str(intNum)
                          .Background = &HCEE7FF
                          End With

  End Select

End

Public Sub GToggleButton_Click()
' Este ToggleButton trabaja en cionjunto con un TextBox en donde se escribe el texto para verdadero y para falso
' Por ejemplo "yes/no" "si/no" "x/ ", "Vrificado/Pendiente", o inclusive "True/False" y permite guardar todo en texto plano
' En lugar de boolean. Personalmente prefiero el texto plano, sobretodo a la hora de hacer informes.

  Dim LastToggleButton As ToggleButton
  Dim PartnerControl As Control
  Dim PartnerTextBox As TextBox
  Dim intMilestone As Integer

  LastToggleButton = Last
  intMilestone = Val(Mid(LastToggleButton.Name, 4, String.Len(LastToggleButton.Name) - 3))
  
  Print LastToggleButton.Name & ": " & Str(LastToggleButton.Value)
  Print LastToggleButton.Parent.Name
  
  For Each PartnerControl In LastToggleButton.Parent.Children
    If PartnerControl.Name = "txo" & Str(intMilestone) Then
      PartnerTextBox = PartnerControl
      Print PartnerTextBox.Text
      
    Endif
  Next
  If LastToggleButton.Value = True Then
    LastToggleButton.Picture = Picture.Load("ok.png")
    PartnerTextBox.Text = "YES"
    Else
      LastToggleButton.Picture = Null 'Picture("/22/cancel")
      PartnerTextBox.Text = "NO"
  Endif
  
End
 


Tagbox.class.tar.gz
Descripción: clase y una imagen .png usada para el buttonbox 
Descargar
Nombre del archivo: Tagbox.class.tar.gz
Tamaño: 1.78 KB
Descargado: 22 veces
Tagbox.class.tar.gz
Descripción: clase y una imagen .png usada para el buttonbox 
Descargar
Nombre del archivo: Tagbox.class.tar.gz
Tamaño: 1.78 KB
Descargado: 22 veces
Tagbox.class.tar.gz
Descripción: clase y una imagen .png usada para el buttonbox 
Descargar
Nombre del archivo: Tagbox.class.tar.gz
Tamaño: 1.78 KB
Descargado: 22 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tagbox 
 
Hola

A menos que no he entendido el problema, podría ser prudente para colocar los componentes en la tabla ...
Tomo el ejemplo del "grupo especial que se puede adaptar a todos los demás componentes …


Aquí veo la creación de dos paneles (pnl1 y pnl2). Esto no es muy práctico o efectivo. Podemos reemplazar estas dos líneas de una declaración de un panel de tablero



Sólo tienes que crear realmente componentes y asignar automáticamente un número que será almacenado en la propiedad 'Tag' de cada componente ...
Tales como los siguientes:

Private Sub CreCompo()
Dim i As Integer
'--------------------------------------------------
'Creación del Grupo
'--------------------------------------------------
  For i = 0 To 2 'número panel para crear
    pnl.Add(Null, pnl.Count)'1 panel se añadió en el bucle
    pnl[i] = New Panel(Me) As "Grpnl" 'y declarar que en el Grpnl
    pnl[i].Tag = i 'colocando el índice del bucle en el panel de propiedades .Tag
  Next
'pnl[0] = lo que el panel 0
'pnl[1] = lo que el panel 1
'pnl[2] = lo que el panel 2
End


A continuación, para acceder a la 'pnl' a la que hizo clic el usuario, sólo para obtener '.Tag' a su
Como por ejemplo

Public sub Grpnl_Click()
Select Last.Tag '.Tag última se recupera en la que el usuario haga clic
  Case 0' Si el valor de .tag es 0, entonces este es el pnl[0]
    'acción para pnl[0]
  Case 1' Si el valor de .tag es 1, entonces este es el pnl[1]
    'acción para pnl[1]
  Case 2' Si el valor de .tag es 2, entonces este es el pnl[2]
    'acción para pnl[2]
End Select
End


Este enfoque reduce el código y permite un uso más flexible de los componentes.
Perdonen mi pobre español (Google no es perfecto;-), pero espero que mis comentarios le ayudarán.

Saludos
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tagbox 
 
Exelente colaboración.....!
 



 
Ricardo Prieto - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron