Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



sábado, 22 de abril de 2017

Actualizando KDE desde PPA: resolviendo problema de embeber consola en krusader


Actualizando KDE desde PPA: resolviendo problema de embeber consola en krusader


Krusader  es una  de mis aplicaciones preferidas a la hora de administrar archivos en mi PC. La trae el escritorio KDE, pero la he podido instalar con también en otros escritorios (xfce por ejemplo). En caso es que mi distro actual (linux mint 16.04), la versión que esta en repositorios es la 2.4.0 que tiene un pequeño bug a la hora de embeber la consola dentro de los paneles de la propia aplicación:


Consola embebida dentro de los paneles de Krusader
Nota: En linux mint 16.04, da un error al embeber la consola, la captura es de la version 2.5 de krusader

¿como resolvemos este problema? Añadiendo el siguiente  PPA a nuestro sistema:

sudo add-apt-repository ppa:kubuntu-ppa/backports-landing
sudo apt-get update

Una vez hecho esto, con simplemente:
sudo apt-get install krusader

Se nos instala la version de krusader 2.5.0, que tiene corregido el bug de embeber la terminal o consola :)

Os dejo un video que hice hace tiempo, explicando el uso de perfiles en krusader:


lunes, 17 de abril de 2017

Gambas3: Nuevo control DayButton

Gambas3: Nuevo control DayButton

Una forma de extender el lenguaje gambas3, es crear nuevos controles que faciliten el trabajo de los programadores, a la hora de crear interfaces y/o programas. Este control es un ejemplo, sobre partiendo de uno existente (el button), se crea otro que nos muestra la fecha que le hayamos pasado en su propiedad fecha de la siguiente manera: día de la semana en texto, día numéricamente, y mes. Ademas si te sitúas encima de el, te sale el tooltip con la fecha:







Para redibujar el interior del botón, el código es el siguiente:

Public Sub _new()
  $hDA = New DrawingArea(Me) As "da"
  Me.Proxy = $hDA
End
Public Sub da_Draw()
  Dim hImage As New Image
  Dim iFlag As Integer = Style.StateOf(Me)
  Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False)
  If Me.W > Me.H Then
    Me.H = Me.W
  Else
    Me.W = Me.H
  Endif
  Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False)
  Draw.RichText(Html(WeekDatText(Me.fecha)), 0, 0, Me.W, Me.H / 3, Align.Center)
  Draw.RichText(Html(Day(Me.fecha)), 0, Me.H / 3, Me.W, Me.H * 1 / 3, Align.Center)
  Draw.RichText(Html(MonthText(Me.fecha)), 0, Me.H * 2 / 3, Me.W, Me.H / 3, Align.Center)
End

Y las funciones que convierten la fecha en texto (dia, mes) son:


Public Function WeekDatText(fecha As Date) As String
  Dim ArrayDay As String[]
  ArrayDay = [("Lunes"), ("Martes"), ("Miercoles"), ("Jueves"), ("Viernes"), ("Sabado"), ("Domingo")]
  Return Choose(WeekDay(fecha), ArrayDay[0], ArrayDay[1], ArrayDay[2], ArrayDay[3], ArrayDay[4], ArrayDay[5], ArrayDay[6])
End
Public Function MonthText(fecha As Date) As String
  Dim ArrayMonth As String[]
  ArrayMonth = [("Enero"), ("Febrero"), ("Marzo"), ("Abril"), ("Mayo"), ("Junio"), ("Julio"), ("Agosto"), ("Septiembre"), ("Octubre"), ("Noviembre"), ("Diciembre")]
  Return ArrayMonth[Month(fecha) - 1]
End
Private Function Fecha_Read() As Date
  If hfecha = Null Then
    hfecha = Now
    Me.Tooltip = Str(Format(hfecha, "dd-mm-yyyy"))
  Endif
  Return hfecha
End


El video de presentación del control:



Enlace de descarga:  alojado en google drive


miércoles, 12 de abril de 2017

Gambas + JavaScript: Diagramas de Gantt con jquery.ganttView




Gambas + JavaScript: 

Diagramas de Gantt con jquery.ganttView



Mediante el control Webview (que proviene del componente gb.qt4/5.webkit), gambas nos proporciona la posibilidad de usar script y librerias realizadas en javascript.

 Este es un ejemplo de uso de la libreria jquery.ganttView, para realizar diagramas gantt, los cuales podemos definir desde un textarea y ver el resultado del gráfico dentro del control Webview:


