Shell 20-05-2023, 22:57
Buenas!.

Viendo un ejemplo de Cogier sobre Drag y Drop, creé algo similar. Pero cuando el objeto es arrastrado fuera del lugar donde debe estar,
este se borra y se elimina de su contenedor de origen.

Tengo un panel con tres etiquetas. Cada etiqueta tiene una palabra que forman una frase desordenada.
Se trata de llevar cada etiqueta al otro panel y que la frase se pueda ver ordenada.

Una vez el control se ha arrastrado o creado en el otro panel, debe ser eliminado del panel de origen.

Para probar el efecto debe ser arrastrado fuera de su contenedor y que no sea el panel 2.

[Imagen: xFFwNB5.png]

Al pulsar el botón de check se comprueba si el orden de la frase es correcto.

Este es el código.

Código:
Private aphrase As String[] = ["Order", "the", "phrase"]
Private tobject As Object
Private stext As String

Public Sub Form_Open()
 
  Dim lb As Label
  Dim adisorderphrase As String[]
 
  adisorderphrase = aphrase.Copy()
  adisorderphrase.Shuffle()
 
  Panel1.Arrangement = Arrange.Column
 
  For ICount As Integer = 0 To adisorderphrase.Max
    lb = New Label(Panel1) As "words"
    With lb
      .text = adisorderphrase[ICount]
      .Font.Size = 18
      .Alignment = Align.Center
      .AutoResize = True
      .Padding = 5
      .Border = Border.Plain
    End With     
  Next
 
End

Public Sub words_enter()
 
  tobject = Last  
  stext = Last.text
 
End

Public Sub words_MouseDrag()
 
  If Mouse.left Then    
    Last.Drag(Last.text)  
    'If your drag to any place the control is deleted. :(
    Last.Delete
  Endif
 
End

Public Sub Panels_Drop()
 
  Dim lb As Label
    
  If Drag.type = Drag.Text Then     
    lb = New Label(Last) As "words"
    With lb
      .Text = Drag.Data      
      .AutoResize = True
      .W = Drag.Source.w
      .H = Drag.Source.h
      .Border = Border.Plain
      .Font.Size = Drag.Source.Font.Size
      .Padding = 5
    End With    
  Endif
  'Drag.Source.Delete
  'Is impossible delete the object here, the control is being dragged
 
End

Public Sub Button1_Click()
 
  Dim wrong As Boolean
    
  If Panel2.Children.Count = aphrase.Count Then
    For r As Integer = 0 To aphrase.Max
      tobject = Panel2.Children[r]
      If aphrase[r] <> tobject.text Then
        wrong = True
        Break
      Endif
    Next    
    If wrong Then
      Message.Error(("The order of words isn't correct"), "OK")      
    Else
      Message.Info(("The order of words is correct"), "OK")
    Endif  
  Else
    Message.Error(("There aren't enough words on the panel"), "OK")
  Endif

End

Saludos
Shell 20-05-2023, 11:49
Buenas!.

Como os comentaba en otro mensaje, quise reducir la clase creada y usar una clase que en ese momento no recordaba su nombre.
Si, no lo recordaba ya que el verdadero nombre de la clase es Rect y no Rectangle.

Se me ocurrió hacer esto en una clase de prueba.

[code]

[Imagen: Zy3Zpbw.png]

Y claro luego en el constructor intente poner el "." para una propiedad...Se congela!!!.
Así que existe alguna confusión con ese nombre.

Ah y fijaros que el nombre de la clase aparece de color distinto. ¿ Cómo si existiese realmente ?.

Saludos
Shell 18-05-2023, 19:47
Buenas!.

Me gustaría comentarles el tema de los perfiles de la configuración de Bios.

Vas cambiando valores a los que deseas tener en la bios y puedes crear un perfil o más ( un archivo de configuración con el nombre que
quieras que almacenará tu configuración de bios).

Este luego lo puedes cargar, así te evitas pues tener que volver a reconfigurar la bios por lo motivos que puedan ser.
Recordar que la bios tiene "muchas" cosas que configurar ( no siempre tiene que ser para overclocking ).
Pero no hay más remedio si quieres aprovechar tu hardware. La memoria a una velocidad, cambiar la secuencia de arranque.
No cambiar "algo" de la bios es raro. ( En un portátil es probable ).

La pila de la bios mantiene la configuración que tengamos en ese momento. Podemos tanto resetearla como quitar la pila y esos valores
se perderían (los actuales). Pero "ojo" eso no elimina el perfil con la configuración que has creado. ( Debería ser así ).

Esta placa contiene dos bios ( la compré en su día por esa cualidad ). La idea es que si falla una, se debería recuperar con la anterior bios
si te ha fallado una actualización del firmare. Lo suyo en parte es que si sabes que la configuración de la bios principal es correcta, transferír
su firmware a la bios secundaria.

Pero, ¿ y los datos del perfil ?. Si quitamos la pila podemos pensar que estos se borraran.
En mi caso he cambiado la pila y luego he recargado el perfil que había creado antes de quitar la pila, sin ningún problema.

Lo que ahora mismo no puedo asegurar es que al flashear el bios ese perfil siga ahí.
Desde febrero del 2022 no he vuelto a flashear el/la bios de esta placa.

De paso tenemos los valores por defecto en caso de una mala configuración del bios.
Esa configuración residirá en alguna parte, algún chip y quien sabe si el perfil creado por nosotros
también reside en el mismo sitio.

Saludos
Páginas (564):    1 176 177 178 179 180 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,030
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: guizans, Hace 10 horas
Respuestas: 4 - Vistas: 120
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,570
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,335
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 116
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.