Ojala en Concierto

10 07 2009

Preciosa cancion.





Los Niños de la Sierra se estan muriendo de Frio, basta de Indiferencia

29 05 2009

Despues dicen que porque tengo las ideas politicas que tengo, porque pienso lo que pienso, porque siempre digo que esto del crecimiento de la economia y nuestro tan sonado milagro economico son solo mentiras, cuando ocurren cosas como estas es cuando uno realmente se da cuenta de la verdad del pais donde vive, del mundo donde vivimos, de la exclusion de la pobreza, del racismo cosas que pasan a diario en nuestro pais, pero lo que mas duele es la indiferencia de de muchos de nosotros simplemente porque nos han enseñado a vivir en nuestra estupida burbuja donde todo es bonito y donde supuestamente tenemos libertad y democracia, que ridiculos que somos a veces y que crueles tambien.
Cosas como estas no debemos permitir señores basta ya acaso no hemos aprendido nada de nuestro pasado sangriento, quieren acaso que esto se vuelva a repetir, si seguimos asi, lamentablemente caminamos nuevamente a esa espiral de violencia que ya nos atormento en el pasado, seamos concientes busquemos la igualdad, la justicia, el respeto a los derechos de los demas.
Dejo esta imagen que vale mas de lo que yo puedo escribir y que expresa la rabia y la impotencia que en este momento siento.

Piensa en esos niños cuando te vayas a acostar y te abrigues y te sientas bien calientito y protegido en tu casa.
Piensa en ellos por favor.

“Hasta la victoria siempre”





TableView con Imagenes

25 05 2009

En esta oportunidad voy a agregar un formulario mas al proyecto anterior donde mostrare una tabla con imagenes:

Al momento de ejecutar la aplicacion tendremos algo como esto:

El codigo para lograr esto es el siguiente:

PRIVATE checked AS Picture
PRIVATE unchecked AS Picture

PUBLIC SUB Form_Open()

  DIM j AS Integer
  DIM k AS Integer
  TableView1.Columns.Count = 3
  TableView1.Columns[0].Text = “Mes”
  TableView1.Columns[0].Width = 100
  TableView1.Columns[1].Text = “Compra”
  TableView1.Columns[1].Width = 70
  TableView1.Columns[2].Text = “Venta”
  TableView1.Columns[2].Width = 70
  TableView1.Rows.Count = 12
  ‘Cargamos las imagenes en los objetos Picture
  checked = picture["tick.png"]
  unchecked = picture["notick.png"]
  ‘Establecemos en la columna 0 los meses del año
  TableView1[0, 0].text = “Enero”
  TableView1[1, 0].text = “Febrero”
  TableView1[2, 0].text = “Marzo”
  TableView1[3, 0].text = “Abril”
  TableView1[4, 0].text = “Mayo”
  TableView1[5, 0].text = “Junio”
  TableView1[6, 0].text = “Julio”
  TableView1[7, 0].text = “Agosto”
  TableView1[8, 0].text = “Setiembre”
  TableView1[9, 0].text = “Octubre”
  TableView1[10, 0].text = “Noviembre”
  TableView1[11, 0].text = “Diciembre”
  ‘Con un for recorremos la tabla y marcamos los casilleros con la imagen unchecked
  FOR j = 0 TO 11
   FOR k = 1 TO 2
      TableView1[j, k].Picture = unchecked
      TableView1[j, k].Alignment = Align.Center
   NEXT 
  NEXT

END

La idea es que podamos seleccionar con un check al dar click los cuadros de Compra y Venta para los meses mostrados, en realidad lo que cargamos en el cuadro son las imagenes de “tick.png” y “notick.png”. Ponemos el codigo necesario en el evento click del TableView.

PUBLIC SUB TableView1_Click()

   ‘Hacemos esto porque en la columna 0 tenemos los meses
   IF TableView1.Column > 0 THEN
      IF TableView1[TableView1.Row, TableView1.Column].Picture = unchecked THEN
         TableView1[TableView1.Row, TableView1.Column].Picture = checked
      ELSE
         TableView1[TableView1.Row, TableView1.Column].Picture = unchecked
      END IF
   END IF
  
END

Al hacer uso de la nueva funcion que hemos incorporado tenemos lo siguiente:

Espero que esto pueda ser de utilidad. Hasta la proxima.

“Hasta la victoria siempre”





In Memoriam Maestro Benedetti

19 05 2009

Poema a la Clase Media – Mario Benedetti

