Fórum E o contrário? Ver conteúdo de um Memo num Label, tem como? #293397

27/08/2005

0

Esses tempos eu perguntei se teria como colocar o conteúdo de um TEdit num TMemo.

A idéia era criar um campo VarChar(100) que seria inserido no TEdit. Mas a visualização seria feita num Label. Aí eu colocaria um botão que abriria um TMemo pra visualizar todos nomes inseridos.

Mas andei pensando melhor e resolvi mudar o campo VarChar(100) pra um Blob Text. Geralmente os nomes inseridos são poucos, mas as vezes (até seguidamente) podem ser vários nomes, por isso optei por esse campo agora.

Então a idéia é a seguinte. Criar um TMemo pra inserção de dados e colocar algumas configurações nele (como negrito, itálico, sublinhado e tal). Mas na hora de visualizar, mostrar somente a primeira linha num Label e, quando clicar no botão, abrir o TMemo pra ver o resto.

Isso dá pra fazer? Tenho dúvida tb pq, pode ser que a primeira linha tenha só um nome, depois um ou dois espaços com Enter e o resto dos nomes. Exemplo.

[b:d9afb60e48]No Cadastro fica assim:[/b:d9afb60e48]

[u:d9afb60e48]Liga da Justiça:[/u:d9afb60e48]

Superman, Batman, etc.

Aí no Label ficaria assim:

[u:d9afb60e48]Liga da Justiça:[/u:d9afb60e48] Superman, Batman, etc.

Ou seja, juntar as primeiras linhas somente pra exibir no Label.

Como posso fazer isso?



Allan Elias Ramos :wink:


Aersoftware

Aersoftware

Responder

Posts

27/08/2005

Ildefonso

Olá...

Saiba que os campos não são responsáveis pela formatação das linhas. Ou seja, você inserir um texto de 1 mega em um campo destes não faz com que as marcas de fim de parágrafo apareçam. São os componentes em tela ou você que colocam as marcas de fim de linha.

Assim, as linhas ficam existindo apenas depois que você já as armazeu neste formato...

texto texto texto<sinal de fim de linha>
texto texto texto<sinal de fim de linha>
texto texto texto<sinal de fim de linha>
texto texto texto<sinal de fim de linha>

Recuperando o conteúdo do campo (através de [b:9746a0cb0c]vTexto := vTable.FieldByName(´Conteudo´).AsString;[/b:9746a0cb0c]), você tem duas formas de acessar cada linha individualmente:
[list:9746a0cb0c]* Colocar o conteúdo todo em um TMemo e extrair cada linha com a propriedade .Lines[nn]. Lembre-se de atribuir [b:9746a0cb0c]WordWrap := False[/b:9746a0cb0c], para evitar que novas linhas sejam criadas fora de seu controle.

* Processar a string em seqüência, procurando os Char(13)+Char(10) (ou, melhor, #1310) que são os caracteres marcadores de fim de linha[/list:u:9746a0cb0c]
A primeira opção pode tomar mais tempo de processamento se o texto for muito longo. Mas é mais fácil.
A segunda, como você deve querer o conteúdo apenas das primeiras linhas, seria sempre mais rápida, porém demanda mais trabalho de programação.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar