kokodrilo   05-10-2020, 16:24
#1
buenas,

En el programa VisorRV1960 hay una parte donde muestra en un formulario maximizado una lista x de versículos.
El asunto es que cuando se lanza lo hace en la pantalla1 y hay que desmaximizarlo correrlo a la pantalla2, maximizarlo y recién ahí esta pronto correctamente para trabajar.

La pregunta es como se hace para detectar la segunda pantalla y lanzar el formulario en ella?
Última modificación: 09-10-2020, 18:07 por kokodrilo.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
vuott   06-10-2020, 00:54
#2
Si por "pantalla" te refieres a "Escritorio" (Desktop), en mi opinion tienes que utilizar la Propiedad " .Desktop " de la Clase " DesktopWindow " activando el Componente gb.desktop .

Exemplum simplex
:
Código:
Public Sub Button1_Click()

  Dim dw As DesktopWindow

  With dw = New DesktopWindow(Me.Id)
' Muevamos el formulario principal de nuestra aplicación al tercer escritorio (índice 2):
    .Desktop = 2
  End With

End
Última modificación: 06-10-2020, 01:25 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
kokodrilo   06-10-2020, 01:25
#3
me refiero a una laptop con un proyector o una pantalla secundaria via vga, teniendo asi dos pantallas, por la laptop sale visor y por la pantalla secundaria una ventana x.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
vuott   06-10-2020, 01:37
#4
Ah, ahora creo que comprendo.
El uso de dos pantallas siempre ha sido un gran problema y un gran misterio sin resolver en Gambas. Confused

...pero...quizás con los recursos de GStreamer mediante gb.media...
Última modificación: 06-10-2020, 01:40 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
jsbsan   08-10-2020, 20:33
#5
Yo lo haria por coordenadas (sabiendo que dimensiones tengo en las dos pantallas):
Código:
 
' Gambas class file


Public Sub Button1_Click()

  Dim FTMP As New Form1
  
  FTMP.X = 10 'PANTALLA 1
  FTMP.Y = 10 'PANTALLA 1
  
FTMP.SHOW
End

Public Sub Form_Open()

  Me.X = 100
  Me.Y = 200

End

Public Sub Button2_Click()

   Dim FTMP As New Form1
  
  FTMP.X = 1700 'PANTALLA 2 'DEPENDE DE LAS DIMENSIONES DE PANTALLA QUE TENGAS
  FTMP.Y = 10 'PANTALLA 2
  
FTMP.SHOW

End
tincho   08-10-2020, 23:42
#6
El tema podría funcionar con algo como esto.
Código:
  Dim n As Integer
  Dim b As Integer
  Dim x As Integer

  For n = 0 To Screens.Count - 1
    If Screens[n].AvailableWidth > b Then
      b = Screens[n].AvailableWidth
      x = n
    Endif
  Next

  Me.x = Screens[x].AvailableX
  Me.y = Screens[x].AvailableY
Saludos
Última modificación: 08-10-2020, 23:51 por tincho.

1 Saludo.
kokodrilo   09-10-2020, 18:06
#7
gracias tincho excelente aporte, resolví con esto:

If Screens.Count > 1 Then
    Me.X = Screens[1].X
    Me.y = Screens[1].y
  Else
    Me.X = 350
    Me.y = 10
  Endif

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.