Jump to content

Recommended Posts

Posted

Olá pessoal.

Estou a criar este tópico porque estou com um problema no Lazarus.

O meu problema é o seguinte:

- Eu tenho um Formulário com uma ListView (Tem 3 colunas).

- Eu criei um novo formulário com um TMemo.

Queria que aparece no TMemo os dados que estão escritos na terceira coluna.

Exemplo: Eu estou no Formulário da ListView, quando clico no num button, vai para o Formulário do TMemo com os dados da coluna escrito lá dentro.

Obrigado pela ajuda e bom tarde.

Posted

Qual a duvida exactamente?

Consegues ler os dados da listview que queres passar para o TMemo? Ou não os consegues sequer ler?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted (edited)

É assim, na minha ListView tenho 3 colunas.

Na parte esquerda da ListView tenho CheckBox. Depois as colunas são: Nomes (nomes de programas), Localizações (dos programas) e a descrições (dos programas).

Eu tenho no Form1, esta ListView e um button (que me permite instalar o programa) e no Form2, tenho um TMemo.

As CheckBox me permite seleccionar na ListView, os programas que quer instalar.

Agora eu queria é que, por exemplo, selecciona o primeiro programa a partir da CheckBox e que quando clico num button instalar, vai directamente por Form2 (do TMemo) e que neste TMemo aparece-me a descrição do programa seleccionado.

Espero que vocês iam perceber.

Edited by Whalattax
Posted

O que eu pergunto é que parte é que não sabes fazer. De qualquer maneira, vejamos o seguinte:

Tens o programa, a lista com 3 colunas e uma checkbox em cada linha.

Primeiro, o utilizador pode por a checkbox como "checked" em mais do que uma linha?

Quando o utilizador clica em Instalar, qual a linha da listview onde ele deve ir buscar a descrição? Todas as que tiverem como Checked, a que estiver seleccionada, ou tens algum outro critério?

Vamos assumir que queres que ele passe para o Form2 todos os items que tiverem Checked, mas um de cada vez (penso que com isto conseguirás fazer os ajustes necessários para se adaptar ao que queres):

No evento OnClick do botão Instalar fazes o seguinte:

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
    form2:=Tform2.Create(self);  // Cria a 2ª form

    for i := 0 to listview1.Items.Count-1 do  // Percorre todas as linhas da ListView
        if listview1.Items[i].Checked  // Se a ListView estiver como Checked faz o seguinte:
           then with Form2 do
                    begin
                         Memo1.Lines.Clear;  // Limpa as linhas do TMemo
                         Memo1.Lines.Add(listview1.Items[i].SubItems[1]); // Adiciona ao TMemo a 3ª coluna (2º subitem) ao TMemo
                         ShowModal;  // Mostra a Form2
                    end;
    { Quando a form2 é fechada pelo utilizador (programa instalado), o ciclo continua no proximo item e se mais algum Checked for encontrado,
     a Form2 volta a ser mostrada, desta vez com a descrição do novo programa }

    form2.Free; // Liberta a 2ª form
end;

Serve para o que precisas?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

OK

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.