textbox apresenta texto tudo junto
Moderador: Moderadores
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
saudaões
ao exibir o conteúdo de um campo no texbox aparece da seguinte forma:
riodejaneiro
mas no dbf o correto é rio de janeiro.
parece que ignora os espações entre as palavras.
obrigado pela ajuda
ao exibir o conteúdo de um campo no texbox aparece da seguinte forma:
riodejaneiro
mas no dbf o correto é rio de janeiro.
parece que ignora os espações entre as palavras.
obrigado pela ajuda
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
textbox apresenta texto tudo junto
Olá Marcelo.
Por favor, ajude os colegas a ajudá-lo. Poste exemplos do código que você está usando, de sua base de dados, se usa NTX, CDX, versão do Harbour... Enfim, subsídios que possam direcionar o pensamento para alguma ideia concreta. Da forma como você coloca, fica difícil, muito vago.
Por favor, ajude os colegas a ajudá-lo. Poste exemplos do código que você está usando, de sua base de dados, se usa NTX, CDX, versão do Harbour... Enfim, subsídios que possam direcionar o pensamento para alguma ideia concreta. Da forma como você coloca, fica difícil, muito vago.
marcelosantos escreveu:parece que ignora os espações entre as palavras.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
Desculpe, tem razão.
Estou usando a HMG 3.1.4, e o Harbour que vem junto com a IDE, uso dbfs indexados com cdx
segue o código com problemas. obrigado.
Estou usando a HMG 3.1.4, e o Harbour que vem junto com a IDE, uso dbfs indexados com cdx
segue o código com problemas. obrigado.
Código: Selecionar todos
#include "hmg.ch"
Function Cadcli
AbreTabelas()
DEFINE WINDOW FrmClientes;
AT 0,0 ;
WIDTH 800 ;
HEIGHT 600 ;
TITLE 'Cadastro de Clientes' ;
modal;
on init atualiza();
DEFINE TAB Tab_1 AT 40 , 30 WIDTH 730 HEIGHT 460 VALUE 1 FONT "Arial" SIZE 9 TOOLTIP "Cadastro de Clientes" ON CHANGE Nil
PAGE "Clientes"
@ 070,180 Label LblNome Value "Nome"
@ 070,230 TEXTBOX TXTNOME WIDTH 413 MAXLENGTH 50
END PAGE
PAGE "Page 2"
END PAGE
END TAB
END WINDOW
ACTIVATE WINDOW FrmClientes
Return
procedure AbreTabelas
SELECT 1
USE C:\PRG\NFEWIN\DADOS\CLIENTES.DBF shared
index on codigo tag codigo to C:\PRG\NFEWIN\DADOS\CLIENTES.CDX
index on nome tag nome to C:\PRG\NFEWIN\DADOS\CLIENTES.CDX
index on endereco tag endederco to C:\PRG\NFEWIN\DADOS\CLIENTES.CDX
set index to C:\PRG\NFEWIN\DADOS\CLIENTES.CDX
set order to tag codigo
dbgotop()
return
procedure atualiza()
FrmClientes.TxtNome.Value :=clientes->nome
return
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
textbox apresenta texto tudo junto
Marcelo, você tem certeza que tem os espaços no campo do DBF? Pois no seu código não tem nada que retira estes espaços!
Tente o seguinte:
Abraços,
Tente o seguinte:
Código: Selecionar todos
@ 070,230 TEXTBOX TXTNOME WIDTH 413 MAXLENGTH 50 FONT "Courier New" SIZE 10Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
textbox apresenta texto tudo junto
Olá!
Tive a mesma impressão do Toledo. Não vi nada estranho no código. É feito um DbGoTop() e o nome do primeiro registro (clientes->nome) é exibido.
Tem certeza que o conteúdo do campo está correto? Experimente este código na tua função atualiza:
Não sei se isto é um teste apenas mas, não é normal criar índices a cada vez que se abre uma tabela. Você deve ter uma rotina específica para isso.
Tive a mesma impressão do Toledo. Não vi nada estranho no código. É feito um DbGoTop() e o nome do primeiro registro (clientes->nome) é exibido.
Tem certeza que o conteúdo do campo está correto? Experimente este código na tua função atualiza:
Código: Selecionar todos
procedure atualiza()
clientes->( DbSkip( 5 ) )
FrmClientes.TxtNome.Value := If( clientes->( Eof() ), "Fim de arquivo", clientes->nome )
return[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
Toledo, eu estava testando o dbf, sei que tem que tratar a abertura dos arquivos e índices.Toledo escreveu:Não sei se isto é um teste apenas mas, não é normal criar índices a cada vez que se abre uma tabela. Você deve ter uma rotina específica para isso
Realmente alxts não tem nada estranho, o conteúdo do campo esta correto, é um campo que armazena o município.por exemplo: São Paulo, Rio de Janeiro, Espirito Santo, Santana de parnaiba.alxsts escreveu:Olá!
Tive a mesma impressão do Toledo. Não vi nada estranho no código. É feito um DbGoTop() e o nome do primeiro registro (clientes->nome) é exibido.
Tem certeza que o conteúdo do campo está correto? Experimente este código na tua função atualiza:
Eu não fiz nenhum tratamento apena atribui o conteúdo do campo ao controle
Tenho certeza Toledo, eu criei o dbf e cadastrei alguns endereços para testar o form de cadastro, também acho estranho.Toledo escreveu:Marcelo, você tem certeza que tem os espaços no campo do DBF? Pois no seu código não tem nada que retira estes espaços!
finalmente mudei a fonte e deu certo .Toledo escreveu:Marcelo, você tem certeza que tem os espaços no campo do DBF? Pois no seu código não tem nada que retira estes espaços!
Tente o seguinte:
Expandir visualizacaoVer codigo
1@ 070,230 TEXTBOX TXTNOME WIDTH 413 MAXLENGTH 50 FONT "Courier New" SIZE 10
Mas na teoria, não deveria visualizar corretamente com qualquer tipo e tamanho de fonte ?
Os amigos tem alguma sugestão sobre qual melhor fonte usar para padronizar o meu sistema ?
obrigado a todos
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
textbox apresenta texto tudo junto
Marcelo, atualize a versão do seu HMG. Hoje estamos na versão 3.1.5 e está mais estável. Ainda não consegui ler bem o seu problema. MAs ter a ultima versão geralmente é o mais indicado.marcelosantos escreveu:Estou usando a HMG 3.1.4
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.
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.
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
Pablo, saudações.Pablo César escreveu:Marcelo, atualize a versão do seu HMG. Hoje estamos na versão 3.1.5 e está mais estável. Ainda não consegui ler bem o seu problema. MAs ter a ultima versão geralmente é o mais indicado.
vou atualizar conforme você esta falando.
o problema é assim:
tenho um dbf que cadastra os clientes
nesse dbf tem um campo que armazena a cidade do cliente
no dbf a cidade esta cadastrada assim: RIO DE JANEIRO
ao usar um textbox no hmg e atribuir o valor desse campo, a nformacao aparece assim na tela:
RIODEJANEIRO quando deveria aparecer assim: RIO DE JANEIRO com os espaços corretos do texto.
o Toledo disse para usar a fonte courier new de 10 eu fiz o teste e deu certo.
porem não seria correto sair o texto na tela com qualquer fonte?
abraços
marcelo
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
textbox apresenta texto tudo junto
Oi Marcelo,
Você poderia postar, como você está atribuindo o valor do campo ao TextBox ?
Estas funções devem ser substituídas na versão UNICODE:
Harbour native functions:
Geralmente daria errado, se a string contivesse algum caracter de acentuação portuguesa. Mas é estranho que mudar as fontes esteja influenciando... Se puder postar um pequeno exemplo e parte do dbf seria bom para testar...
Você poderia postar, como você está atribuindo o valor do campo ao TextBox ?
Estas funções devem ser substituídas na versão UNICODE:
|  ANSI Only  |     |  ANSI / UNICODE  |
|---|---|---|
|  LEN()  |  ->  |  HMG_LEN()  |
|  LOWER()  |  ->  |  HMG_LOWER()  |
|  UPPER()  |  ->  |  HMG_UPPER()  |
|  PADC()  |  ->  |  HMG_PADC()  |
|  PADL()  |  ->  |  HMG_PADL()  |
|  PADR()  |  ->  |  HMG_PADR()  |
|  ISALPHA()  |  ->  |  HMG_ISALPHA()  |
|  ISDIGIT()  |  ->  |  HMG_ISDIGIT()  |
|  ISLOWER()  |  ->  |  HMG_ISLOWER()  |
|  ISUPPER()  |  ->  |  HMG_ISUPPER()  |
|  RETURN (ISALPHA(c) .OR. ISDIGIT(c))  |  ->  |  HMG_ISALPHANUMERIC()  |
|  ANSI Only  |     |  ANSI / UNICODE  |
|---|---|---|
|  SUBSTR()  |  ->  |  HB_USUBSTR()  |
|  LEFT()  |  ->  |  HB_ULEFT()  |
|  RIGHT()  |  ->  |  HB_URIGHT()  |
|  AT()  |  ->  |  HB_UAT()  |
|  RAT()  |  ->  |  HB_UTF8RAT()  |
|  STUFF()  |  ->  |  HB_UTF8STUFF()  |
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.
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.
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
Pablo, saudações
O dbf não tem caractere acentuado
É uma simples atribuição sem nenhuma função de tratamento de strings
já havia postado anteriormente como o código foi escrito mas segue a função que atualiza os txtbox.
muito obrigado pela ajuda e aos demais colegas também.
Eu estou usando a versão ANSI da HMG 3.1.4Pablo César escreveu:Oi Marcelo,
Você poderia postar, como você está atribuindo o valor do campo ao TextBox ?
Estas funções devem ser substituídas na versão UNICODE:
O dbf não tem caractere acentuado
É uma simples atribuição sem nenhuma função de tratamento de strings
já havia postado anteriormente como o código foi escrito mas segue a função que atualiza os txtbox.
muito obrigado pela ajuda e aos demais colegas também.
Código: Selecionar todos
procedure atualiza()
FrmClientes.TxtCodigo.value := strzero(clientes->codigo,5)
FrmClientes.TxtNome.Value :=clientes->nome
FrmClientes.TxtCnpj.value :=clientes->cnpj
FrmClientes.TxtIe.Value :=clientes->ie
Frmclientes.txtEndereco.Value :=clientes->endereco
FrmClientes.txtNumero.Value :=clientes->numero
FrmClientes.txtCompl.Value :=clientes->complement
FrmClientes.txtBairro.Value :=clientes->Bairro
FrmClientes.TxtUf.Value :=clientes->uf
FrmClientes.TxTCep.Value :=clientes->cep
FrmClientes.TxtEmal.Value :=clientes->email
FrmClientes.TxtSite.Value :=clientes->site
FrmClientes.TxtResponsavel.Value:=clientes->responsave
return
-
marcelosantos
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 02 Jul 2013 21:12
- Localização: sao paulo sp
textbox apresenta texto tudo junto
Pablo, saudações
segue o meu pequeno projeto inteiro.
é modesto, estou começando a pegar o jeito agora.
abraços
Marcelo
segue o meu pequeno projeto inteiro.
é modesto, estou começando a pegar o jeito agora.
abraços
Marcelo
- Anexos
-
nfewin.rar- (869.92 KiB) Baixado 160 vezes
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
textbox apresenta texto tudo junto
Oi Marcelo,
Fiz pequenas alterações e aproveitar para testar a questão de que forma o HMG UNICODE grava nos dbfs. Se você optou mesmo por trabalhar no padrão UNICODE, você terá que levar em consideração que os dados também serão gravados no padrão UNICODE. Na era do Clipper, tínhamos como padrão não fazer qualquer acentuação. Mas isso no padrão Windows é dificil pedir isso para os usuários. Então acho que deveria partir mesmo para esse padrão, só que se o seus dbfs estão no padrão ANSI, você terá que converter todos os registros para o padrão UNICODE.
As alterações que fiz foram:
- Os prgs (Principal.prg e CadCli.prg) estavam no padrão ANSI. Isso dá para perceber (se usas o Notepad++ que vem na HMG) no menu "Enconding" ou "Formatar" (depende o idioma que está o seu Notepad++).
- Corrigi todas as strings que estavam acentuadas (redigitei).
- O arquivo fmg estava no padrão ANSI. Claro que este arquivo não estava carregando, mas já deixei para ser aberto na IDE UNICODE.
- Comentei toda a questão do idioma:
request hb_codepage_ptiso
hb_cdpSelect("PTISO")
- Setei como: SET LANGUAGE TO PORTUGUESE
- Mudei o path dos arquivos de dados. Pois na minha opinião você deveria deixar os dados abaixo do projeto. Mas o fiz apenas para que funcionasse.
- Adicionei a função Grava(). Você poderá notar que o campo ENDERECO está gravado em UNICODE. Veja o 2ª registro (JAPÃO, com acento circunflexo)
Não tinha campo algum de cidade. Mas acredito que agora você está no rumo certo. Anexei os arquivo convertidos e compilado para sua apreciação.
Espero que consiga progredir no desenvolvimento do projeto, qualquer outra dúvida pode postá-la.
Fiz pequenas alterações e aproveitar para testar a questão de que forma o HMG UNICODE grava nos dbfs. Se você optou mesmo por trabalhar no padrão UNICODE, você terá que levar em consideração que os dados também serão gravados no padrão UNICODE. Na era do Clipper, tínhamos como padrão não fazer qualquer acentuação. Mas isso no padrão Windows é dificil pedir isso para os usuários. Então acho que deveria partir mesmo para esse padrão, só que se o seus dbfs estão no padrão ANSI, você terá que converter todos os registros para o padrão UNICODE.
As alterações que fiz foram:
- Os prgs (Principal.prg e CadCli.prg) estavam no padrão ANSI. Isso dá para perceber (se usas o Notepad++ que vem na HMG) no menu "Enconding" ou "Formatar" (depende o idioma que está o seu Notepad++).
- Corrigi todas as strings que estavam acentuadas (redigitei).
- O arquivo fmg estava no padrão ANSI. Claro que este arquivo não estava carregando, mas já deixei para ser aberto na IDE UNICODE.
- Comentei toda a questão do idioma:
request hb_codepage_ptiso
hb_cdpSelect("PTISO")
- Setei como: SET LANGUAGE TO PORTUGUESE
- Mudei o path dos arquivos de dados. Pois na minha opinião você deveria deixar os dados abaixo do projeto. Mas o fiz apenas para que funcionasse.
- Adicionei a função Grava(). Você poderá notar que o campo ENDERECO está gravado em UNICODE. Veja o 2ª registro (JAPÃO, com acento circunflexo)
Não tinha campo algum de cidade. Mas acredito que agora você está no rumo certo. Anexei os arquivo convertidos e compilado para sua apreciação.
Espero que consiga progredir no desenvolvimento do projeto, qualquer outra dúvida pode postá-la.
- Anexos
-
projeto.rar- (874.13 KiB) Baixado 192 vezes
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.
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.