Clase media
medio rica
medio culta
entre lo que cree ser y lo que es
media una distancia medio grande
Desde el medio mira medio mal
a los negritos
a los ricos a los sabios
a los locos
a los pobres
Si escucha a un Hitler
medio le gusta
y si habla un Che
medio también
En el medio de la nada
medio duda
como todo le atrae (a medias)
analiza hasta la mitad
todos los hechos
y (medio confundida) sale a la calle con media cacerola
entonces medio llega a importar
a los que mandan(medio en las sombras)
a veces, solo a veces, se dá cuenta(medio tarde)
que la usaron de peón
en un ajedrez que no comprende
y que nunca la convierte en Reina
Así, medio rabiosa
se lamenta(a medias)
de ser el medio del que comen otros
a quienes no alcanza a entender
ni medio.





El Control Workspace en Gambas

16 05 2009

Este control implementa un espacio de trabajo con pestañas donde se pueden tener ventanas embebidas dentro de la ventana principal.
Para utilizarlo tenemos que añadir al proyecto el componente gb.form.mdi, por lo que nos vamos al menu Proyecto->Propiedades luego en la ventana que se abre seleccionamos la pestaña componentes y finalmente en la lista que se muestra seleccionamos gb.form.mdi

Luego aparecera en la Caja de Herramientas, en la pestaña Special el control Workspace.

Para trabajar con este control creamos un formulario principal llamado Principal, con un menu llamado Secundario con dos opciones Abrir y Salir. Al formulario le agregamos el control Workspace.

Tambien creamos otro formulario llamado Secundario que contiene un TextArea

Finalmente para abrir el formulario secundario desde el formulario principal y añadirlo en el workspace hacemos lo siguiente en el evento Click del menu Abrir

PUBLIC SUB menAbrir_Click()

   DIM sform AS Secundario
   sform = NEW Secundario
   Workspace1.Add(sform)
   Workspace1.ActiveWindow = sform

END

Con lo que tendriamos como resultado lo siguiente:

Un ultimo dato que me parece conveniente aportar es que al formulario principal debemos asignarle la propiedad:

Para que el Workspace se ajuste al tamaño de la pantalla al momento de redimensionar.

Bueno esto es todo por este post, saludos combativos :-)





Pequeño editor con pestañas en Gambas

13 05 2009

Despues de muuuuuucho tiempo vuelvo a publicar algo sobre mi querido Gambas en este mi humilde blog, voy a tratar de no abandonarlo mucho pero a veces se me hace complicado por las multiples cosas que tengo que realizar y tambien por la flojera ;-) .
Bueno pues resulta que se me ocurrio hacer un pequeño editor de texto tipo el famosisimo gedit, con pestañitas y todo asi que puse manos a la obra, lo primero fue tratar de averiguar que control nos permite trabajar en Gambas con pestañas y bueno encontre el TabStrip, cuya documentacion mas detallada junto con todas sus propiedades, metodos y eventos las podemos encontrar aqui.

Las propiedades con las que he trabajado aqui y que son las mas importantes de este Contenedor son las siguientes:

Observamos que tenemos tres pestañas porque se ha especificado la propiedad Count=3 si queremos mas pestañas incrementaremos esta propiedad.

En este caso tenemos la propiedad Text= “Pestaña 3″ con lo que establecemos el texto del encabezado de la pestaña actual en este caso la pestaña numero 3 y asi con las demas pestañas.

Ahora si vamos de una vez al editor de texto, tenemos el siguiente formulario en modo de diseño:

Hasta el momento lo unico que hace es abrir archivos de texto en las diferentes pestañas de igual manera a como lo hace el gedit, para esto he trabajado la creacion de cada nueva pestaña de la siguiente manera.

PUBLIC SUB nuevaHoja()

DIM txtEditAux AS TextArea
‘tabDoc es el nombre del TabStrip
‘En este caso estamos incrementando la propiedad Count en 1,
‘cada vez que creamos o abrimos un nuevo documento de texto
tabDoc.Count += 1
‘Incrementamos la variabla conTabs que cuenta el numero de pestañas
conTabs += 1
‘Con la propiedad index establecemos el indice de la pestaña actual,
‘en este caso va a ser el numero de la ultima pestaña creada establecida en conTabs
tabDoc.Index = conTabs
‘Cuando se va a crear un documento nuevo se mostrara el siguiente mensaje en el encabezado de la pantalla,
“Documento N no guardado” donde N es el numero de la pestaña abierta
tabDoc.Text = “Documento ” & Str(tabDoc.Index + 1) & ” no guardado”
‘Con las lineas de codigo siguientes establecemos dentro de cada contenedor el Text Area
‘que pusimos en la primera pestaña en modo diseño
txtEditAux = NEW TextArea(tabDoc)
txtEditAux.X = txtEdit.X
txtEditAux.Y = txtEdit.Y
txtEditAux.Height = txtEdit.Height
txtEditAux.Width = txtEdit.Width
txtEditAux.Visible = TRUE