Os dejo un video donde podéis ver como interactuar con el programa:





Véase también otro ejemplo de javascript con gambas para realizar distintos tipos de gráficos (de barra, tarta, etc):  Usando JavaScript en Gambas3: Creación de gráficas







Enlace de descarga codigo fuente e instalador: archivo alojados en google drive







martes, 11 de abril de 2017

[Web] Tipo de letra: font awesome

[Web] Tipo de letra:  font awesome


Escuchando el podcast "Aprende a Programar" de Luis Peris (https://www.ivoox.com/003-de-empresario-a-programador-audios-mp3_rf_18052924_1.html), estuvieron comentando el tipo de letra font awesome, que es muy práctica para las páginas web, donde tengamos que poner logotipos de twiter, facebook, youtube etc.. ya que vienen definido como letras, que se pueden escalar sin problemas de pixelados, y apenas van a tener peso de kbytes en el  sitio en la página web (muchísimo  menos que las imágenes).

Os dejo una captura, y los enlaces donde podéis conseguirla


Una pequeña muestra de los caracteres de este tipo de letra
  http://fontawesome.io/cheatsheet/

Descarga: http://fontawesome.io/#modal-download

Para descargar el tipo de letra, pulsar en el botón: "No thanks, just download Font Awesome"




Fuentes:

http://fontawesome.io/cheatsheet/


https://www.w3schools.com/icons/fontawesome_icons_intro.asp




miércoles, 5 de abril de 2017

Como hacer un formulario de "espera" con animación


Como hacer un formulario de "espera" con animación
Algunas veces en nuestras aplicaciones tenemos que hacer una tarea que desconocemos cuanto tiempo va a tardar. Si mientras se realiza esa tarea, no mostramos nada al usuario, puede dar la impresión que la aplicación se ha colgado. La forma hace que el usuario no se lleve esa impresión, es mostra algo (por ejemplo  una animación (por ejemplo).

En el siguiente video os explico como hacerlo.



Como veis, se trata de usar las propiedades de la clase process (proceso):
Public prsBatch As Process
....
 prsBatch = Shell "sleep 10" '..... 'comando que no sabemos cuanto dura su tiempo de ejecucion
  Inc Application.busy
  While prsBatch.state = prsBatch.running
    Wait 0.1
    dibujapuntitos(etiqueta)
    dibujaaspa(etiquetaspa)
    dibujaDibujo(Cuadrodibujo)
  Wend
  Dec application.busy
......
La funcioón dibujaDibujo(), se encarga de ir cambiando el dibujo de un control picturebox, segun el valor de un contador:

Private Sub dibujaDibujo(dibuj As PictureBox)
  contadorDibujo += 2
  Select Case contadorDibujo
    Case 1 To 4
      dibuj.Picture = Picture.Load("01.png")
      dibuj.refresh()
    Case 5 To 9
      dibuj.Picture = Picture.Load("02.png")
      dibuj.refresh()
    Case 10 To 14
      dibuj.Picture = Picture.Load("03.png")
      dibuj.refresh()
    Case 15 To 19
      dibuj.Picture = Picture.Load("04.png")
      dibuj.refresh()
    Case 20 To 24
      dibuj.Picture = Picture.Load("05.png")
      dibuj.refresh()
    Case 25 To 29
      dibuj.Picture = Picture.Load("06.png")
      dibuj.refresh()
    Case 30 To 34
      dibuj.Picture = Picture.Load("07.png")
      dibuj.refresh()
    Case 35 To 39
      dibuj.Picture = Picture.Load("08.png")
      dibuj.refresh()
    Case Else
      dibuj.Picture = Picture.Load("01.png")
      dibuj.refresh()
      contadorDibujo = 0
  End Select
End


Codigo fuente: codigo fuente alojado en google drive


Fuentes:
https://www.gambas-es.org/viewtopic.php?f=1&t=6256&start=20

sábado, 1 de abril de 2017

gbCluedo: Investiga cual fue el asesino....




gbCluedo: Investiga cual fue el asesino....


gbCluedo, es una variante del juego Cluedo, para un solo jugador, donde deberás investigar haciendo sugerencias para descubrir cual fue el asesino del Dr.Lemon, haciendo preguntas sobre personaje, lugar y arma..





Descarga del instalador y el código fuente:   Alojado en google drive