Página 1 de 1

Carregando XML

Enviado: 25 Jun 2012 16:09
por bencz
Olá, gostaria de saber, como posso fazer para carregar uma interface pelo XML q o xDesign gera...
bom,busquei aqui no forum, e encontrei isso:

Código: Selecionar todos

oForm1 := HFormTmpl():Read( "teste.xml" )
oForm1:Show()
mas, quando carrego o form, ele apenas pisca na tela.....
outra coisa que eu gostaria de saber é, se eu posso utilizar eventos que eu escrevi par aos botoes e etc, carregando desse XML...

Agradeço a ajuda (:

Carregando XML

Enviado: 26 Jun 2012 09:09
por bencz
Bom, consegui resolver este problema, mas agora, caio em outro problema...

mas, quando eu crio um botão, chamando uma função, passando como parametro uma variavel, o código da erro, como posso resolver isso ?

Carregando XML

Enviado: 26 Jun 2012 22:50
por marcos.gurupi
Seria bom vc postar a solucao do problema.

Carregando XML

Enviado: 27 Jun 2012 02:33
por bencz
BOm, a minha solução foi:

Código: Selecionar todos

oForm1 := HFormTmpl():Read( "teste.xml" )
oForm1:Show(1,,)
bom, mas ainda, não consegui resolver aquele problema...

onde:

Código: Selecionar todos

function main()
    local variavel1 := "OLA"
    oForm1 := HFormTmpl():Read( "teste.xml" )
    oForm1:Show()
return nil

function lala( cString )
    MsgInfo(cString, "inf")
return nil
bom, se eu pego o botão, e faço uma chamada p/ função lala

Código: Selecionar todos

lala( variavel1 )
eu recebo um erro, falando q ele não consegue encontrar a variavel, variavel1 :(

Carregando XML

Enviado: 27 Jun 2012 11:51
por Imatech
Olá Bencz !

Na propriedade do formulário (no inspector) vá em SCOPEVAROBJ ou SCOPECTRLOBJ e defina como PUBLIC, PRIVATE ou LOCAL

ou simplesmente declare a variavel como PUBLIC ou PRIVATE

Exemplo:

Código: Selecionar todos


MEMVAR variavel1

function main()
  public variavel1 := "OLA"
  oForm1 := HFormTmpl():Read( "teste.xml" )
  oForm1:Show()
return nil

function lala( cString )
  MsgInfo(cString, "inf")
return nil


Carregando XML

Enviado: 27 Jun 2012 18:40
por bencz
Bom, mas, pq quando eu tento usar o ONCHANGE do textbox, não funciona ?

Carregando XML

Enviado: 27 Jun 2012 18:54
por Imatech
Olá Bencz !


Faça post com exemplo completo para análise (ainda não vi o código do form)...


Fica + claro para se analisar...



Abç...

Carregando XML

Enviado: 28 Jun 2012 08:07
por bencz
Ok, tenho este XML

Código: Selecionar todos

<?xml version="1.0" encoding="UTF-8"?>
<part class="form">
  <style>
    <property name="Geometry">{456,416,499,244}</property>
    <property name="Name">[]</property>
    <property name="Caption">[Form1]</property>
    <property name="AlwaysOnTop">.F.</property>
    <property name="AutoCenter">.T.</property>
    <property name="FormType">[dlgModal]</property>
    <property name="Modal">.T.</property>
    <property name="ScopeVarObj">[Local]</property>
    <property name="lClipper">.T.</property>
    <property name="lExitOnEnter">.T.</property>
    <property name="lExitOnESC">.T.</property>
    <property name="FromStyle">[Popup]</property>
    <property name="Clipsiblings">.F.</property>
    <property name="Clipchildren">.F.</property>
    <property name="TitleBar">.T.</property>
    <property name="StyleBorder">[3 - Sizable (Default)]</property>
    <property name="Icon">[]</property>
    <property name="NoIcon">.F.</property>
    <property name="SystemMenu">.T.</property>
    <property name="Minimizebox">.F.</property>
    <property name="Maximizebox">.F.</property>
    <property name="Closable">.T.</property>
    <property name="AbsAlignment">.T.</property>
    <property name="WindowState">[1 - Normal (Default)]</property>
    <property name="minHeight">-1</property>
    <property name="maxHeight">-1</property>
    <property name="minWidth">-1</property>
    <property name="maxWidth">-1</property>
    <property name="ScrollBars">[0 - None (Default)]</property>
    <property name="DSControl">.F.</property>
  </style>
  <part class="button" inclass="">
    <style>
      <property name="Geometry">{123,14,90,30}</property>
      <property name="Name">[oButton1]</property>
      <property name="Caption">[Teste]</property>
      <property name="TabIndex">1</property>
    </style>
    <method name="onClick"  ="">
      <![CDATA[teste( lala )]]>
    </method>
  </part>
  <part class="editbox" inclass="">
    <style>
      <property name="Geometry">{16,59,298,22}</property>
      <property name="Name">[oEdit1]</property>
      <property name="varName">[MCO]</property>
      <property name="TabIndex">2</property>
    </style>
    <method name="onChange"  ="">
      <![CDATA[MsgINFO("teste", "testando")]]>
    </method>
  </part>
  <part class="editbox" inclass="">
    <style>
      <property name="Geometry">{16,94,298,22}</property>
      <property name="Name">[oEdit2]</property>
      <property name="varName">[MCO]</property>
      <property name="TabIndex">3</property>
    </style>
  </part>
</part>
e o código que estou usando para testar este XML é:

Código: Selecionar todos

#include "hwgui.ch"

function main()
   private lala := "dsadsads"
   private MCO := "lalalalalalalalalalalala"

   WVW_SETTITLE(,"dsa")

   oForm1 := HFormTmpl():Read( "teste.xml" )
   oform1:Show(1,,)
return nil

function teste( cString )
   MsgInfo(cString, "Teste")
return nil
Bom, quando eu digito no textbox, ele deveria aparecer o msginfo, mas... nada acontece :/

Carregando XML

Enviado: 28 Jun 2012 10:12
por Imatech
O parâmetro esperado não seria um bloco de código !
ou talvez o uso de Macro Comando ?


{ || teste( &lala ) }

Código: Selecionar todos


	      <![CDATA[{ || teste( &lala ) }]]>