Fórum Problemas com algoritimo que liga 3 TStringLists #341784
15/05/2007
0
tenho 1 listview e 1 CheckListbox e uma TStringList auxiliar
preciso fazer o seguinte.. se surgir um caption novo na lista 1 marque a checklistbox.. e caso suma algum deles, deschecke ela na checklistbox
estou a alguns dias nesse problema e nao estou coseguindo resolver a questão deles se descheckarem..
então pensei em por uma 3º lista, q serviria como auxiliar..
//Checka elas caso nao estejem marcadas na lista.. for X := 0 to Ck.Items.Count - 1 do begin for Y := 0 to ListAux.Count - 1 do begin if ((Ck.Items.Strings[X] = ListAux.Strings[Y]) and (Ck.Checked[X] = False)) then begin Ck.Checked[X] := True; ListTmp.Add(IntToStr(Y)); end; end; end; //Deschecka caso ele esteje caido pra 6º ou mair posição for X := 0 to ListAux.Count - 1 do begin for Y := 0 to ListTmp.Count - 1 do begin if (ListAux.Strings[X] = ListTmp.Strings[Y]) then begin for Z := 0 to Ck.Count - 1 do begin if (Ck.Checked[X]) then begin Ck.Checked[Z] := False; end; end; end; end; end;
agradeço desde ja se alguem poder me auxiliar.. derrepente pra alguem com o pesnsamento não focado com isso diretamente, seje facil de enxergar a solução.
Nightshade
Curtir tópico
+ 0Posts
15/05/2007
Davicarrano
//Checka
for X := 0 to Ck.Items.Count - 1 do
begin
If (ListAux.indexof(Ck.Items.Strings[X])>=0) and (Ck.Checked[X] = False) Then
Ck.Checked[X] := True;
end;
//Deschecka
for X := 0 to ListAux.Count - 1 do
begin
if (Ck.Items.indexof(ListAux.Items.Strings[X])>=0) and (Ck.Checked[X]) Then
Ck.Checked[Z] := False;
end;
Gostei + 0
15/05/2007
Nightshade
eu estou fazendo uma comparação de 3 listas.. alias são 2, porém estou usando uma terceira como auxiliar.
numa lista eu tenho 10 itens esses 10 itens e num chechlistbox eu tenho em torno de 80 itens
entao se um nome entra nessa lista de 10, ela deve ser chechada na outra lista.
e se um desses nomes sai da lista, ele deve descheckar.
estou tentando agora da seguinte forma, porem nao funciono ainda:
//Checka elas caso nao estejem marcadas na lista.. for X := 0 to Ck.Items.Count - 1 do begin for Y := 1 to ListAux.Count do begin if ((Ck.Items.Strings[X] = ListAux.Strings[Y]) and (Ck.Checked[X] = False)) then begin Ck.Checked[X] := True; ListTmp.Add(IntToStr(Y)); end; end; end; // //Deschecka caso ele esteje caido pra 6º ou mair posição for X := 0 to ListAux.Count - 1 do begin for Y := 0 to ListTmp.Count - 1 do begin if (ListAux.Strings[X] = ListTmp.Strings[Y]) then begin ListTmp.Delete(Y); end; end; end; for X := 0 to Ck.Count - 1 do begin for Y := 0 to ListTmp.Count - 1 do begin if (Ck.Items.Strings[X] = ListTmp.Strings[Y]) then begin Ck.Checked[X] := False; end; end; end;
Gostei + 0
15/05/2007
Nightshade
entao formam-se ai os 10 membros da ListView..
agora com esses 10 captions eu quero controlar a chacklistbox atraves de valores deles..
Gostei + 0
16/05/2007
Nightshade
Gostei + 0
16/05/2007
Nightshade
Gostei + 0
16/05/2007
Nightshade
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)