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:



Mostrando entradas con la etiqueta código. Mostrar todas las entradas
Mostrando entradas con la etiqueta código. Mostrar todas las entradas

martes, 5 de enero de 2016

Truco: Como poner el código para poner nieve cayendo en tu blog


Truco: 

Como poner el código para poner nieve cayendo en tu blog



Durante estos días he  añadido un script en el blog, para que se viera nieve cayendo en la página. ¿como se hace?

1) Pues te vas a la página de Diseño


2) Se le coloca un nuevo gadget del tipo "html/javascript"



3) y se le pega el siguiente código:

<script type="text/javascript">
  //Configure below to change URL path to the snow image
  var snowsrc="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTt2vMifRdQzrsJVmTZEcrDQFi1Ebc2sff6momVbWK5R5dEH_XXfAwlRiPo9Hg9GiszbW-xH6NwSNaVRILua-vKQlnoU42hh70G_jBB7bcft6HnH6aw7qjzE4Qo0xKYxU0xFEyzbECZG8/s400/snow.gif"
  // Configure below to change number of snow to render
  var no = 30;
  // Configure whether snow should disappear after x seconds (0=never):
  var hidesnowtime = 0;
  // Configure how much snow should drop down before fading ("windowheight" or "pageheight")
  var snowdistance = "pageheight";
///////////Stop Config//////////////////////////////////
  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;
    function iecompattest(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }
  var dx, xp, yp;    // coordinate and position variables
  var am, stx, sty;  // amplitude and step variables
  var i, doc_width = 700, doc_height = 1600;
  if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
  }
  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  snowsrc=(snowsrc.indexOf("dynamicdrive.com")!=-1)? "http://2.bp.blogspot.com/-MsCdyoGtGdA/UX5gk72qNoI/AAAAAAAAAfQ/LaKTmUG-aJM/s1600/snow+falling+effect.gif" : snowsrc
  for (i = 0; i < no; ++ i) {
    dx[i] = 0;                        // set coordinate variables
    xp[i] = Math.random()*(doc_width-50);  // set position variables
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;         // set amplitude variables
    stx[i] = 0.02 + Math.random()/10; // set step variables
    sty[i] = 0.7 + Math.random();     // set step variables
        if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
      } else {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
      }
    }
  }
  function snowIE_NS6() {  // IE and NS6 main animation function
    doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
        doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) {  // iterate for every dot
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
  }
    function hidesnow(){
        if (window.snowtimer) clearTimeout(snowtimer)
        for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden"
    }
if (ie4up||ns6up){
    snowIE_NS6();
        if (hidesnowtime>0)
        setTimeout("hidesnow()", hidesnowtime*1000)
        }
</script>









domingo, 26 de julio de 2015

Nuevo Libro: MapBdVistas: Framework para creación de aplicaciones de Base de Datos en Gambas3


Nuevo Libro: 

MapBdVistas: 

Framework para creación de aplicaciones de Base de Datos en Gambas3


Os presento una herramienta para el desarrollo de aplicaciones de gestión de datos para escritorio, usando el motor de base de datos sqlite y el lenguaje de programación Gambas3, con el que ahorras mucho tiempo en escribir código y permite la creación de aplicaciones muy rápidamente.

En el libro explico con detalle las funciones que nos proporciona el programa, y un ejemplo completo para que veáis como se crearía una aplicación desde cero, a partir de la base de datos.

Con este framework, he desarrollado las aplicaciones siguientes:






Para la compra del manual en lulu.com:
http://www.lulu.com/shop/julio-sanchez-berro/mapbdvistas-framework-para-creaci%C3%B3n-de-aplicaciones-de-base-de-datos-en-gambas3/ebook/product-22289148.html


Para más información y descarga del programa (gratuito):


Saludos

lunes, 15 de diciembre de 2014

Reutilización de Código en Gambas3:librerías y enlaces simbolicos

Reutilización de Código en Gambas3:

librerías y enlaces simbólicos 


Llega un momento en que recopilamos mucho código (funciones, módulos, clases, formularios) nuestros o de otros programadores , que podemos reutilizarlos en nuestros nuevos proyectos. ¿como hacerlo?. Os explico varias formas:

1) Copiar y pegar
La primera forma es simplemente copiarlos a nuestro proyecto,  que se puede hacer con el típico "copiar y pegar" del portapapeles o directamente copiando los archivos de código (.class, .module, .form) en nuestro proyecto (en la carpeta .src). Usando el IDE de gambas, esto se puede hacer con el menu del arbol del proyecto, con la opción "Nuevo" , elegir lo que queramos agregar al proyecto (una clase, un módulo o un formulario), y en el siguiente formulario ir a la pestaña  "Existente", seleccionando el directorio y el archivo que queramos añadir.


2) Creando librerías
Añadir al proyecto (menú proyecto/propiedades/ pestaña librerías) un ejecutable .gambas que contenga las clases "Exportables" (es importante esto, que las clases se hayan definido con la palabra Export http://gambaswiki.org/wiki/lang/export?l=es ), y así poderlas usar.
Este método hace que las "tripas" de las clases (su código fuente) estén ocultas para los que las usan. Es importante tener hecha la documentación (por ejemplo, usando comentarios en las funciones) para que se muestre la ayuda en el IDE, o tener un documento donde se especifique como se deben de usar los métodos, así facilitamos su uso.


El problema de estos dos métodos es que si por alguna razón (por ejemplo encontrarnos un bug), modificamos el código "original", también tendremos que repasar manualmente los proyectos donde lo hemos usado para actualizarlos a los cambios. En el 1º caso mediante el editor, (lo cual genera mucho trabajo de revisión y es sensible a fallos de mecanografiado). En el 2º caso simplemente tendremos que borrar y añadir la nueva librería .gambas, hago mucho  más rápido y simple.

3) Usamos "enlaces simbólicos"
El uso de "enlaces simbólicos",  es el método más eficaz, para que añadir clases, módulos o formularios. Este método permite que  si hacemos algún cambio en los archivos originales (Nota: deben de ser en los originales, no en nuestros archivos enlazados ya que estos no permiten modificarlos), por ejemplo corregir un bug, este cambio se transmite automáticamente a todos los proyectos que lo estén usándolo (nota: tendremos que cerrar y abrir el proyecto que estemos trabajando para que se actualicen los cambios).
Formulario de  añadir un archivo (clase, módulo o formulario)
 existente con la opción activada de "crear enlace simbólico"

La única desventaja es que  al crear archivos de distribución de código fuente, el  archivo .tar.gz, no se copian los "enlaces", sino los archivos a los que apunta. Por lo tanto la copia es completa pero sin la utilidad que tenemos con los enlaces simbólicos, para cuando cambiamos algo en los archivos originales.

4) Crear Componentes
Este método consiste en añadir al IDE de gambas, proyectos creados como "componentes". Este método lo desarrollaré en otro post, ya que son más pasos a seguir, y algo más complejo.
En el siguiente enlace, podéis ver un video de como se hace y su uso en un proyecto:
http://jsbsan.blogspot.com.es/2014/09/crear-un-componente-partir-de-otro.html


Fuente: