Shell 23-07-2020, 13:57
Buenas!.

Tengo un Picturebox que le cambio el color de fondo con la propiedad background.
Pero si su propiedad Border es Raised no se muestra el color correctamente.

El fondo del Picturebox se queda en negro. En cambio si su propiedad Border es distinta a Raised se muestra
el cambio si problemas. ¿ Es cuestión de un problema de temas o es que la propiedad cuando es Raised crea ese error ?.

Código:
Public Sub Pizarra_MouseDown()

  Dim celdaposx As Integer
  Dim celdaposy As Integer
  Dim uncolor As ColorInfo
 
  celdaposx = Int(Mouse.X / tamcelda)
  celdaposy = Int(Mouse.Y / tamcelda)  
  uncolor = Color[aentcolores[celdaposx, celdaposy]]  
 
  lblRojo.Text = uncolor.Red
  lblVerde.Text = uncolor.Green
  lblAzul.Text = uncolor.Blue
  PicColor.Background = Color.RGB(uncolor.Red, uncolor.Green, uncolor.Blue)
  PicColor2.Background = Color.RGB(uncolor.Red, uncolor.Green, uncolor.Blue)

End

En modo diseño con propiedad Border = Raised.
....
Ok, ¿ cómo inserto una imagen ?. Aparentemente con una url.
¿ Algún consejo sobre la forma que debería usar ?.
¿ Debo usar una  página dedicada a estos fines ?. ( Cuando solo se trata de imágenes).

Saludos
Shell 23-07-2020, 13:21
Buenas!.

¿ La habéis probado ya ?. Shy

Como sabéis el mismo día de la mudanza que no se podía acceder a la comunidad , Benoît lanzaba la versión PPA de Gambas,
le estuve comentando que no había ejecutables, tales como el compilador gbc y en breve y rápidamente respondió a la pregunta
y solucionó el problema in situ. Mejor imposible!.

Parece que Benoít no usa Linux Mint.

Aunque tengo virtualizado Linux Mint 20, anteriormente había virtualizado Kubuntu 20.04. Pensando que la Mint 20 incorporaba
de alguna forma QT4, no fue así. El PPA de Gambas 3.15 parece funcionar sin problemas pero con QT5. Quedó obsoleto QT4.

No la he probado lo suficiente. El principal problema que nos podemos encontrar es querer actualizar de una versión anterior.
A algunos le va mejor a otros les va peor.

How to upgrade to Linux Mint 20

En Tricia 19.3 ya se nos mostraba en la barra un icono referente a problemas, conflictos y avisos.
Y entre ellos puede aparecer desde actualización de drivers y como no, de versión de la distro.

 ¿ Nos quitará un poco las ganas de actualizar por no tener QT4 ?. Rolleyes

Saludos
Shell 23-07-2020, 11:49
Buenas!.

Pues comencemos. Cool

Algo que solemos hacer cuando queremos desplazar un sprite por llamarlo de alguna forma.
Ejemplo, un cuadrado dentro de un DrawingArea. Es que si lo hacemos con teclado, tenemos
que crear un grupo de sentencias condicionales, si queremos desplazar a la izquierda, a la derecha..etc.
Eso puede alargar el código.

Podemos usar las colecciones. Imaginar que queremos mediante la pulsación de una tecla
cambiar el color de fondo de un DrawingArea. Si, podemos usar las condicionales también.
Pero podemos ahorrarnos eso.

Bien. El primer problema que me encuentro es:
Usar el evento KeyPress del propio DrawingArea para saber que tecla se ha pulsado y donde lo voy a usar ¿ no ?.
Pues no. Se debe usar el evento KeyPress del formulario.

Tenemos un formulario con tan solo un DrawingArea:

Código:
Public Sub Form_KeyPress()

  Dim colores As Collection = ["r": Color.red, "a": Color.yellow, "b": Color.blue, "v": Color.Green]
    
  If colores.Exist(Lower(Key.text)) Then drw.Background = colores[Lower(Key.text)]
 
