Stringlist Checklistbox
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 ?
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
Curtidas 0
Respostas
Bruno Belchior
11/01/2006
Para alimentar a StringList:
Para Alimentar o CheckListBox:Pode haver algum erro de sintaxe, pois estou sem delphi aqui para testar, mas a lógica é essa...
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;
GOSTEI 0
Technos
11/01/2006
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
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
GOSTEI 0
Bruno Belchior
11/01/2006
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;
GOSTEI 0