HMG: alterando a propriedade de um objeto

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Danny Boy Broadsword
Usuário Nível 1
Usuário Nível 1
Mensagens: 19
Registrado em: 26 Nov 2016 22:08
Localização: Belo Horizonte/MG

HMG: alterando a propriedade de um objeto

Mensagem por Danny Boy Broadsword »

Senhores, boa noite!

Primeiros testes com o SDK HMG 3.0.46, gostei do: BAIXAR -> INSTALAR -> COMEÇAR A USAR -> CORRER PRO ABRAÇO!
Projeto simples de acesso a um database MYSQL, feito via IDE:

1 FORM + 2 BUTTON.
BUTTON1 aciona a conexão do banco de dados.
BUTTON2 desfaz essa conexão.

Já consegui êxito TOTAL no objetivo! Feliz!
Mas, mas, mas... Adicionei uma certa complexidade (lembrando que estou usando a IDE)...
O BUTTON1 vem com a propriedade VISIBLE:=.T. e o BUTTON2 com a propriedade VISIBLE:=.F. facilmente definida em tempo de desenho pela IDE.
Quando aciono o BUTTON1 ele fica invisível e trás o BUTTON2 (que estava invisível). Ao acionar o BUTTON2 deveria ocorrer o inverso, ou seja, mel com açúcar!

Pensei e tentei algo como: MAIN.BUTTON_1.VISIBLE:=.T. ou ainda... MAIN.BUTTON_1:VISIBLE(.F.) sem sucesso!

Questão
Onde e como modificar as propriedades dos BUTTON dado os seguintes aquivos...

MAIN.FMG

Código: Selecionar todos

* HMG-IDE Form Designer Generated Code
* (c) Roberto Lopez - http://sites.google.com/site/hmgweb

DEFINE WINDOW TEMPLATE AT 256 ... ( + uma pá de propriedades omitidas para encurtar o codigo... )

    DEFINE BUTTON Button_1
        ... (aqui um montão de propiedades)
        VISIBLE .T.
        ...(aqui + um montão de propiedades)
    END BUTTON

    DEFINE BUTTON Button_2
        ... (aqui um montão de propriedades)
        VISIBLE .F.
        ...(aqui + um montão de propriedades)
    END BUTTON

END WINDOW
MAIN.PRG

Código: Selecionar todos

#include <hmg.ch>
Function Main   

public oServer:=NIL
        Load Window Main
        Main.Center
        Main.Activate
Return
main_button_1_action.prg

Código: Selecionar todos

#include "hmg.ch"

declare window Main
Function main_button_1_action
    mysql_connect("127.0.0.1", "root", "poooodicreeeee")
Return Nil 
main_button_2_action.prg

Código: Selecionar todos

#include "hmg.ch"

declare window Main
Function main_button_2_action
    mysql_destroy()
Return Nil 
conex.prg

Código: Selecionar todos

#include <hmg.ch>

FUNCTION mysql_connect(cHostName, cUserName, cPassword)
 
  oServer := TmySQLserver(cHostName, cUserName, cPassword):new()
  
  
  IF(cHostName==NIL, cHostName:=pcHostName,  )
  IF(cUserName==NIL, cUserName:=pcUserName,  )
  IF(cPassword==NIL, cPassword:=pcPassword,  )    
  
  IF( oServer:netErr() )
     msgStop("Erro de conexão ao database",  "MySQL")
     RETURN .F.
  EndIF
  
  msgInfo("Conexão estabelecida com sucesso!",  "MySQL")

  RETURN .T.
//-----------------------------------------------------------

FUNCTION mysql_destroy()

 IF( oServer != NIL )
    oServer:destroy()
    oServer:=NIL
 
    msgInfo("Database desconectado com sucesso!", "Mysql")
 EndIF

RETURN
Agradecido antecipadamente por qualquer luz...
Harbour, Harbour+Qt, HMG v3.0.46 | DBF, MySQL

"Daqui a 2 dias... Amanhã, será ontem."
rasputta@hotmail.com
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

HMG: alterando a propriedade de um objeto

Mensagem por Pablo César »

Bem vindo a comunidade Danny !
Danny Boy Broadsword escreveu:Primeiros testes com o SDK HMG 3.0.46, gostei do: BAIXAR -> INSTALAR -> COMEÇAR A USAR -> CORRER PRO ABRAÇO!
Qué bom Danny ! Fico feliz em saber. Essas é uma das qualidades da HMG que atraiu a minha atenção, não fosse assim eu tinha desistido de tudo... (do Harbour refiro-me)
Projeto simples de acesso a um database MYSQL, feito via IDE
Parabéns, começou muito bem !
Questão
Onde e como modificar as propriedades dos BUTTON dado os seguintes aquivos...
Já que você utiliza IDE e talvez queira manter os arquivos fmg em uso (fmg= telas/formulários). Você deve colocar após você fazer o LOAD do formulário. Eu gosto de usar SetProperty(..."VISIBLE") em lugar do <form>.<control>.VISIBLE:=.T.

Load Window Main
Main.Center
SetProperty(...) // <- Apartir daqui
SetProperty(...)
Main.Activate

Aconselho no alterar o FMG. Apesar que mesmo que você mexa corretamente, você irá sempre perder as alterações feitas manualmente quando interagir com o form designer.

Outro conselho. Deixe já a versão HMG 3.0.46, esta é em modo ANSI, apesar de estável é uma versão muito antiga. Vá pra UNICODE e a ultima versão, faça isso: SEMPRE !

E por favor sinta-se a vontade de participar no fórum oficial. Pode escrever em português mesmo na seção Español (assim nenhum bundão fica regulando) que terei prazer de te ajudar. Claro sem querer nunca desmercer aqui a comunidade do PCToledo, que é excelente para os do idioma português.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Danny Boy Broadsword
Usuário Nível 1
Usuário Nível 1
Mensagens: 19
Registrado em: 26 Nov 2016 22:08
Localização: Belo Horizonte/MG

HMG: alterando a propriedade de um objeto

Mensagem por Danny Boy Broadsword »

Bem vindo a comunidade Danny !
Saudações Pablo! Honrado pela sua recepção e cordialidade!
Essas é uma das qualidades da HMG que atraiu a minha atenção, não fosse assim eu tinha desistido de tudo... (do Harbour refiro-me)
Opa!!! Então estou na trilha certa... Isso muito me anima! Achei esse SDK sensacional...
Interessante que já vem com um editor de texto (Notepad++) pré-configurado, compactador (UPX), muitos exemplos (samples) e outras características interessantes.
É uma ferramenta bem completa, intrigante!

Eu baixei vários PACKs, incluso o último (3.4.3), versões também da Extended e achei interessantíssimo e muito promissora a (então descontinuada) HMG objects, é uma pena! Por algumas razões que (não vem ao caso agora), vou ficar ainda um tempinho na 3.0.46 e espero poder contar contigo e com os demais em algumas dúvidas que certamente vão aparecer pelo caminho.

No outro Fórum (que também achei super) não consegui achar o local para se registrar e olha que procurei bastante... Tenho interesse!
SUA INSTRUÇÃO deu certinho, bastou adicionar 4 linhas ao PRG em questão...

CONEX.PRG

Código: Selecionar todos

FUNCTION mysql_connect(cHostName, cUserName, cPassword)
...
msgInfo("Conexão estabelecida com sucesso!", "MySQL")
  setproperty("main", "button_1", "visible", .F.)          //  <<<<----------------------------
  setproperty("main", "button_2", "visible", .T.)         //   <<<<----------------------------
...
...
FUNCTION mysql_destroy()
....
  msgInfo("Database DESCONECTADO com sucesso!", "Mysql")
  setproperty("main", "button_2", "visible", .F.)         //  <<<<----------------------------
  setproperty("main", "button_1", "visible", .T.)        //   <<<<----------------------------
.... 
Muito obrigado, Pablo!
Felicidades!
Harbour, Harbour+Qt, HMG v3.0.46 | DBF, MySQL

"Daqui a 2 dias... Amanhã, será ontem."
rasputta@hotmail.com
Responder