Visualizar Dados Varchar num TMemo

Delphi

22/08/2005

Oi pessoal, tudo bem? Espero que sim.

Tenho uma dúvida. Num programa que estou fazendo, eu tenho alguns campos em VarChar que é pra colocar alguns nomes, separados por vírgulas. Algumas vezes pode ser 1 ou 2 nomes, outras pode ser 9 ou 10 e algumas vezes também pode ser mais de 20. Mas como não quero que seja um campo ilimitado, eu criei ele como VarChar(200). O problema é que, pra salvar os dados, tudo bem, ele cria um campo TDbEdit que é só inserir, mas no form de visualização eu fiz ele com TDbLabel´s. Então vai chegar uma parte do form que label vai acabar, e se tiver mais nomes escritos, eu não poderia visualizar.

Então eu pensei em colocar um botão que, quando clicado, mostraria num TMemo (ou algum componente parecido) todos os nomes cadastrados nesse campo. E também pensei em deixar esse botão ativado só quando esses nomes ultrapassasem o tamanho do label de exibição.

Tem como fazer isso? Eu consigo jogar dados de um campo VarChar num TMemo e ele aparecer dividido por linhas? E como eu pegaria o tamanho do label pra fazer o botão ativar e/ou desativar?



Allan Elias Ramos :wink:


Aersoftware

Aersoftware

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

22/08/2005

Bom, fiz um exemplinho bem simples agora é só você adaptar.

procedure TForm1.Button1Click(Sender: TObject);
var
  Campos : String;
  I : Integer;
  Conta: Integer;
  Inicio: Integer;
begin
  Memo1.Lines.Clear;
  Campos := ´nome1;nome2;nome3;nome4;nome5;´;
  Conta := 1;
  Inicio := 1;
  for I := 1 to Length(Campos) do
  begin
    if Campos[I] = ´;´ then
    begin
      Memo1.Lines.Add(Copy(Campos,Inicio,Conta-1));
      Inicio := I + 1;
      Conta := 1;
    end
    else
      Inc(Conta);
  end;
end;


Quanto ao Label, você pode usar o mesmo algoritimo acima para contar quantos nome existem e ai fazer com que o visible do botão seja alterado, ex:

  Button1.Visible := ORetornoDaFuncao > 10;



GOSTEI 0
Aersoftware

Aersoftware

22/08/2005

Hmm.. entendi, valeu Adriano, vou dar uma adaptada aí..

Abraços..



Allan Elias Ramos :roll:


GOSTEI 0
POSTAR