Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Jul 19, 2017 10:58 am Assunto: SubNodes não estão sendo preenchidos treeview? |
|
|
Tenho este treeview que esta sendo preenchido quanto tem dados no banco
Mais seus subnodes dentro do nó não esta sendo populando mesmo tendo valor.
Creio que falta algo neste procedimento aqui
Código: | procedure TfrmCadastroUsuarios.PreencheArvorePermissoes;
var
permissoes: Array of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := uFuncoesGlobais.ContaString(',',
Trim(oUsuario.ArrayPermissao));
SetLength(permissoes, qtdPermissoes);
Explode(permissoes, ',', oUsuario.ArrayPermissao);
// Percorro todos os componentes treeview
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
// Verifico se o id da permissão do For é igual ao SelectedIndex (que é o número do id da permissão) da check
if TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex = StrToInt(permissoes[k]) then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
end;
end;
end; |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qui Jul 20, 2017 1:55 pm Assunto: |
|
|
Estou sem os componentes do Jedi aqui para testar, mas tenta debugar o if que verifica o ID da permissão com o SelectedIndex, verifique durante o for, quais os valores em cada um dos lados
TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex << Verificar valor que está chegando aqui
StrToInt(permissoes[k] << Verificar valor que está chegando aqui
Verifique também se os subnodes estão entrando nesse for |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Jul 21, 2017 10:44 am Assunto: |
|
|
leo_cj escreveu: | Estou sem os componentes do Jedi aqui para testar, mas tenta debugar o if que verifica o ID da permissão com o SelectedIndex, verifique durante o for, quais os valores em cada um dos lados
TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex << Verificar valor que está chegando aqui
StrToInt(permissoes[k] << Verificar valor que está chegando aqui
Verifique também se os subnodes estão entrando nesse for |
Então fiz os testes aqui
Código: | f TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex = StrToInt(permissoes[k]) then
begin
ShowMessage(IntToStr(TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex));
ShowMessage(permissoes[k]);
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end; |
A comparação esta correta nos dois showmessage, mais não marca os subnodes dentro dos nodes _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Sex Jul 21, 2017 10:50 am Assunto: |
|
|
Vejamos amigos então:
Tudo que sabemos é que os nós e os subnós possui valores e que não há qualquer problema com a exibição dos nós entretanto já vimos subnós este sim não estão sendo exibido de acordo com os referidos valores armazenado nos mesmo.
Se a colocação acima este ver correta então tente chamar o refresh ou o repaint do referido treeview logo após a sua população.
E tudo ficará ok. _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Jul 21, 2017 11:13 am Assunto: |
|
|
strak2012 escreveu: | Vejamos amigos então:
Tudo que sabemos é que os nós e os subnós possui valores e que não há qualquer problema com a exibição dos nós entretanto já vimos subnós este sim não estão sendo exibido de acordo com os referidos valores armazenado nos mesmo.
Se a colocação acima este ver correta então tente chamar o refresh ou o repaint do referido treeview logo após a sua população.
E tudo ficará ok. |
Olá eu coloquei aqui no método
Código: | procedure TfrmCadastroUsuarios.PreencheArvorePermissoes;
var
permissoes: Array of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := uFuncoesGlobais.ContaString(',',
Trim(oUsuario.ArrayPermissao));
SetLength(permissoes, qtdPermissoes);
Explode(permissoes, ',', oUsuario.ArrayPermissao);
// Percorro todos os componentes treeview
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
// Verifico se o id da permissão do For é igual ao SelectedIndex (que é o número do id da permissão) da check
if TJvCheckTreeView(Components[i]).Items.Item[j]
.SelectedIndex = StrToInt(permissoes[k]) then
begin
// ShowMessage(IntToStr(TJvCheckTreeView(Components[i]).Items.Item[j]
// .SelectedIndex));
//
// ShowMessage(permissoes[k]);
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
TJvCheckTreeView(Components[i]).Repaint;
Break;
end;
end;
end;
end;
end; |
marco os campos
Mais ao voltar nele não aparece nos quadrados de dentro, igual a primeira imagem do post acima.
O banco esta gravado os campos
19-Frente de caixa
66-Autorização Desconto Geral
67-Autorização desconto Por Item
68-Sangria do Caixa _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Sex Jul 21, 2017 2:47 pm Assunto: |
|
|
Sim, mas postei aqui para mostrar que o jeito que ele utiliza para marcar um node/subnode é diferente da maneira que você está utilizando, e que pode ser esse o problema.
Como nunca utilizei o componente e não tenho ele aqui, não consigo verificar se o problema está ou não na forma como você está tentando fazer a marcação do checkbox |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Sex Jul 21, 2017 4:38 pm Assunto: |
|
|
Chegou a verificar se não pode ser o Cascadelevels que está atrapalhando novamente? |
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Jul 21, 2017 4:47 pm Assunto: |
|
|
Instalei o Jedi novamente e fiz um teste com seu código e funcionou.
Veja o código:
Código: | var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
end;
end;
end; |
Salvei o projeto exemplo neste link para download:
https://www.4shared.com/zip/aqGhacfsca/jvCheckTreeview.html _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Jul 28, 2017 11:24 am Assunto: |
|
|
natanbh1 escreveu: | Instalei o Jedi novamente e fiz um teste com seu código e funcionou.
Veja o código:
Código: | var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
end;
end;
end; |
Salvei o projeto exemplo neste link para download:
https://www.4shared.com/zip/aqGhacfsca/jvCheckTreeview.html |
Então Natan BH1 Primeiramente...Obrigado pela ajuda....Seguinte
Vi seu app e achei o problema
No oncreate o meu tem isso aqui para expandir
Código: | procedure TForm2.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to Pred(ComponentCount) do
if (Components[i] is TJvCheckTreeView) then
begin
// deixo todos expandidos na tela
TJvCheckTreeView(Components[i]).FullExpand;
// deixo todos com borda no checkbox
//TJvCheckTreeView(Components[i]).StateImages := ilFlatChecks;
// para marcar todos checkbox do treeview deixar as duas opções abaixo
//TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;
TJvCheckTreeView(Components[i]).CheckBoxOptions.Style := cbsJVCL;
end; |
Ai descobri o problema.
Esta linha de código
Código: | TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1; |
Se eu comentar mostra todos checks marcados
Mais ai o primeiro checkbox MARCAR TODOS não funciona.
Ha mudei aqui os índices do seu projeto 19 tem que ficar no campo 1 que é o nó pai 66,67,68 fica nos nós filhos deste nó 1
Código: | object JvCheckTreeView1: TJvCheckTreeView
Left = 18
Top = 13
Width = 234
Height = 320
Indent = 19
TabOrder = 0
Items.NodeData = {
030100000036000000000000000000000001000000FFFFFFFF00000000000000
0004000000010C4D0061007200630061007200200054006F0064006F00730020
000000000000001300000001000000FFFFFFFF00000000000000000600000001
01310024000000000000004200000001000000FFFFFFFF010000000000000000
000000010331002E00310024000000000000004300000001000000FFFFFFFF01
0000000000000000000000010331002E00320024000000000000004400000001
000000FFFFFFFF010000000000000000000000010331002E0033002400000000
0000004500000001000000FFFFFFFF010000000000000000000000010331002E
00340024000000000000004600000001000000FFFFFFFF010000000000000000
000000010331002E00350024000000000000004700000001000000FFFFFFFF01
0000000000000000000000010331002E00360020000000000000000000000001
000000FFFFFFFF00000000000000000300000001013200240000000000000000
00000001000000FFFFFFFF000000000000000000000000010332002E00310024
000000000000000000000001000000FFFFFFFF00000000000000000000000001
0332002E00320024000000000000000000000001000000FFFFFFFF0000000000
00000000000000010332002E00330020000000000000000000000001000000FF
FFFFFF0000000000000000000000000101330020000000000000000000000001
000000FFFFFFFF00000000000000000000000001013400}
Checkboxes = True
CheckBoxOptions.Style = cbsJVCL
end
object Button1: TButton
Left = 88
Top = 339
Width = 75
Height = 25
Caption = 'Cique aqui'
TabOrder = 1
OnClick = Button1Click
end
object ilFlatChecks: TImageList
Left = 117
Top = 128
Bitmap = {
494C010103000900D00010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF000000000000000000FFFFFF00000000000000000000000000FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF0000000000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF0000000000000000000000000000000000000000000000000000000000FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
2800000040000000100000000100010000000000800000000000000000000000
000000000000000000000000FFFFFF00FFFFFFFFFFFF0000FFFF800380030000
FFFF800380030000FFFF800380030000FFFF800380030000FFFF800380030000
FFFF800380030000FFFF800380030000FFFF800380030000FFFF800380030000
FFFF800380030000FFFF800380030000FFFF800380030000FFFF800380030000
FFFFFFFFFFFF0000FFFFFFFFFFFF000000000000000000000000000000000000
000000000000}
end
|
pas
Código: | unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, JvExComCtrls, JvComCtrls,
JvCheckTreeView, Vcl.ImgList;
type
TForm2 = class(TForm)
JvCheckTreeView1: TJvCheckTreeView;
Button1: TButton;
ilFlatChecks: TImageList;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure PreencheArvorePermissoes;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
end;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to Pred(ComponentCount) do
if (Components[i] is TJvCheckTreeView) then
begin
// deixo todos expandidos na tela
TJvCheckTreeView(Components[i]).FullExpand;
// deixo todos com borda no checkbox
TJvCheckTreeView(Components[i]).StateImages := ilFlatChecks;
// para marcar todos checkbox do treeview deixar as duas opções abaixo
//TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;
TJvCheckTreeView(Components[i]).CheckBoxOptions.Style := cbsJVCL;
end;
PreencheArvorePermissoes;
end;
procedure TForm2.PreencheArvorePermissoes;
var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: Integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
end;
end;
end;
end. |
_________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Jul 28, 2017 12:35 pm Assunto: |
|
|
Faça um teste com a mesma solução do post anterior sobre o assunto:
http://www.activedelphi.com.br/forum/viewtopic.php?p=481129&sid=4336a74b4df7d8e09259c2280770c5a4
No procedimento PreencheArvorePermissoes, antes do For altere o CascadeLevels para 0 e após o For volte para -1 para funcionar o checar todos.
Código: | procedure TForm2.PreencheArvorePermissoes;
var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := 0; // Incluí esta linha
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1; // Incluí esta linha também
end;
end;
end; |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Jul 28, 2017 1:43 pm Assunto: |
|
|
natanbh1 escreveu: | Faça um teste com a mesma solução do post anterior sobre o assunto:
http://www.activedelphi.com.br/forum/viewtopic.php?p=481129&sid=4336a74b4df7d8e09259c2280770c5a4
No procedimento PreencheArvorePermissoes, antes do For altere o CascadeLevels para 0 e após o For volte para -1 para funcionar o checar todos.
Código: | procedure TForm2.PreencheArvorePermissoes;
var
permissoes: Array [0 .. 3] of String;
i, j, k, qtdPermissoes: integer;
begin
qtdPermissoes := 4;
permissoes[0] := '19';
permissoes[1] := '66';
permissoes[2] := '67';
permissoes[3] := '68';
for i := 0 to Pred(ComponentCount) do
begin
if (Components[i] is TJvCheckTreeView) then
begin
for j := 1 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
begin
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := 0; // Incluí esta linha
for k := 0 to Pred(qtdPermissoes) do
if TJvCheckTreeView(Components[i]).Items.Item[j].SelectedIndex = StrToInt(permissoes[k])
then
begin
TJvCheckTreeView(Components[i]).Checked
[TJvCheckTreeView(Components[i]).Items[j]] := True;
Break;
end;
end;
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1; // Incluí esta linha também
end;
end;
end; |
|
Sim assim deu certo Natan BH1
Muito obrigado amigo. _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
 |
|