LiveBindings em tempo de Execução

09/01/2015

0

Bom dia. Preciso fazer o seguinte:

Ter quatro colunas definidas e, em cada uma delas, um Listbox; todas elas serão criadas dentro de um ScrollBox. A quantidade de Listboxies na tela será equivalente à quantidade de "Tarefas" que estiverem cadastradas no banco de dados. Em suma, a cada tarefa, quatro Lisboxies. Se eu possuir duas tarefas, terei oito Listboxies. Perfeito.

Montei a rotina que se encarregará de montar os ListBoxies na tela de acordo com o que manda o banco de dados. Fiz o seguinte:


  for I := 1 to cdsObj.RecordCount do
  begin
    labelvir := TPanel.Create(Self);
    LabelVir.Parent := SBox;
    Labelvir.name := 'Indice_' + inttostr(I);
    LabelVir.Tag := I;
    LabelVir.Caption:= '';
    Labelvir.Left := Left;
    Labelvir.Top := Top;
    Labelvir.Width:= 500;
    Labelvir.Height:= 300;
    Labelvir.Color:= clMoneyGreen;
    Labelvir.Align:= alTop;
    labelvir.Font.Size:= 15;
    Left := Left + espaco;

    ListLeft    := 45;
    ListEspaco  := 380;

    for J := 1 to 4 do
    begin
      if I = 1 then
      begin
        Titulo  :=  TLabel.Create(Self);
        Titulo.Parent := Labelvir;
        Titulo.Name := 'Label_' + inttostr(J) + IntToStr(I) ;
        Titulo.Tag := I;
        Titulo.Left := ListLeft + 130;
        Titulo.Font.Style:= [fsBOLD];
        Titulo.Top := Top - 21;
        Titulo.Height:= 20;
        Titulo.Width:= 450;
        Titulo.Alignment:= taCenter;
        Titulo.Color:= clMoneyGreen;
        Titulo.Font.Size:= 12;
      end;

      if J = 1 then
        Titulo.Caption:= 'A fazer'
      else if J = 2 then
        Titulo.Caption:= 'Em execução'
      else if J = 3 then
        Titulo.Caption:= 'Em Teste'
      else if J = 4 then
        Titulo.Caption:= 'Concluído';

      // LisView1
      ListView1 := TListView.Create(Self);
      ListView1.Parent := Labelvir;
      ListView1.name := 'List_' + inttostr(J) + inttostr(I) ;
      ListView1.Tag := I;
      ListView1.Left := ListLeft;
      ListView1.Top := Top;
      ListView1.Height:= 250;
      ListView1.Width:= 350;
      ListView1.Color:= clMoneyGreen;
      ListView1.Font.Size:= 15;
      ListLeft := ListLeft + ListEspaco;
    end;
  end;


Aqui é montado, como vocês podem perceber, uma estrutura com Labels e todos os quadros. A intenção é criar um quadro de tarefas, o conhecido [i]Kanban[/i].

Cada ListBox desse corresponde a um projeto, e cada projeto terá as suas pendências -- que serão listadas a partir dos itens que devem ser adicionados. Os itens também já estão cadastrados no banco de dados. Um exemplo disso seria:

PROJETO 1
- pendência do projeto 1 #1
- pendência do projeto 1 #2
- pendência do projeto 1 #3
[...]


Só que eu não sei como ligar os itens de cada ListBox ao seu respectivo registro, filtrando pelo Código do Projeto, o que permitiria dividir as tarefas corretamente.

Além disso, cada um dos quatro ListBoxies terão as suas respectivas funções: o primeiro diz respeito àqueles que ainda estão com o [i]status[/i] A FAZER; os outros serão: EM EXECUÇÃO, EM TESTE e, por fim, CONCLUÍDO. Todas essas informações estão no banco de dados, em cada uma das tarefas pertencentes aos seus respectivos projetos.

Os ListBoxies permitem que os seus itens sejam arrastados entre si, trocando, assim, o valor do campo [i]status[/i] para o equivalente ao ListBoxies a que se encontrará. Ou seja, se eu arrasto uma tarefa em A FAZER para EM EXECUÇÃO, o seu [i]status[/i] será alterado de A FAZER para EM EXECUÇÃO.

Alguém tem alguma ideia de como eu posso proceder a partir daqui?

Muito obrigado!
Jaime Santos

Jaime Santos

Responder

Posts

09/01/2015

Jaime Santos

Alguém, por favor?
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar