Página 1 de 1
Procurando entender.
Enviado: 19 Out 2005 17:43
por camiloto
Amigos.
Ocorreu-me um problema q não compreendi e, quem sabe, alguém possa me explicar. Este usando xharbour com minigui. Em um prg de procedures, crie uma procedure geral onde é criado uma window. Em outro prg, coloquei uma procedure que cria labels e textbox´s e numa terceira procedure coloquei uma parte q atribui aos value´s dos textbox´s o conteudo de campos de um dbf. Qdo mando compilar, dá error E0030, erro de sintaxe na procedure q atribui os valores aos value´s. Se, porém, eu tiro essa procedure e coloco no mesmo prg onde define a window, é compilado e executado sem problemas. O problema é q eu preciso dessa procedure junto com o prg q define os label´s e textbox. Alguem tem alguma solução?
Obrigado pela atenção.
Adriano.
Enviado: 19 Out 2005 18:55
por culik
Ola
Porque nao nao tenta alterar seu programa para usar hwgui.
la vc nao precisa usar alguma coisa como
janela.controle.value := "alguma"
em hwgui e diretamente
@ x,y say osay caption texto
vc tambem notou a volta que vc da para incluir um registro no dbf
com hwgui faco assim
Código: Selecionar todos
Local lExc:=.F.
Local Form_2
Local Botao_salvar, Botao_Cancelar, Botao_Deletar
Private T_Codigo
Private T_Nome
Private T_Endereco
Private T_Bairro
Private T_Cep
Private T_Cidade
Private T_Estado
Private T_Fone1
Private T_Fone2
Private T_Email
Private cCodigo := ""
Private cNome := ""
Private cEndereco := ""
Private cBairro := ""
Private cCep := ""
Private cCidade := ""
Private cEstado := ""
Private cFone1 := ""
Private cFone2 := ""
Private cEmail := ""
lNovo := lNovo_Registro
If ! lNovo
cCodigo:=oBrowse:msrec[oBrowse:tekzp,1]
Agenda->(DBSetOrder(1))
If ! Agenda->(DBSeek( cCodigo ))
MsgSTOP("Registro "+cCodigo+" não localizado!!","Agenda")
Return Nil
EndIf
cNome := AllTrim( Agenda->Nome)
cEndereco := AllTrim( Agenda->Endereco)
cBairro := AllTrim( Agenda->Bairro)
cCep := AllTrim( Agenda->Cep)
cCidade := AllTrim( Agenda->Cidade)
cEstado := AllTrim( Agenda->Estado)
cFone1 := AllTrim( Agenda->Fone1)
cFone2 := AllTrim( Agenda->Fone2)
cEmail := AllTrim( Agenda->EMail)
EndIf
INIT DIALOG Form_2 ;
AT 0,0 ;
SIZE 490, 300 ;
TITLE "Agenda de Contatos - "+Iif( lNovo , "Novo Registro" , "Alterando Registro");
CLIPPER NOEXIT;
FONT oFonte
@ 10,10 SAY 'Código' COLOR BLUE SIZE 140, 30
@ 10,40 SAY 'Nome' COLOR BLUE SIZE 140, 30
@ 10,70 SAY 'Endereço' COLOR BLUE SIZE 140, 30
@10,100 SAY "Bairro" COLOR BLUE SIZE 140, 30
@360,100 SAY "Cep" COLOR BLUE SIZE 140, 30
@10,130 SAY "Cidade" COLOR BLUE SIZE 140, 30
@345,130 SAY "Estado" COLOR BLUE SIZE 140, 30
@10,160 SAY "Fone 1" COLOR BLUE SIZE 140, 30
@346,160 SAY "Fone 2" COLOR BLUE SIZE 140, 30
@10,190 SAY "E-Mail" COLOR BLUE SIZE 140, 30
@70, 13 GET T_Codigo VAR cCodigo STYLE WS_DISABLED SIZE 40, 24
@70, 43 GET T_Nome VAR cNome picture Replicate("X",40) VALID {||Valid_cNome()} SIZE 400, 24
@70, 73 GET T_Endereco VAR cEndereco picture Replicate("X",40) SIZE 400,24
@70,103 GET T_Bairro VAR cBairro picture Replicate("X",25) SIZE 250, 24
@390,103 GET T_Cep VAR cCep PICTURE "@R 99999-999" SIZE 80, 24
@70,133 GET T_Cidade VAR cCidade picture Replicate("X",25) SIZE 250, 24
@390,133 GET T_Estado VAR cEstado picture Replicate("X",2) SIZE 30, 24
@70, 163 GET T_Fone1 VAR cFone1 picture Replicate("X",10) SIZE 110, 24
@390,163 GET T_Fone2 VAR cFone2 picture Replicate("X",10) SIZE 80, 24
@70,193 GET T_Email VAR cEmail picture Replicate("X",40) SIZE 400, 24
@ 70, 232 OWNERBUTTON Botao_Salvar ;
TEXT 'Salvar' OF Form_2 ;
ON CLICK {||Salvar_Registro(),Sair_Form_2()} ;
SIZE 120, 27
@ 210,232 OWNERBUTTON Botao_Deletar ;
TEXT 'Deletar' OF Form_2;
ON CLICK {||Excluir_Registro()} ;
SIZE 120, 27
@ 346,232 OWNERBUTTON Botao_Cancelar;
TEXT 'Cancelar' OF Form_2 ;
ON CLICK {||EndDialog()};
SIZE 120, 27
ACTIVATE DIALOG Form_2
return nil
e no botao de salvar tenho
Código: Selecionar todos
Function Salvar_Registro()
Local ProximoCodigo := ""
Local cCodigo := ""
If Empty( cNome )
MsgINFO( "Nome não foi Informado!!" , "Agenda" )
T_Nome:SetFocus()
Return Nil
EndIf
If lNovo
Agenda->(DBSetOrder(1))
Agenda->(DBGoBottom())
ProximoCodigo := StrZero( Val( Agenda->Codigo ) + 1 , 4 )
Agenda->(DBAppend())
Agenda->Codigo := ProximoCodigo
Agenda->Nome := cNome
Agenda->Endereco := cEndereco
Agenda->Bairro := cBairro
Agenda->Cep := cCep
Agenda->Cidade := cCidade
Agenda->Estado := cEstado
Agenda->Fone1 := cFone1
Agenda->Fone2 := cFone2
Agenda->EMail := cEmail
lNovo:=.F.
Else
cCodigo := cCodigo
Agenda->(DBSetOrder(1))
If ! Agenda->(DBSeek( cCodigo ))
MsgSTOP("Registro "+cCodigo+" não localizado!!","Agenda")
EndIf
If BloqueiaRegistroNaRede( "Agenda" )
Agenda->Nome := cNome
Agenda->Endereco := cEndereco
Agenda->Bairro := cBairro
Agenda->Cep := cCep
Agenda->Cidade := cCidade
Agenda->Estado := cEstado
Agenda->Fone1 := cFone1
Agenda->Fone2 := cFone2
Agenda->EMail := cEmail
Agenda->(DBUnlock())
EndIf
EndIf
MsgInfo( "Registo "+Iif( lNovo , "Incluído" ,"Alterado!!" ) )
Pesquisa_Agenda(alltrim(cnome,1,1))
Return Nil
Agora me diz uma coisa, vc esta vendo nesse codigo algum replace campo with form_2.contole.value ?
[]s
Luiz
Enviado: 19 Out 2005 20:02
por Clipper
A postagem do colega foi sobre Minigui.
Use a Minigui ela é mais fácil e tem muito mais suporte.
Mas se preferir use o Foxpro que também é muito bom.
Ainda pode usar o VB ou quem sabe o Delphi.
Eu pessoalmente recomendo não fazer nada, deixa em Clipper puro mesmo e o cliente que quer 32 bits que se dane.
Pronto já dei minha "enorme" contribuição na questão do colega.
Tenho certeza que foi totalmente esclarecedora minha postagem assim como "outras".
Se é pra zoar vamos zoar....
:* :xau
Marcelo
MiniGUI, HwGUI
Enviado: 20 Out 2005 09:48
por gransoft
ARAGUARI-MG, 20 de outubro de 2005.
Prezados Srs.,
Não trata-se de "zoar"...
O Culik acabou de postar boas dicas de xHarbour em GNU/Linux em um POST aqui do Fórum.
Temos sim, que conseguir boas contribuições aqui mesmo ... o preço é a divulgação/convites que ele faz para outro Fórum e que a HwGUI é melhor, etc e tal...
Paciência... Isso é lá com os Moderadores.
Mas ele já percebeu que conquistará bons correligionários, e até editou um POST onde havia citado que aqui é OFF-TOPIC...
Não é OFF não !!! Tanto que ele e o Sandro passam por aqui periodicamente.
É ON para xHarbour.org, .com, com MiniGUI e/ou HwGUI.
O tal simples exemplo, com MiniGUI, no link abaixo, já recebeu 70 downloads só este mês:
http://www.gransoft.com/download/minigui/projeto.zip
Em breve, divulgo um exemplo funcional com a HwGUI...
Atenciosamente,
Janis Peters Grants.
Skype: gransoft
http://www.gransoft.com.br
gransoft@zipmail.com.br
Enviado: 20 Out 2005 10:49
por Clipper
É zoar sim !
Exemplo :
"Gostaria de saber qual o comando para limpar a tela toda com a Minigui"
Aí vem uma resposta do tipo "Não limpe a tela com a Minigui, limpar a tela com a hWgui é muito mais fácil, bonito, lindo e maravilhoso, além do mais você pode optar por usar a versão open source ou comercial, para saber mais visite
www.pqp.vtf.com.br"
Porra !!!! Será que não dá pra responder diretamente independente de gosto pessoal ? Se o cara postou sobre a minigui é porque ele quer usar a minigui e quer uma resposta o mais rápido possível, agora se o cara postar "Qual IDE devo usar BRGUI, Minigui, Hwgui, Seiláoquegui ? Quais a vantagens e desvantagens entre elas ?"
Aí tudo bem o cara pode até escrever um livro do tipo "Como me apaixonei pela seiláoquegui".
Fórum foi feito primeiramente para tirar dúvidas e não colocar mais.
Fui...
:* :xau
Enviado: 20 Out 2005 11:42
por Sandro R R Freire
Limpar a tela com Minigui ( CLS ) :-O
Cara, uma coisa que eu e o Culik falamos é
Você usam o que quizerem por suas conta e risco.
Apenas achamos que se você sobrepor uma variavel publica os efeitos serão muito desastrosos.
Um dia a muito tempo atrás, antes até de todos mecherem com Minigui, acho que era Luiz Vasquez, escreveu classes para Minigui, e sabe o que aconteceu, o Roberto Lopez, jogou-as no lixo.
Tempos depois o Ron Pinkas convidou o Roberto, inclusive se comprometeu a ajudar-lo, pois a idéia da Minigui é ótima sim, mas a sua escrita, é errada, e o Roberto, negou o auxilio.
Não existe muita segurança em variaveis publicas manuseadas como se fossem objetos, ou esse tal de pseudo objetos.
A Minigui tem muitos exemplos sim, bem como muitos componentes criados, mas ela em minha opnião é como cristal, tem que ter cuidado.
Amigos, tenho graças a Deus 15 anos de programação, sou um dos desenvolvedores da HwGUI e da xHGTK (outra GUI tb, mas que se baseia na GTK), não quero que ninguem use a HwGUI, a menos que queira, apenas expresso minha opnião sobre ela, o Luiz é mais radical, por que ele gostaria de ver outros não terem problemas pensando como ele, eu já acho que se alguem quer se afogar, é problema da pessoa.
Não faço parte do xHarbour comercial, faço parte dos projetos Open Source.
Trabalho em uma empresa como programador de um ERP
Por favor, leiam os códigos, analisem e tirem suas opniões.
Façam como quizerem, sigam o caminho que quizerem, mas não me obriguem a aceitar a dizer que Minigui por exemplo é maravilhosa, pois em minha opnião não é, apenas tem mais componentes que HwGUI em Windows, e diga-se que isso é proposital, pois tais componentes não existem para GTK, o que tornaria inviável sua versão para Linux, e no futuro até para Solaris, essa é nossa idéia.
Enviado: 20 Out 2005 16:53
por camiloto
Putz, e eu q so queria entender um problema....
Quero aqui expressar minha indignação com tudo isso. Gente, EU SÓ QUERIA ENTENDER O PROBLEMA QUE ME OCORREU e não entrar nessa discussão que, desculpem-me, é totalmente inutil. Eu uso a minigui, não conheço a hwgui, mas isso não interessa. Será q alguém pode, pelo amor de Deus, simplesmente responder a minha dúvida??? Se toda vez q eu tiver uma duvida for essa confusão, me desculpem, mas vou procurar em outros foruns.
E ai, alguem sabe o por que do problema???
MiniGUI, IDE
Enviado: 20 Out 2005 18:14
por gransoft
ARAGUARI-MG, 20 de outubro de 2005.
Prezado Adriano,
Sempre poste um pequeno algorítmo para exemplificar. Ajuda muito nas respostas.
Também tive erros semelhantes, referentes à visibilidade dos objetos.
Por isso, padronizei um *.PRG para FUNÇÕES, um *.FMG para controle de arquivos (BROWSE) e outro *.FMG para LAYOUT de Formulários.
Sobre GRID's (outro post), não uso... Definir controles de teclas se dispomos de BROWSE em arquivos temporários ?
Se desejar um simples exemplo, demonstrando como faço atribuições de valores aos TEXTBOX, acesse o link abaixo:
http://www.gransoft.com/download/minigui/projeto.zip
Atenciosamente,
Janis Peters Grants.
Skype: gransoft
http://www.gransoft.com.br
gransoft@zipmail.com.br
Re: Procurando entender.
Enviado: 20 Out 2005 19:32
por Antonio
camiloto escreveu:Amigos.
Ocorreu-me um problema q não compreendi e, quem sabe, alguém possa me explicar. Este usando xharbour com minigui. Em um prg de procedures, crie uma procedure geral onde é criado uma window. Em outro prg, coloquei uma procedure que cria labels e textbox´s e numa terceira procedure coloquei uma parte q atribui aos value´s dos textbox´s o conteudo de campos de um dbf. Qdo mando compilar, dá error E0030, erro de sintaxe na procedure q atribui os valores aos value´s. Se, porém, eu tiro essa procedure e coloco no mesmo prg onde define a window, é compilado e executado sem problemas. O problema é q eu preciso dessa procedure junto com o prg q define os label´s e textbox. Alguem tem alguma solução?
Obrigado pela atenção.
Adriano.
No PRG onde esta sendo criada a Janela inclua os demais PRGS:
#include "prog1.prg"
#include "prog2.prg"
#include "prog3.prg"
Veja se resolve.
Enviado: 20 Out 2005 20:03
por Clipper
Eu não sou contra a hwgui (até achoe ela mais fácil que a minigui) minha "briga" aqui é para que não se postem mensagens que ao invés de ajudar atrapalhem o membro que está com dúvida, imaginemos o seguinte :
Eu entro no News da Xharbour e pergunto sobre algumas dúvidas sobre a hwgui e alguém me responde que devo usar a minigui e me posta um código como exemplo, minha vontade é de mandar o cara ITNC, se eu perguntei sobre a hwgui é porque estou usando ela "provavelmente estou satisfeito, senão já teria mudado" e quero uma resposta rápida para a hwgui, não irá me importar se a minigui é melhor, se o delphi e a melhor linguagem do mundo, se o cobol não presta, se o Zé Dirceu vai ser cassado, eu quero a resposta para minha questão e só. Se ainda sim a pessoa na sua opnião quiser indicar uma solução então faz como eu faço.
Exemplo :
Pergunta :
"Como usar a função DBEDIT() ?"
Minha resposta seria :
A função DBEDIT() está obsoleta, melhor seria usar a classe TBROWSE.
Segue abaixo um código de como usar a DBEDIT().
...
...
...
...
...
DBEDIT(04,05,18,74,CAMPOS,"FUNCNOTA",WPICTU,WCABEC,"-","|","-")
...
...
...
Pronto resolvi o problema do colega e ao mesmo tempo dei a dica de uma opção melhor, fica a critério dele escolher o que fazer.
Entenderam agora porque faço essas criticas ? Irei continuar fazendo-as até que se pare com isso ou até que o Toledo me solicite tal.
Até logo.
Marcelo
Enviado: 20 Out 2005 21:52
por camiloto
Amigos, problema resolvi, porém não entendido. A sugestão do Antonio eu já havia feito, porém continuava dando erro. O q eu fiz foi aglutinar dois prg´s de funções em um e recompilar. Funcionou. Acreditem, não fiz alteração nenhuma no código, so move as linhas de um prg para outro. Bom, o q importa é q deu certo.
Obrigado.
Adriano Camiloto.