Page 1 of 1

Ventanas Estilo Messenger

PostPosted: Tue Jan 29, 2008 10:29 pm
by leandro
Amigos del foro tengan buena tarde, como dice el encabezado, que debo hacer para controlar las ventas estilo el ms-messenger. Osea que haya una ventana principal, pero que se pueden abrir mas ventanas sobre esta. Pero que no queden contenidas unas dentro de otras como hace con mdi, alguna idea?

Espero me haya hecho entender, de antemano gracias.

PostPosted: Tue Jan 29, 2008 10:40 pm
by cuatecatl82
Mi estimado Leandro:

Te refieres a vizualizar en un lugar aleatorio de la pantalla una ventana al abrirse, o estoy bastante despistado..?

Ke comportamiento deseas que tengan las ventanas al abrir..?

Comentanos cual es tu idea para poderte dar un empujonsito.. :P

Saludo...

I.S.C. Victor Daniel Cuatécatl León
www.soldisoft.unlugar.com
www.sisa.unlugar.com

Gracias por responder...

PostPosted: Wed Jan 30, 2008 12:00 am
by leandro
Si amigo es eso... es algo parecido a mdi... Pero que las ventanas no queden contenidas dentro de la ventana principal. Es como combinar los dialogos con las ventanas mdi. Que se puedan abrir varios dialogos al tiempo, pero que no esten dentro de la ventana principal.

Ejemplo: Messenger, Al hacer doble clic sobre un contacto para chatear se abre una ventana; si das doble clic sobre otro se abre otra ventana y asi sucesivamente. Pero no estan contenidas dentro de la ventana principal del messeger y al cerra la ventana principal del messenger se cierran todas las ventanas en donde estas chateando.

Amigo de verdad que muchas gracias por tu interes, aqui dejo una imagen de como funciona el messenger.

[img]
[img=http://img352.imageshack.us/img352/4007/dibujocc3.th.jpg]
[/img]

PostPosted: Wed Jan 30, 2008 12:13 am
by sysctrl2
amigo leandro compila este ejemplo

\samples\TESTWNDS.PRG

#include "fivewin.ch"

function main()

local oWnd1, oWnd2

DEFINE WINDOW oWnd1 TITLE "oWnd1" ;
FROM 5, 5 TO 24, 64

DEFINE WINDOW oWnd2 TITLE "oWnd2" ;
FROM 1, 1 TO 20, 60

oWnd2:Show()

ACTIVATE WINDOW oWnd1

return nil

Saludos

PostPosted: Wed Jan 30, 2008 1:16 am
by cuatecatl82
haber se me ocurrio esto, haber que tan cerca estoy..

Pruebalo y me comentas..

#INCLUDE "FIVEWIN.CH"

STATIC nDialogos,nVentana,nXPos,nYPos,oWnd

//-----------------------------------------------------------------------------------------------------------------//
FUNCTION Main()

nVentana:= 0
nDialogos:= 0
nXPos:= 0
nYPos:= 0

DEFINE WINDOW oWnd Title "Ventanas Estilo Messenger" MENU MenuPrin()
ACTIVATE WINDOW oWnd

RETURN nil


//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION MenuPrin()

LOCAL oMenu

MENU oMenu

MENUITEM "&Ventanas"
MENU
MENUITEM "&Dialogos" ACTION (NuevoDial())
SEPARATOR
MENUITEM "&Ventanas" ACTION (NuevaVent())
ENDMENU
ENDMENU

RETURN oMenu

//-----------------------------------------------------------------------------------------------------------------//
STATIC FUNCTION NuevoDial()

LOCAL oDlg

nDialogos:= nDialogos + 1

DEFINE DIALOG oDlg TITLE "Soy el Dialogo "+ALLTRIM(STR(nDialogos))
ACTIVATE DIALOG oDlg ON INIT oDlg:Move(nXPos:= nXPos + 30, nYPos:= nYPos + 30) NOWAIT

RETURN nil

//------------------------------------------------------------------------------------------//
STATIC FUNCTION NuevaVent()

LOCAL oWndMDI
nVentana:= nVentana + 1

DEFINE WINDOW oWndMDI MDI TITLE "Soy la Ventana "+ALLTRIM(STR(nVentana))
ACTIVATE WINDOW oWndMDI ON INIT oWndMDI:Move(nXPos:= nXPos + 30, nYPos:= nYPos + 30)

RETURN nil

Gracias de Nuevo

PostPosted: Wed Jan 30, 2008 4:09 am
by leandro
Amigos Gracias por la ayuda

sysctrl2 -> Estuviste muy cerca, gracias de nuevo por responder. :wink:
cuatecatl82 -> Amigo era lo que necesitaba. :D

Muy amables

PostPosted: Wed Jan 30, 2008 8:44 am
by Antonio Linares
Leandro,

En FWH puedes crear tantas ventanas y diálogos independientes como necesites.

No hay limitación, salvo que al cerrar la ventana inicial, se cerrará toda la aplicación.

Gracias

PostPosted: Wed Jan 30, 2008 12:56 pm
by leandro
Ok Antonio, muchas gracias. El problema ya fue solicionado. :D