é possível configurar o texto da tabela antes de ser exibido no dbtext ?
Eu já pesquisei, não encontrei nada que tira-se essa minha duvida...
estou procurando saber, como fazer com que um texto curto de 300 caractere armazenado em uma tabela fique configuradinho (3 linhas e 100 caractere cada linha) quando o usuário entrar no formulário deste texto?
agradeço desde já.
estou procurando saber, como fazer com que um texto curto de 300 caractere armazenado em uma tabela fique configuradinho (3 linhas e 100 caractere cada linha) quando o usuário entrar no formulário deste texto?
agradeço desde já.
John Vitor
Curtidas 0
Respostas
Marco Salles
25/01/2013
ongettext do tfield
GOSTEI 0
John Vitor
25/01/2013
Poderia me passar um exemplo?
GOSTEI 0
Thiago
25/01/2013
Você quer somente reduzir a quantidade de caracteres do texto, é isso?
GOSTEI 0
Marco Salles
25/01/2013
Você quer somente reduzir a quantidade de caracteres do texto, é isso?
Parece que não.. Ele quer formatar um texto de 300 caracteres em 3 linhas cada uma contendo 100 caracteres
Sugeri o evento ongetText do fieds pq neste evento podemos formatar as informações vinda do BD
GOSTEI 0
Marco Salles
25/01/2013
Você quer somente reduzir a quantidade de caracteres do texto, é isso?
Parece que não.. Ele quer formatar um texto de 300 caracteres em 3 linhas cada uma contendo 100 caracteres
Sugeri o evento ongetText do fieds pq neste evento podemos formatar as informações vinda do BD
Exemplo pronto especifico a esta solicitação eu não tenho amigo . Se tivesse passaria a vc .
[]sds
GOSTEI 0
Thiago
25/01/2013
Bom como o amigo disse você terá que usar o Evento onGetText do TField
Se o objetivo é retornar 3 linhas de 100 de um texto de 300 caracteres, eu fiz o seguinte exemplo:
procedure TForm1.CdsTempTEXTOGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if (length(Sender.AsString) = 300) then //Verifica se o tamanho do texto é 300
Text:=Copy(Sender.AsString,1,100)+#13+Copy(Sender.AsString,100,200)+#13+Copy(Sender.AsString,200,300)
/* Se for igual a 300, Você usa a função copy para pegar os 100 caracteres e concatena com #13 que equivale ao Enter em ASCII*/
else
Text:=Text;
end;
A partir daí você pode exibir o conteúdo num memo e ve o resultado. Espero que tenha ajudado.
Se o objetivo é retornar 3 linhas de 100 de um texto de 300 caracteres, eu fiz o seguinte exemplo:
procedure TForm1.CdsTempTEXTOGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if (length(Sender.AsString) = 300) then //Verifica se o tamanho do texto é 300
Text:=Copy(Sender.AsString,1,100)+#13+Copy(Sender.AsString,100,200)+#13+Copy(Sender.AsString,200,300)
/* Se for igual a 300, Você usa a função copy para pegar os 100 caracteres e concatena com #13 que equivale ao Enter em ASCII*/
else
Text:=Text;
end;
A partir daí você pode exibir o conteúdo num memo e ve o resultado. Espero que tenha ajudado.
GOSTEI 0
Marco Salles
25/01/2013
então tiago , mas tem um problema tecnico nisso . Provavelmente o Memo não comporta 100 caracteres em um ùnica Linha Visual
dele . O fato que o memo não comportar isto ele pode dar a entender (depedendo da largura do mesmo ) que existem várias linhas ... Outro problema tecnico é que a quantidade de linhas do Memo (SeuMemo.Lines.Count ) tem mais a ver com o Visual
do que provalvelmente com o sLineBreak de fato contido no Texto
dele . O fato que o memo não comportar isto ele pode dar a entender (depedendo da largura do mesmo ) que existem várias linhas ... Outro problema tecnico é que a quantidade de linhas do Memo (SeuMemo.Lines.Count ) tem mais a ver com o Visual
do que provalvelmente com o sLineBreak de fato contido no Texto
GOSTEI 0
Thiago
25/01/2013
Verdade, eu nem tinha pensado nisso...
Mas então ele poderia exportar o conteúdo dessa tabela para XML e visualizar no Browser.
Mas então ele poderia exportar o conteúdo dessa tabela para XML e visualizar no Browser.
GOSTEI 0
Marco Salles
25/01/2013
Pois é THIAGO LUIZ mas o cara sumiu....
GOSTEI 0