rodrigo biagioli
09/01/2007 - 14:16
tenho um sistema que grava um texto num varchar(200) num banco firebird, incluindo quebra de linha.
porem ao utilizar um RLDBmemo no relatorio para exibi-lo ele não considera a quebra de linha: ele segue continuo e no lugar da quebra de linha coloca um quadrado, mesmo com a propriedade wordwrap = true
cmo faço pra exibir com quebra de linha??????
rodrigo biagioli
09/01/2007 - 15:08
o lko pensei que fosse uma coisa simples mas ninguém sabe?????
eu simplesmente não consigo exibir com quebra de linha nem em um memo simples, aparece o maldito quadrado ao invés da quebra
ex.:
no bd:
hj eu fui passear
com minha mamae.
no delphi:
hj eu fui passear☺com minha mamae
Micheus
09/01/2007 - 15:25
rodrigo biagioli, se aparece apenas um único quadrado, é porque a combinação de quebra de linha não está correta. Ela normalmente é composta pelo carrie-return + line-feed (#13#10 ou $0D+$0A).
Como você está inserindo a quebra de linha?
rodrigo biagioli
09/01/2007 - 16:20
Pressionando a tecla enter na hora de digitar ueh!!!!!!
do mesmo jeito que eu faço aqui no post oh
está vendo
to usando enter
e quando aparecer este post
essas quebras de linha aparecem
já comigo aparece um ☺!!!
ahuhaUHauHauHuahuhaUhaUhaUHa
moh raça!!!
isso está me dandu nos nervos!!!
haUHUAHUAHAuhuhauhaUHaHUa
vlw Micheus!!!
se tu puderes me ajudar eu agradeço
Micheus
10/01/2007 - 10:12
QUOTE(rodrigo biagioli @ Jan 9 2007, 04:20 PM)

PRESSIONANDU A TECLA ENTER NA HORA DE DIGITAR UEH!!!!!!
DO mesmo JEITO que EU FAÇO AQUI NO POST OH
está VENDO
TO USANDU U ENTER
E quando APARECER ESTE POST
ESSAS QUEBRAS DE LINHAS APARECEM
já comigo APARECE UM ☺!!!
ahuhaUHauHauHuahuhaUhaUhaUHa
MOH RAÇA!!!!!
isso está ME DANDU NOS NERVOS já!!!!
haUHUAHUAHAuhuhauhaUHaHUa
VLW MICHEUS !!!
SE TU PUDERES ME AJUDAR EU AGRADEÇO
rodrigo biagioli, não precisa gritar (caixa alta).
Como é que iria saber se este campo você digitava utilizando um Memo ou similar ou se você contatenava um texto e gravava nele (nestes casos, tem gente que inclui apenas o #13 ou #10).
Abraços
QUOTE(Micheus @ Jan 10 2007, 11:12 AM)

rodrigo biagioli, não precisa gritar (caixa alta).
Realmente, tomei a liberdade de editar o post dele mantendo a escrita...
rodrigo biagioli
10/01/2007 - 15:14
ahuHAUhaUHaUHauhUHa
FOI MAUS !!! não FOI ESSA MINHA INTENÇÃO não!!!!!!
é que quando TO PROGRAMANDU só USO CAIXA ALTA então tenho MANIA DE ESCREVER só ASSIM!!!!
REALMENTE não FOI MINHA INTENÇÃO!!!
ME DESCULPE SE INTENDEU ASSIM...
QUOTE(rodrigo biagioli @ Jan 10 2007, 04:14 PM)

ahuHAUhaUHaUHauhUHa
FOI MAUS !!! não FOI ESSA MINHA INTENÇÃO não!!!!!!
é que quando TO PROGRAMANDU só USO CAIXA ALTA então tenho MANIA DE ESCREVER só ASSIM!!!!
REALMENTE não FOI MINHA INTENÇÃO!!!
ME DESCULPE SE INTENDEU ASSIM...
rsr engraçado que você pede desculpas e está denovo escrevendo em caixa alta rsr
NÂO USE o CAPSLOCK pra ESCREVER ahuahuahu
Escreva assim, normal
rodrigo biagioli
10/01/2007 - 15:44
foi mal dinovo!!! da proxima vez só vou usar caixa alta quando tiver gritandu entaum...
bom mas caixa alta ou não, eu ainda não consegui fazer o delphi exibir a porcaria da quebra da linha!!!
pensei que fosse o firebird que não armazenasse a quebra mas, quando tentei editar no proprio firebird o registro, ele apareceu com qubra de linha!!!
entaum concluo que o problema é no delphi mesmo , na hora de mostrar os dados ele não reconhece cmo quebra de linha!!!!
rsrsrsrs
ateh copiei o ☺ que aparece no delphi e colei no bloco de notas
o que aconteceu?????
uma quebra de linha!!!!!!
o bloco de notas está mais evoluido que meu delphi heim....
talvez poderia ser um problema no fortes report?
já tentou utilizar outros geradores de relatório para testar?
abraço
rodrigo biagioli
11/01/2007 - 07:59
meu problema é que isso está acontecendo com o proprio componente de memo do delphi.
eu digito algo no memo e gravo no BD,
dai quando mando ele exibir os dados no mesmo memo ele não coloca quebra de linha: aparece o maldito ☺.
sera que isso só acontece comigo?
obs: o memo a que me refiro agr não é do relatorio, é o componente do delphi mesmo. acontece que fui fazer o relatorio e descobri que isso acontecia no memo do delphi também.
Micheus
11/01/2007 - 14:28
rodrigo biagioli, você estaria manipulando algum evento de teclado. Tipo, teria habilitado o KeyPreview e intereceptando OnKeyPress/OnKeyDown ou OnKeyUp?
rodrigo biagioli
15/01/2007 - 09:09
exatamente!!!!!
no sistema que to desenvolvendo acontece o seguinte:
quando o usuario esta em um edit comun e ele perta o enter o focus deve mudar para o proximo componente (mesmo função do TAB).
quando entra em um memo, o Enter volta a funcionar cmo quebra de linha, e ao sair do memo, volta para a função de tab.
mas entaum isso influencia?????
Micheus
15/01/2007 - 09:18
QUOTE(rodrigo biagioli @ Jan 15 2007, 09:09 AM)

exatamente!!!!!
no sistema que to desenvolvendo acontece o seguinte:
quando o usuario esta em um edit comun e ele perta o enter o focus deve mudar para o proximo componente (mesmo função do TAB).
quando entra em um memo, o Enter volta a funcionar cmo quebra de linha, e ao sair do memo, volta para a função de tab.
mas entaum isso influencia?????
Faz toda a diferença para um campo memo que deve contatenar, como disse anterirmente, um #13#10. E você está impedindo isso, removendo o #13.
E você ainda me
"zuou" sobre o
post #3 heim?!
Esse negócio de trocar TAB por ENTER, só mesmo para agradar usuários DOS. Em qualquer outro program Windows (que não seja o seu) o usuário terá que utilizar TAB.
Abraços
rodrigo biagioli
16/01/2007 - 13:31
ow já pedi desculpa , não foi minha intenção de zuar!!!!
quanto ao
"
Esse negócio de trocar TAB por ENTER, só mesmo para agradar usuários DOS. Em qualquer outro program Windows (que não seja o seu) o usuário terá que utilizar TAB.
"
eu to ligadu, mas sabe cmo é não é?, chefe mandou, tem que fazer.
rsrsrsrsrsrsrsrsrsrsrsrsr
mas tem algum jeito de eu continuar com esse tratamento e não perder o #13???
mas entaum porque aparece o ☺,?
e porque quando eu copio o texto que contem esse ☺ e colo no bloco de notas ele aparece com quebra?
Micheus
16/01/2007 - 20:01
QUOTE(rodrigo biagioli @ Jan 16 2007, 01:31 PM)

ow já pedi desculpa , não foi minha intenção de zuar!!!!
Foi só uma cutucadinha...
QUOTE
quanto ao
"Esse negócio de trocar TAB por ENTER, só mesmo para agradar usuários DOS. Em qualquer outro program Windows (que não seja o seu) o usuário terá que utilizar TAB."
eu to ligadu, mas sabe cmo é não é?, chefe mandou, tem que fazer.
rsrsrsrsrsrsrsrsrsrsrsrsr
Eu diria o seguinte:
chefinho..., esse negócio de teclar enter para avançar funciona legal, mas tem só um probleminha. Quando o usuário está digitando um texto (num campo memo), como vou saber que ao teclar ENTER ele quer ir para outro campo ou apenas avançar uma linha?CODE
mas tem algum jeito de eu continuar com esse tratamento e não perder o #13???
Até teria. Mas como é que você me responderia a pergunta acima? O usuário tem um campo memo para digitar um texto multi-linhas e você não vai deixar ele fazer isso?
De qualquer modo, coloque aí o código que você está utilizando, porque até tentei fazer algo parecido utilizando um TMemo e não cheguei no bichinho (☺).
Abraços
Vivendo&Aprendendo
17/01/2007 - 12:52
Olá Rodrigo
Seguindo a dica do Micheus, também não acho conveniente o usar a tecla a enter para mudar de campo, sendo o mesmo processo para o usuário teclar enter ou tab, mas no seu caso, como é um "desejo" do patrão, fiz um exemplo aqui, mas utilizando o Access e usei os componente MEMO do delphi e FORTES REPORT, e funcionou corretamente.
No meu componente Memo e no Memo do relatório apareceram com todas as quebras de linhas.
Agora como você deseja utilizar o Enter como Tab, você terá que colocar o código de comparação das teclas no Evento OnKeyDown nos Edit's.
Exemplo:
CODE
procedure TForm1.DBEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If key = VK_RETURN Then
begin
Perform (CM_DialogKey, VK_TAB, 0);
end;
end;
Coloque somente em um edit e os outros você apenas aponte para este evento e no MEMO não coloque nada.
Aqui funcionou certinho.
Mas lembrando utilizei o Access e também não acho isso conveniente.
Abraços
Alexandre
rodrigo biagioli
17/01/2007 - 15:49
segue o s eventos
procedure TFORM.FormKeyPress(Sender: TObject; var Key: Char);
begin
IF(KEY = #13)THEN
BEGIN
IF MUDA_FOCO <> FALSE THEN
BEGIN
KEY := #0;
PERFORM(WM_NEXTDLGCTL,0,0);
END;
END;
end;
procedure TFORM.MEMOEnter(Sender: TObject);
begin
MUDA_FOCO := FALSE;
end;
procedure TFORM.MEMOExit(Sender: TObject);
begin
MUDA_FOCO := TRUE;
end;
QQER DUVIDA SOBRE O CODIGO PODE PERGUNTAR
Vivendo&Aprendendo
17/01/2007 - 19:38
Bom Rodrigo o seu código está certo, mas caso queira ele funcionando o exemplo que lhe passei está certinho..
Abraços
Alexandre
Micheus
18/01/2007 - 10:51
CODE
procedure TFORM.FormKeyPress(Sender: TObject; var Key: Char);
begin
IF(KEY = #13)THEN
BEGIN
IF NOT (ActiveControl is TMemo) THEN
BEGIN
KEY := #0;
PERFORM(WM_NEXTDLGCTL,0,0);
END;
END;
end;
rodrigo biagioli, tenta assim, acho que dispensa variáveis globais e fica mais simples.
Abraços
rodrigo biagioli
18/01/2007 - 15:14
vlw micheus , to usandu assim agr
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor
clique aqui.