Shell 08-01-2023, 13:38
Buenas!.

Este control tiene un menú flotante (aunque creo que se le llama de otra forma) cuando hacemos clic derecho sobre el.
Tenemos tres opciones. Eliminar color, eliminar colores, ordenar colores de forma descendente.

[Imagen: Y8iNSHf.png]

En el botón Mostrar Colores me muestra en consola el valor en decimal de cada color que se encuentra en la lista del ColorPalette.
Pero no entiendo el orden. ¿ Cómo se supone que ordena el array de colores ?.

Código:
Public Sub btnaddColor_Click()

  ColorPalette1.Add(ColorChooser1.Value)

End

Public Sub btnMostrarColores_Click()

  For j As Integer = 0 To ColorPalette1.Colors.Max
    Print ColorPalette1.Colors[j]
  Next

End

Public Sub Form_Open()

  Dim icolores As Integer[] = Settings["Colores"]

  ColorPalette1.Colors = If(IsNull(icolores), [&HFF0000, &H00FF00, &H0000FF], icolores)

End


Public Sub Form_Close()

  Settings["Colores"] = ColorPalette1.Colors

End


Esta es la lista que me crea a la salida por la consola:
 
Cita:16711834
16711935
10551551
255
39679
65535
65421
65280
11009792
16776960
16760832
16746240
16734464
16711680


Ya veo, ordena, pero no es un orden natural. Pues es como lo hace por defecto.
Un array de enteros solo se puede ordenar ascendente o descendente, no es como el de cadenas que tiene método de comparación.
Aun así los números no tienen un orden muy adecuado. Parecen más cadenas que números

Creando otro formulario en el mismo ejemplo, los números se mostraron así:

[Imagen: ToRa4bT.png]

Código:
Const NUMMAXIMOS As Integer = 10

Private numeros As New Integer[]
Private numerosca As New Integer[]
Private numeroscd As New Integer[]

Public Sub Form_Open()

  Randomize

  Me.Title = "Orden Ascendente y Descendente"
  For j As Integer = 0 To NUMMAXIMOS - 1
    numeros.Add(Rand(1, 10 ^ 8))
  Next

  numerosca = numeros.Copy().Sort(gb.Ascent)
  numeroscd = numeros.Copy().Sort(gb.Descent)

  With tblNumeros
    .AutoResize = True
    .Header = GridView.Both
    .Columns.Count = 3
    .Rows.Count = NUMMAXIMOS
    .Font = Font["Noto Mono, 11"]
    .Columns[0].Title = "Números"
    .Columns[0].Expand = True
    .Columns[0].Alignment = Align.Center
    .Columns[1].Title = "Ascendente"
    .Columns[1].Expand = True
    .Columns[1].Alignment = Align.Center
    .Columns[2].Title = "Descendente"
    .Columns[2].Expand = True
    .Columns[2].Alignment = Align.Center
  End With

End


Public Sub tblNumeros_Data(Row As Integer, Column As Integer)

  tblNumeros[Row, 0].Alignment = Align.Center
  tblNumeros[Row, 0].Text = numeros[Row]

  tblNumeros[Row, 1].Alignment = Align.Right
  tblNumeros[Row, 1].Text = numerosca[Row]

  tblNumeros[Row, 2].Alignment = Align.Right
  tblNumeros[Row, 2].Text = numeroscd[Row]

End

Public Sub btnSalir_Click()

  Me.Close

End


Saludos
Archivos adjuntos
.gz
EjemploControlesColoresEnGambas-0.0.1.tar.gz (Tamaño: 12.57 KB Descargas: 1)
Shell 07-01-2023, 01:35
Buenas!.

Espero que los reyes hayan sido muy buenos con ustedes. Bueno, eso será si se han portado bien. Tongue

Este ejemplo muestra el color que nuestro cursor apunta sobre el escritorio.
Es un ejemplo para hacer otro.

Código:
Private atimer As Timer

Public Sub Form_Open()

  With atimer = New Timer As "Tiempo"
    .Delay = 50
    .Start
  End With

End


Public Sub Tiempo_Timer()

  Dim unaimagen As Image

  lblX.Text = CStr(Mouse.ScreenX)
  lblY.Text = CStr(Mouse.screeny)

  unaimagen = Desktop.Screenshot(Mouse.ScreenX, Mouse.ScreenY, 1, 1).Image
  With PictureBox1
    .Mode = PictureBox.Fill
    .Picture = unaimagen.Picture
  End With

End


Public Sub Form_KeyPress()

  'No existen bordes en el formulario, la tecla escape aborta la ejecución
  If Key.code = Key.Esc Then Me.Close()

End

Mañana continuaré leyendo los mensajes que me quedan por leer. Ahora ya es un poco tarde. Buenas noches!.

Saludos
Archivos adjuntos
.gz
ObtenerColorPixelEscritorio-0.0.1.tar.gz (Tamaño: 12.07 KB Descargas: 1)
Shell 05-01-2023, 00:17
Buenas!.

Los ejemplos que estoy estudiando son para temas claros. Es horrible a veces como se ve en un tema oscuro
algo que puede quedar bien en un tema claro y viceversa claro.

¿ No podemos seguir alguna norma con esto o solucionar un poco el problema ?.
No veo otra opción en este caso que pasar a tema claro si quiero ver correctamente los ejemplos.

Si fuera posible programarlo:
- Si es un tema claro usa el verde para el fondo del panel.
- Si es un tema oscuro usa un amarillo para el fondo del panel.
(Por decir un color)
 
Siempre se puede dejar por defecto, pero esto no siempre es así.

El problema que veo es que en tu ordenador se puede ver bien, pero si compartes ese código, cada usuario personaliza su escritorio.
Cuando digo norma, me refiero a hacer las cosas para que todos podamos ver los proyectos sin problemas visuales.

Saludos
Páginas (571):    1 237 238 239 240 241 571   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 309
Último miembro: toniroman
Temas del foro: 1,761
Mensajes del foro: 9,153
Últimos temas
Problema con el repósito ...
Foro: Instalación
Último mensaje por: guizans, 14-04-2026, 21:38
Respuestas: 2 - Vistas: 274
UEFI y BIOS
Foro: Hardware & IoT
Último mensaje por: guizans, 13-04-2026, 21:22
Respuestas: 3 - Vistas: 2,429
Visual Studio Code con Ga...
Foro: General
Último mensaje por: guizans, 07-03-2026, 14:24
Respuestas: 2 - Vistas: 644
WebForm con mysql gridvie...
Foro: WebApp/WebForms
Último mensaje por: vjarvelo, 03-03-2026, 16:32
Respuestas: 2 - Vistas: 3,317
Sobre la proteccion del c...
Foro: General
Último mensaje por: Shordi, 19-02-2026, 11:07
Respuestas: 7 - Vistas: 1,206
Powered By MyBB, © 2002-2026 MyBB Group.
Made with by Curves UI.