Página 1 de 1

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 2:13 pm
por Sommus
Pessoal,
Estamos desenvolvendo uma aplicação onde preciso que os formulários sejam abertos dentro do formulário principal...
Algumas tentativas:
1) MDI: usando MDI isso funciona... porém não quero que apareça as bordas do formulário, e pelo que observei o MDI só funciona se for com as bordas...
2) Exemplo FormInForm: esse seria o mais indicado porém, notei que como é um "Form simulado" algumas propriedades, métodos e eventos do TForm não ficam disponí­vel, como OnClose, OnInitialize... etc...
3) FormPage: baseado no exemplo do xailer onde coloca-se um form dentro de um TFolderPage, adaptei e coloquei dentro de um TPage... Bom, esse é o caso que mais deu certo, mas, também tem alguns dos mesmos problemas, do "FormInForm", o método showmodal() por exemplo , eu não tenho...
Bom, gostaria de saber se há outra maneira de fazer isso...
Obrigado pela atenção,
Reginaldo

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 2:49 pm
por emeasoft
Reginaldo, utilizo assim:
WITH OBJECT ::oFormX:=oFormX():New( ::oFolderPpage3 )
:Create()
END WITH
Abraços
Mário Angelini

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 3:23 pm
por Sommus
Mário,
Não entendi... No caso o oFormX é de qual classe?
Abraços
Reginaldo

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 6:09 pm
por emeasoft

#include "Xailer.ch"
CLASS nForm FROM TScrollingWinControl
METHOD New( oParent )
METHOD CreateForm() VIRTUAL
ENDCLASS
//------------------------------------------------------------------------------
METHOD New( oParent ) CLASS nForm
Super:New( oParent )
::CreateForm( .T. )
IF !oParent:IsKindOf( "TForm" )
::nAlign := alCLIENT
ENDIF
RETURN Self

Faltou a informação acima.
CLASS oFormX FROM nForm
Abraços
Mário

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 6:17 pm
por Sommus
Mário,
Conforme o problema que relatei... esse é o exemplo "FormInForm" da pasta samples do xailer... O problema é que alguns métodos, propriedades e eventos, não estarão disponí­vel dessa forma... pois a class não herdou de TForm... Tente por exemplo utilizar o evento oninitialize nesse seu formx... verá que dá erro...
Obs: estou tentando falar com vocíª pelo msn e não estou conseguindo...
Abraços
Reginaldo

Formulário dentro de formulário

Publicado: Vie Feb 22, 2013 7:58 pm
por emeasoft
Reginaldo:
não disponí­vel:
OnInitialize e OnChagenFocus
.OnChar, OnEnter, OnExit, OnChange, funcionam normal
.para pegar um valor use:
::oForm:oFormX:oXxxx:Value, por exemplo
Abraços.
Mário Angelini