¿Como lanzar form por pantalla secundaria? -
kokodrilo - 05-10-2020
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?
RE: ¿Como lanzar form por pantalla secundaria? -
vuott - 06-10-2020
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:
GAMBAS
' Muevamos el formulario principal de nuestra aplicación al tercer escritorio (índice 2):
RE: ¿Como lanzar form por pantalla secundaria? -
kokodrilo - 06-10-2020
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.
RE: ¿Como lanzar form por pantalla secundaria? -
vuott - 06-10-2020
Ah, ahora creo que comprendo.
El uso de dos pantallas siempre ha sido un gran problema y un gran misterio sin resolver en Gambas.
...pero...quizás con los recursos de
GStreamer mediante gb.media...
RE: ¿Como lanzar form por pantalla secundaria? -
jsbsan - 08-10-2020
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
RE: ¿Como lanzar form por pantalla secundaria? -
tincho - 08-10-2020
El tema podría funcionar con algo como esto.
GAMBAS
For n
= 0 To Screens.
Count - 1 If Screens
[n
].
AvailableWidth > b
Then b = Screens[n].AvailableWidth
x = n
Me.
x = Screens
[x
].
AvailableX Me.
y = Screens
[x
].
AvailableY
Saludos
RE: ¿Como lanzar form por pantalla secundaria? -
kokodrilo - 09-10-2020
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