é possível configurar o texto da tabela antes de ser exibido no dbtext ?

Delphi

25/01/2013

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á.
John Vitor

John Vitor

Curtidas 0

Respostas

Marco Salles

Marco Salles

25/01/2013

ongettext do tfield
GOSTEI 0
John Vitor

John Vitor

25/01/2013

Poderia me passar um exemplo?
GOSTEI 0
Thiago

Thiago

25/01/2013

Você quer somente reduzir a quantidade de caracteres do texto, é isso?
GOSTEI 0
Marco Salles

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

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

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.
GOSTEI 0
Marco Salles

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
GOSTEI 0
Thiago

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.
GOSTEI 0
Marco Salles

Marco Salles

25/01/2013

Pois é THIAGO LUIZ mas o cara sumiu....
GOSTEI 0
POSTAR