END

Para abrir un documento de texto ya existente he implementado el siguiente metodo, el cual tambien hace uso en parte del metodo anterior.

PUBLIC SUB menAbrir_Click()

DIM arrCad AS NEW String[]
DIM txtTemp AS TextArea
DIM c AS String
DIM ruta AS String
‘Uso Dialog para desplegar una ventana seleccionadora de documentos
Dialog.Title = “Seleccione un archivo”
‘Con la propiedad Filter filtramos los tipos de documentos permitidos, en este caso archivo txt
Dialog.Filter = ["*.txt", "Archivos de Texto"]
‘El metodo OpenFile retorna Falso si el usuario ha clickeado en OK o verdadero si cancelo la opcion
IF NOT Dialog.OpenFile() THEN
‘Con Dialog.Path obtenemos la ruta del archivo seleccionado
ruta = Dialog.Path
‘Con el metodo Load de la clase File cargamos el contenido del archivo como una cadena de texto
‘Con el metodo Split cortamos la cadena separandola por cada linea de texto del archivo
arrCad = Split(File.Load(ruta), “\n”)
‘La propiedad Children devuelve todos los controles del contenedor(pestaña) actual,
‘en este caso solo tenemos el Text Area, por lo que su indice es cero
‘y lo asignamos a la variable txtTemp
txtTemp = tabDoc.Children[0]
END IF
‘Si el area de texto actual no esta vacia abrimos otra pestaña con otra hoja lista.
IF txtTemp.Text <> “” THEN
nuevaHoja()
END IF
‘Aqui obtenemos cada cadena de texto de las que fueron cargadas del archivo
FOR EACH c IN arrCad
‘Establecemos como encabezado de la pestaña la ruta del archivo
tabDoc.Text = ruta
‘Asignamos la hoja de texto actual a la variable txtTemp para manipular su contenido
txtTemp = tabDoc.Children[0]
‘En este caso con el contenido del archivo
txtTemp.Text &= c & “\n”
NEXT

END

Finalmente aqui tenemos el pequeño programita en ejecucion:

Cualquier duda, sugerencia, aporte, critica murmuracion, lamento, etc :-) espero me la puedan hacer llegar a este humilde espacio, eso es todo por hoy ya me voy a dormir.
Saludos.





La Frase Tonta de la Semana

12 05 2009





Instalar tarjeta de red inalámbrica Atheros AR5212 en Debian

27 03 2009

Excelente tutorial para configurar tarjeta de red inalambrica con chipset Atheros en Debian.

http://riveromjesus.blogspot.com/2007/09/instalar-tarjeta-de-red-inalmbrica.html





Suicidio en Internet

29 11 2008
El joven Abraham Biggs, de sólo 19 años de
edad, se suicidó recientemente ante su webcam mientras los integrantes
de un grupo de chat en vivo le animaban a cumplir su trágica decisión.

Otra vez tenemos un caso donde se tiende a echar la culpa a la tecnologia por lo que sucedio, generalmente nosotros los seres humanos siempre tenemos que aprovechar lo peor de los inventos o de la tecnologia que se crea, ha sucedido con muchas cosas, la polvora, la television y ahora el mismo internet, como leia una vez no se le puede echar la culpa a la tecnologia sino a nuestra propia condicion de seres humanos.
El hecho de que la web este llena de tantas cosas denigrantes, ofensivas y de mal gusto no dice que el internet haya sido un invento perverso hecho por gente de mente retorcida, sino que una vez mas la gente explota el lado negativo de esto.
Yo creo que el internet asi como las nuevas tecnologias deben enseñarse a las personas para lograr un provecho positivo de estas y no para utilizarlo para otros fines, lamentablemente pues vemos que esta persona que tomo esta decision estaba atravesando por una crisis depresiva y que debio buscar ayuda profesional para sobrellevarla y no conversar con gente de un foro a la que tal vez ni siquiera conocia personalmente y que lo animo a tomar la fatal decision de una manera fatalmente irresponsable, como dije antes lamentablemente mucho de este comportamiento se ve a menudo en las redes sociales por personas que han convertido esto en un instrumento para corromper, explotar y sacar lo peor de si.
Espero que se pueda trabajar en un mayor control de los padres hacia los hijos sobre el uso de la tecnologia y tambien sobre las relaciones interpersonales que se deberian llevar en el seno de la familia, esto queridos amigos ya no es cuestion de tecnologia es una cuestion de humanidad.
Fuente:
DiarioTI

Saludos.

 





Foro Gambas

20 11 2008
Hago este pequeño post para recomendar este foro al que me he registrado sobre gambas, esta recien empezando pero es muy bueno.
Aqui el enlace.