Mostrando las entradas con la etiqueta New. Mostrar todas las entradas
Mostrando las entradas con la etiqueta New. Mostrar todas las entradas

jueves, 19 de enero de 2017

Control FontName by postapase


Control pensado para seleccionar tipo de fuente rapidamente y comodamente, con la opción de poner fuente predeterminada con un solo clic.

parte gráfica del control (ffontname) formulario

' gambas class file

'by postapase 18 de enero 2017
'http://novatocodegambas.blogspot.com.uy/
'control FontName

Event Reset
Event Seleccion
Event Enter

Public Sub Form_Open()

End

Public Sub btnFontDefault_Click()

Raise Reset

End

Public Sub cbxNombreFuentes_Click()

Raise Seleccion

End

Public Sub btnFontDefault_Enter()

Raise Enter

End



clase fontname

' gambas class file

'by postapase 18 de enero 2017
'http://novatocodegambas.blogspot.com.uy/
'control FontName

Export

Inherits UserControl

Public Const _Properties As String = "*,Predeterminada,Seleccionada,Index"
Public Const _DefaultEvent As String = "Seleccion"
Public Const _DefaultSize As String = "32,4"
Public Const _Group As String = "Chooser"

Event Seleccion
Event Reseteo ''Selecciona la fuente predeterminada de la aplicación

Property Predeterminada As String
Property Seleccionada As String
Property Index As Integer

Private $xfontname As Ffontname
Private $Predeterminada As String
Private $Seleccionada As String
Private $Index As Integer
Private $ListaFuentes As New String[]

Public Sub _new()

$xfontname = New Ffontname(Me) As "Ev"
$Predeterminada = Application.Font.Name
$Seleccionada = $Predeterminada
Me.Proxy = $xfontname.cbxNombreFuentes
ActualizarFuentes()

End

Public Sub Ev_Reset()

Reinicio()

Raise Reseteo

End

Public Sub Ev_Seleccion()

$Seleccionada = $xfontname.cbxNombreFuentes.Current.Text
$Index = $xfontname.cbxNombreFuentes.Index

Raise Seleccion

End

Public Sub EV_Enter()

$xfontname.btnFontDefault.Tooltip = "Seleccionar fuente predeterminada [ " & $Predeterminada & " ]"

End

Public Sub ActualizarFuentes()

Dim NombreFuente As String

For Each NombreFuente In Fonts
$ListaFuentes.Add(NombreFuente)
Next

$xfontname.cbxNombreFuentes.List = $ListaFuentes
$xfontname.cbxNombreFuentes.Add($Predeterminada, 0)

End

Private Function Predeterminada_Read() As String

Return $Predeterminada

End

Private Sub Predeterminada_Write(Value As String)

$Predeterminada = Value

End

Private Function Seleccionada_Read() As String

Return $Seleccionada

End

Private Sub Seleccionada_Write(Value As String)

$Seleccionada = Value

End

Private Function Index_Read() As Integer

Return $Index

End

Private Sub Index_Write(Value As Integer)

$Index = Value
$xfontname.cbxNombreFuentes.Index = $Index

End

Public Sub Reinicio()

$xfontname.cbxNombreFuentes.Index = 0
$Index = 0

En


Saludos y espero sus opiniones.

Necesario estar registrado en  https://www.gambas-es.org/
Descargar 

Dropbox:  fontname-0.1.2.tar.gz

miércoles, 20 de abril de 2016

Clase personalizada (primera parte)


Primera parte de ejemplo de como hacer nuestros propios botones personalizados, que se crean con clases especiales o personalizadas o creadas por nosotros mismo.



Clase contacto


' gambas class file

'by postapase
'primera parte de clase personalizada

Property Nombre As String
Property Movil As String

Private $Nombre As String
Private $Movil As String



Private $CajaPrincipal As Panel
Private $CajaNombre As Label
Private $CajaMovil As Label
Private $Contenedor As ScrollView
Private $observador As Observer



Public Sub _new(nombre As String, movil As String, contenedor As ScrollView)

$Nombre = nombre
$Movil = movil
$Contenedor = contenedor


$CajaPrincipal = New Panel($Contenedor) As "CajaPrincipal"
$CajaPrincipal.Height = 70
$CajaPrincipal.Background = Color.DarkCyan
$CajaPrincipal.Visible = True
$CajaPrincipal.Arrangement = Arrange.Vertical
$CajaPrincipal.Padding = 2
$CajaPrincipal.Border = Border.Solid


$CajaNombre = New Label($CajaPrincipal)
$CajaNombre.Height = 55
$CajaNombre.Visible = True
$CajaNombre.Font.Bold = True
$CajaNombre.Font.Size = 20
$CajaNombre.Alignment = Align.TopLeft
$CajaNombre.Text = $Nombre
$CajaNombre.Expand = True
$CajaNombre.Proxy = $CajaPrincipal

$CajaMovil = New Label($CajaPrincipal)
$CajaMovil.Height = $Contenedor.Height - $CajaPrincipal.Height
$CajaMovil.Visible = True
$CajaMovil.Alignment = Align.Right
$CajaMovil.Text = $Movil
$CajaMovil.Font.Size = 14
$CajaMovil.Font.Italic = True
$CajaMovil.Expand = True
$CajaMovil.Background = Color.Gray


End


Public Sub CajaPrincipal_Enter()
$CajaPrincipal.Background = Color.Cyan
End

Public Sub CajaPrincipal_Leave()
$CajaPrincipal.Background = Color.DarkCyan
End

Private Function Nombre_Read() As String
Return $Nombre
End

Private Sub Nombre_Write(Value As String)
$Nombre = Value
End

Private Function Movil_Read() As String
Return $Movil
End

Private Sub Movil_Write(Value As String)
$Movil = Value
End



Formulario.

Public Sub Button1_Click()
Dim XContacto As Contacto

If txtContacto.Text = Null Then
Return
Else If txtTelefono.Text = Null Then
Return
Endif

XContacto = New Contacto(txtContacto.Text, txtTelefono.Text, ScrollView1)

txtContacto.Clear()
txtTelefono.Clear()
txtContacto.SetFocus()

End



Código fuente

lunes, 21 de septiembre de 2015

Mostrar lista de coincidencias de nombres


Esto trata de presentar una lista de nombres que coincidan con lo que vamos tipeando en el txt, la lista la presentamos en un combox que esta oculto solo se ve cuando encuentra al menos una coincidencia.

Tuve que hacer así, pues lo tenia hecho solo en un combobox pero después de una actualización de gambas ningún combobox funcionaba bien, además de mis limitaciones como programador novato que soy, pero esta solución esta prolija y funciona bien, se las dejo para que experimenten.

Cuando disponga de tiempo comentare el código, saludos.



' gambas class file

' by Postapase

Public EstosNombres As New String[]

Public Sub Form_Open()

Me.Center

EstosNombres.Add("JOSE")
EstosNombres.Add("JUAN")
EstosNombres.Add("JOSELO")
EstosNombres.Add("MARIA")
EstosNombres.Add("MARCELO")
EstosNombres.Add("MARCOS")

End

Public Sub txtNombre_KeyRelease()
Dim nombre As String

If Len(txtNombre.Text) = 0 Then
cbxNombre.Visible = False
Return
Endif

cbxNombre.Clear

For Each nombre In EstosNombres
If InStr(Left(UCase(nombre), Len(txtNombre.Text)), UCase(txtNombre.Text)) = 1 Then
cbxNombre.Add(nombre)
cbxNombre.Visible = True
Endif
Next

End

Public Sub cbxNombre_Click()

txtNombre.Text = cbxNombre.Text
cbxNombre.Visible = False

End


ListaComboBox-0.0.1.tar.gz