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.

Saludos y espero sus opiniones.

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

miércoles, 18 de enero de 2017

FontName control supersimplificado




Este pequeño control surge de tener una lista completa de todos los nombres de fuentes disponibles comodamente en un combobox.
Pero a veces, podríamos necesitar ese combobox en muchos formularios.
Entonces es ahí donde hacer una clase tiene sentido,su poder o ventaja (ahorro de código) pues sera una tarea repetitiva.


' gambas class file

'by postapase
'http://novatocodegambas.blogspot.com.uy/

Export

Inherits ComboBox

Public Const _DefaultSize As String = "32,4"
Public Const _Group As String = "Chooser"

Private $ListaFuentes As New String[]

Public Sub _new()

Me.ReadOnly = True
Me.List = ObtenerFuentes()

End

Public Sub ObtenerFuentes() As String[]

Dim NombreFuente As String

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

Return $ListaFuentes

End


El nombre de la fuente seleccionada la obtenemos con:
FontName1.Current.Text

La lista de nombres de fuentes estan en la propiedad list de FontName:
FontName1.List



Descargar control

jueves, 5 de enero de 2017

For...Next con DownTo



Ejemplo estandar=1
Ejemplo estandar=2
Ejemplo estandar=3
Ejemplo estandar=4
Ejemplo estandar=5
Ejemplo estandar=6
Ejemplo estandar=7
Ejemplo estandar=8
Ejemplo estandar=9
Ejemplo estandar=10

Ejemplo step 2=1
Ejemplo step 2=3
Ejemplo step 2=5
Ejemplo step 2=7
Ejemplo step 2=9


iVar3 = Rand(0, 40) el resultado fue 13

DownTo se puede usar con controles que manejen index como listbox por ejemplo.
si en vez de poner DownTo en 0 lo pongo en 14 el for nunca se ejecutara en el caso que salga un numero menor a 14 [ Rand(0, 40) ], si es mayor por ejemplo 20, el bucle se repetirá 6 veces. Si es igual se ejecutara una sola vez.

Ejemplo DownTo=13
Ejemplo DownTo=12
Ejemplo DownTo=11
Ejemplo DownTo=10
Ejemplo DownTo=9
Ejemplo DownTo=8
Ejemplo DownTo=7
Ejemplo DownTo=6
Ejemplo DownTo=5
Ejemplo DownTo=4
Ejemplo DownTo=3
Ejemplo DownTo=2
Ejemplo DownTo=1
Ejemplo DownTo=0

Ejemplo step -2=10
Ejemplo step -2=8
Ejemplo step -2=6
Ejemplo step -2=4
Ejemplo step -2=2
Ejemplo step -2=0

Saludos

miércoles, 4 de enero de 2017

Encontrar definición (función de la IDE)


Cuando tenemos dudas del funcionamiento de un comando de gambas tenemos que ir a buscar en ayuda y que recorrer este camino....

Ir al signo pregunta-->Navegar en ayuda-->Índice de lenguaje

y cuando estamos ahí tenemos que buscar nuestro comando.

pues la IDE tiene un atajo mas que importante se llama "Encontrar definición"

y consiste en seleccionar el comando... por ejemplo en la imagen esta seleccionado Each y presionar la tecla F2... y guala se abre la ayuda directamente en ese comando o palabra clave.

Bueno espero les sea de utilidad y disfruten de la comodidad de gambas.

Saludos.

Nota: es importante seleccionar solo el comando ni un solo carácter de mas.(no muestra nada)
Si seleccionas algunos caracteres de menos en el comando igual lo detecta. pero no un carácter de mas.
para seleccionar solo el comando hacemos doble clic sobre el y queda seleccionado perfectamente. (Gambas 3.9.2)

viernes, 30 de diciembre de 2016

Herramienta de programador gambas (limpiaTaller)

Hola!, aquí una idea para facilitar nuestro trabajo diario de programación.
limpaTaller es un pequeño script que elimina el paquete instalado de nuestro proyecto en este caso es taller-2015 pero podría ser tu proyecto.
también borra la carpeta de trabajo del programa taller 2015 y su archivo de configuración ubicado en: "$HOME/.config/gambas3/Taller_2015.conf"

la utilidad de este script es ver si nuestro programa tiene errores, pues al borrar todo el programa comienza de cero y ves si todo anda correctamente.

en mi caso y para mi proyecto necesite ese script pero ustedes tendrán que adaptarlo a su proyecto. Solo hay que aprender un poco de Bash y no es difícil.

aquí un manual básico para empezar:
https://thales.cica.es/rd/glinex/practicas-glinex05/manuales/bash/practica.pdf

---------------  comienzo ---------------------

#!/bin/bash
# Desintalación completa de Taller 2015
echo '*** Desintalación completa de Taller 2015 ***'
carpeta_taller="$HOME/Taller2015"
archivo_config="$HOME/.config/gambas3/Taller_2015.conf"
# Desintalar paquete taller-2015
sudo apt-get purge taller-2015

# Sí el archivo existe lo elimina
if  test -f $archivo_config
then
rm $archivo_config
echo '*** Archivo '$archivo_config' eliminado'
fi

# Sí la carpeta existe la elimina
if  test -d $carpeta_taller
then
sleep 2
rm -r $carpeta_taller
echo '*** Carpeta '$carpeta_taller' eliminada'
fi

echo '*** Tarea completada! ***'
------------- fin ---------------------

Dar permisos de ejecución al script:  chmod 775  nombreScript
Ejecutar script:  ./nombreScript

Saludos gamberos

miércoles, 28 de diciembre de 2016

Clase txtasc



Buenas,
Resulta que en el programa taller 2015 tengo una pequeña herramienta que me ayuda a verificar los cheksum de las .iso de sistemas operativos que cada tanto hay que bajar.

Se puede usar de forma manual, es decir pegar el cheksum en un cuadro de texto, despues simplemente le damos al programa la ubicacion de la .iso y el programa hace la comprobación cuando termina veremos si esta todo bien o hubo error.

Pues bien tambien le di a esta herramienta la posiblilidad de extraer los cheksum de los archivos... ejemplo de archivo:


En ese archivo no parece complicado extraer la informacion y mostrarla en un tableview.....


pero... en el archivo siguiente el asunto se complica por su formato y por que varia el hash, indicado en una etiqueta 'hash:'

Ejemplo:


Bueno esta clase lo que hace es extraer los nombres de las distribuciones
indicado con la flecha azul de la derecha, y sus correspondientes hashes.

bueno les dejo el codigo para que experimenten.
la clase esta fresquita aun, seguramente tiene muchisimas mejoras, pero ya hace su tarea para lo cual fue creada.

Saludos.





' gambas class file

'Clase txtasc by postapase 28/12/2016

Public Const SHA1 As String = "SHA1"
Public Const SHA256 As String = "SHA256"
Public Const SHA512 As String = "SHA512"


Private Const COMIENZO As String = "-----BEGIN PGP SIGNED MESSAGE-----"
Private Const HASH As String = "Hash:"
Private Const FINAL As String = "-----BEGIN PGP SIGNATURE-----"

Property TipoHash As String
Property HashDistro As Collection

Private $TipoHash As String
Private $HashDistro As New Collection


Public Sub _new(RutaArchivo As String) ''Ingresar ruta de archivo *.txt.asc
Dim archivo As File
Dim parrafo As String
Dim tipo As String
Dim CorteTipoHash As New String[]
Dim CorteHash As New String[]
Dim Contenido As String


If Not Exist(RutaArchivo) Then
Debug Error.Text
Return
Endif

archivo = Open RutaArchivo For Read

While Not Eof(archivo)

Line Input #archivo, parrafo

If InStr(parrafo, FINAL) <> 0 Then Break

If InStr(parrafo, HASH) <> 0 Then

CorteTipoHash = Split(parrafo, " ", Null, True)

QueTipoDeHashEs(Trim(CorteTipoHash[1]))

Endif

If InStr(parrafo, COMIENZO) = 0 And If InStr(parrafo, HASH) = 0 And If Not IsNull(parrafo) Then

CorteHash = Split(parrafo, " ", Null, True)

$HashDistro.Add(Trim(CorteHash[0]), Trim(CorteHash[1]))

Endif

Wend

Close #archivo

HashDistro_Write($HashDistro)

End

Private Function TipoHash_Read() As String
Return $TipoHash
End

Private Sub TipoHash_Write(Value As String)
$TipoHash = Value
End

Private Function HashDistro_Read() As Collection
Return $HashDistro
End

Private Sub HashDistro_Write(Value As Collection)
$HashDistro = Value
End

Private Sub QueTipoDeHashEs(texto As String)

Select Case texto
Case SHA1
$TipoHash = SHA1
Case SHA256
$TipoHash = SHA256
Case SHA512
$TipoHash = SHA512
Case Else
$TipoHash = ""
End Select

TipoHash_Write($TipoHash)

End





miércoles, 21 de diciembre de 2016

Fragmentos de código


Fragmentos de código lo ubicamos en...
Herramientas--->Preferencias--->Fragmentos de código

Fragmentos de código trata de un sistema para ahorrar tiempo y trabajo al programador....

por ejemplo si queremos declarar una variable de tipo string llamada nombre dentro de una subrutina (Dim) entonces escribimos letra por letra....

Dim nombre as string

sin embargo hay una forma mas fácil gracias a la herramienta Fragmentos de código

escribimos ds y tab y queda asi:  Dim sVar As String
(ds es la cadena de disparo, y con tab disparamos  para que imprima el texto)
(d=Dim  s=String)



y queda seleccionado y pronto para borrar Var que es donde va el nombre de nuestra variable, la s antes de var indica que es una variable de tipo string muy util cuando tenemos un programa muy grande.

Otro ejemplo ahora con un subrutina donde tendriamos que teclear letra por letra esto:

Public Sub MiSubrutina()
 
End

en cambio usando las abreviaturas de Fragmentos de código solo debemos tipear

ps  y tab  obteniendo esto:

Public Sub Name(Arguments)

End

quedando name seleccionado pronto para borrar y escribir el nombre de nuestra rutina, si nuestra rutina lleva argumentos entonces borramos arguments y tipeamos lo que necesitemos sino borramos argumento y listo.

otra que usamos mucho podria ser if y tab que imprime...

If Test Then
  
Endif

todas estas abreviaturas vienen predefinidas

pero podemos crear las nuestras o editar las ya existentes.

para aprender a crear mi consejo es que edites las ya existentes así descubrís que significa cada cosa  y después si crear tus propias abreviaturas o cadenas de disparo.




Saludos


Nota: tab=Tecla tabulador




Related Posts Plugin for WordPress, Blogger...

Facebook

www.gambas-es.org

www.gambas-es.org
Si quieres que tu curva de aprendizaje sea rápida, regístrate en este gran foro en español.