GARANTIR DESCONTO

Fórum Stringlist Checklistbox #308795

11/01/2006

0

Tenho 2 Componentes, um criado em tempo de execucao (stringlist) e um checklistbox..

Pego os itens que estao no checklist e jogo no stringlist... sem problema...

limpo o checklistbox...

Agora, alimento novamente o checklist... só que nenhum dos itens do mesmo estao selecionado nessa nova fase, o que vai alimentar ele sao os itens do stringlist.

podem me dizer como ?

ou seja, com os novos itens que foram jogados no checklist (uma nova listagem...), dentro do mesmo tem os itens que foram jogados no stringlist, porém na nova listagem esse itens nao estao marcados... gostaria de marcar no checklist esse itens que estao dentro do stringlist

é facil, porem to com tanta coisa na cabeca que nao to conseguindo penssar em como resolver isso.

podem me ajudar ?


Technos

Technos

Responder

Posts

11/01/2006

Bruno Belchior

Para alimentar a StringList:
var
  Cont, Check: Smallint;
begin
  with FStngLstAlimentada do
  begin
    for Cont := 0 to ChckLstBxAlimentador.Items.Count-1 do
    begin
      if ChckLstBxAlimentador.Checked[Cont] then
        Check := 1
      else
        Check := 0;
      AddObject(ChckLstBxAlimentador.Items[Cont], TObject(Check));
    end;  
  end;
end;


Para Alimentar o CheckListBox:
var
  Cont, Check: Smallint;
begin
  with ChckLstBxAlimentador do
  begin
    for Cont := 0 to FStngLstAlimentada.Count-1 do
    begin
      Check := Integer(Objects[Cont]);
      Items.Add(FStngLstAlimentada[Cont]);
      Checked[Cont] := Check = 1;
    end;  
  end;
end;
Pode haver algum erro de sintaxe, pois estou sem delphi aqui para testar, mas a lógica é essa...


Responder

Gostei + 0

12/01/2006

Technos

Cara...

Vou postar como eu fiz, seguindo a logica que voce passou (so pra salientar, era assim que eu ja tava fazendo):

Alimentando o stringlist:

for i := 0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Checked[i] then
SelecaoProdutos.add(checklistbox1.items.strings[i]);

limpo o checklist

CheckListBox1.Clear ;

Alimento novamente o checklist:

RecarregaChecklist;

Usando a sua logica, tento recolocar os itens do stringlist no checklist, porem ele nao marca todos e quando marca, marca errado:

for i := 0 to SelecaoProdutos.Count - 1 do
begin
Check := integer(i);
CheckListBox1.Items.Add(SelecaoProdutos[i]);
CheckListBox1.Checked[i] := Check = 1;
end;

Dá uma olha ae cara


Responder

Gostei + 0

12/01/2006

Bruno Belchior

Ah bom você quer adicionar e todos estarem marcados... Eu tinha entendido que você queria adicionar exatamente como o CheckListBox estava quando foi limpado... então você poderia fazer assim:
var
  Cont: Smallint;
begin 
  with ChckLstBx do
  begin
    for Cont := 0 to FStrLst.Count - 1 do
    begin
      Items.Add(Strings[Cont]);
      Checked[Cont] := True;
    end;
  end;
end;



Responder

Gostei + 0

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

Aceitar