End

Podía haber añadido que se mostrase la combinación de colores en la barra de títulos, pero ahora no me acuerdo de ColorInfo. Blush

¿ Cómo lograríamos el movimiento si fueran las teclas del cursor ?.

En este código voy a usar para desplazar la figura, los cursores y ademas el ratón. Nos interesa la parte de los cursores.
Como dicen en otro lenguaje...  Rolleyes ...la clase rect es nuestra amiga.

Código:
Const LADO As Integer = 20

Private coordenada As Integer[] = [0, 0]
Private unrectangulo As New Rect
Private movimiento As Boolean

Public Sub Form_Open()
 
  Me.Title = "Movimiento por mapeado de teclas"
 
  coordenada[0] = (drw.w - LADO) / 2
  coordenada[1] = (drw.h - LADO) / 2
 
End

Public Sub Form_KeyPress()
 
  Dim direccion As Collection = [Str(Key.Left): [-5, 0], Str(Key.Right): [5, 0], Str(Key.up): [0, -5], Str(Key.Down): [0, 5]]
 
  If direccion.Exist(Str(Key.code)) Then
    coordenada[0] += direccion[Key.code][0]
    coordenada[1] += direccion[Key.code][1]
    drw.Refresh
  Endif
 
End

Public Sub drw_Draw()
 
  With unrectangulo
    .X = coordenada[0]
    .y = coordenada[1]
    .W = LADO
    .H = LADO
  End With
 
  Paint.LineWidth = 2
  Paint.Brush = Paint.Color(Color.Green)
  Paint.Rectangle(coordenada[0], coordenada[1], LADO, LADO)
  Paint.Stroke
 
End

Public Sub drw_MouseDown()
 
  If unrectangulo.Contains(Mouse.x, Mouse.Y) Then movimiento = True    
 
End

Public Sub drw_MouseMove()
 
  If movimiento Then
    coordenada[0] = Mouse.x - LADO / 2
    coordenada[1] = Mouse.y - LADO / 2
  Endif
  drw.Refresh
 
End

Public Sub drw_MouseUp()
 
  movimiento = False
 
End

Como sabéis la clave de una colección es una cadena que es lo que uso al convertir el código de la tecla pulsada.
Si imprimiésemos una de las teclas del cursor, no veríamos mucho en la consola de Gambas

Y ahora voy a intentar subir el código. Smile

No he usado velocidad. Según sea derecha, izquierda, arriba o abajo. Siempre uso un valor constante de cinco que o bien sumo o resto
a la coordenada x o y. Si lo sé no he usado diagonales...eso seria complicarlo. Tongue

Saludos

Pues no parece que se vea el formato del código de Gambas. Undecided
Archivos adjuntos
.gz
MovimientoColeccionTeclado-0.0.1.tar.gz (Tamaño: 11.96 KB Descargas: 1)
Páginas (529):    1 525 526 527 528 529   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 270
Último miembro: rabiendeceno
Temas del foro: 1,629
Mensajes del foro: 8,467
Últimos temas
Problema al compilar prog...
Foro: General
Último mensaje por: gampachel, Hace 1 hora
Respuestas: 2 - Vistas: 14
Añadir control a matriz d...
Foro: General
Último mensaje por: Grandamakulo, Hace 1 hora
Respuestas: 6 - Vistas: 137
Ayuda para guardar fotogr...
Foro: Bases de Datos
Último mensaje por: jackrobot, 25-02-2025, 23:02
Respuestas: 4 - Vistas: 233
Gambas + ERP = GamERP.
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: omoreno, 25-02-2025, 17:52
Respuestas: 7 - Vistas: 261
¿Cómo enviar «Control+C »...
Foro: General
Último mensaje por: Grandamakulo, 25-02-2025, 14:14
Respuestas: 3 - Vistas: 118
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.