ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Como deixar o checked de todos no TJvCheckTreeView? (Resolvi
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Ter Out 04, 2016 2:29 pm    Assunto: Como deixar o checked de todos no TJvCheckTreeView? (Resolvi Responder com Citação

Como faço para usar um button e deixar todos checkbox de um TJvCheckTreeView marcados?

Assim não rolou, da erro de violação.

Código:
var
  i: integer;
  n: TTreeNode;
begin
  inherited;

  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      TJvCheckTreeView(Components[i]).Checked[n.Item[i]] := True;

_________________
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


Editado pela última vez por adriano_servitec em Qua Out 05, 2016 3:34 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Ter Out 04, 2016 5:16 pm    Assunto: Responder com Citação

Teste assim:

Código:
var
  i, j: Integer;
begin
  inherited;

  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked[TJvCheckTreeView(Components[i]).Items[j]] := True;
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 9:06 am    Assunto: Responder com Citação

natanbh1 escreveu:
Teste assim:

Código:
var
  i, j: Integer;
begin
  inherited;

  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked[TJvCheckTreeView(Components[i]).Items[j]] := True;
end;
Obrigado pelo código amigo, testei aqui e consigo marcar todos apenas na terceira tentativa.

Ou seja
O método
Código:
procedure TfrmCadastroUsuarios.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
  for i := 0 to Pred(ComponentCount) do
  begin
    if (Components[i] is TJvCheckTreeView) then
    begin
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        // Deixo todos checkbox do treeview checados ou não
        TJvCheckTreeView(Components[i]).Checked
          [TJvCheckTreeView(Components[i]).Items[j]] := SN;
    end;
  end;
end;


a chamada num outro checkbox
Código:
procedure TfrmCadastroUsuarios.chkMarcarDesmarcarTreeViewClick(Sender: TObject);
begin
  inherited;
  if chkMarcarDesmarcarTreeView.Checked then
    check_notcheck_treeview(True)
  else
    check_notcheck_treeview(False);
end;


Ai neste check a primeira vez marca apenas 6 subnodes e todos nodes, ai faço o inverso e apaga todos, ai na segunda tentativa de marcar todos mostra mais nodes e subnodes checados, mais não todos, ai peço para desmarcar e funciona normal, ai na terceira tentaviva é que preenche todos os nodes e subnodes.

Estou analisando aqui o que pode ter ocorrido.

Obrigado.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 10:06 am    Assunto: Responder com Citação

Fiz um teste com seu código e funcionou marcando e desmarcando todos os checkbox's.

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if chkMarcarDesmarcarTreeView.Checked then
    check_notcheck_treeview(True)
  else
    check_notcheck_treeview(False);
end;


Código:

procedure TForm1.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
 // Deixo todos checkbox do treeview checados ou não
  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked[TJvCheckTreeView(Components[i]).Items[j]] := SN;
end;


Segue para download o projeto teste que fiz:

https://drive.google.com/file/d/0B5FtQ7I4e7M4aVhzOGlGSS1vWGs/view?usp=sharing
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 10:32 am    Assunto: Responder com Citação

natanbh1 escreveu:
Fiz um teste com seu código e funcionou marcando e desmarcando todos os checkbox's.

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if chkMarcarDesmarcarTreeView.Checked then
    check_notcheck_treeview(True)
  else
    check_notcheck_treeview(False);
end;


Código:

procedure TForm1.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
 // Deixo todos checkbox do treeview checados ou não
  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked[TJvCheckTreeView(Components[i]).Items[j]] := SN;
end;


Segue para download o projeto teste que fiz:

https://drive.google.com/file/d/0B5FtQ7I4e7M4aVhzOGlGSS1vWGs/view?usp=sharing
O seu código esta correto natanbh1, o meu problema é que tenho um CategoryPanelGroup e os TJvCheckTreeView ficam dentro dele.

Percebi que só mostra todos checados os subnodes só a quantidade de CategoryPanel que aparece na tela. Porque se eu ir ao final do CategoryPanelGroup ao consigo que todos ficam marcados.

Eu alterei seu codigo um pouco pra mostrar o meu problema amigo. Veja

A tela
Código:
object chkMarcarDesmarcarTreeView: TCheckBox
  Left = 442
  Top = 24
  Width = 169
  Height = 17
  Caption = 'chkMarcarDesmarcarTreeView'
  TabOrder = 0
  OnClick = chkMarcarDesmarcarTreeViewClick
end
object ilFlatChecks: TImageList
  Left = 439
  Top = 144
  Bitmap = {
    494C010103000900200010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
    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
object CategoryPanelGroup1: TCategoryPanelGroup
  Left = 0
  Top = 0
  Width = 305
  Height = 446
  VertScrollBar.Position = 756
  VertScrollBar.Tracking = True
  HeaderFont.Charset = DEFAULT_CHARSET
  HeaderFont.Color = clWindowText
  HeaderFont.Height = -11
  HeaderFont.Name = 'Tahoma'
  HeaderFont.Style = []
  TabOrder = 1
  object CategoryPanel6: TCategoryPanel
    Top = 244
    Caption = 'CategoryPanel6'
    TabOrder = 0
    object JvCheckTreeView6: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
  object CategoryPanel5: TCategoryPanel
    Top = 44
    Caption = 'CategoryPanel5'
    TabOrder = 1
    object JvCheckTreeView5: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
  object CategoryPanel4: TCategoryPanel
    Top = -156
    Caption = 'CategoryPanel4'
    TabOrder = 2
    object JvCheckTreeView4: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
  object CategoryPanel3: TCategoryPanel
    Top = -356
    Caption = 'CategoryPanel3'
    TabOrder = 3
    object JvCheckTreeView3: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
  object CategoryPanel2: TCategoryPanel
    Top = -556
    Caption = 'CategoryPanel2'
    TabOrder = 4
    object JvCheckTreeView2: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
  object CategoryPanel1: TCategoryPanel
    Top = -756
    Caption = 'CategoryPanel1'
    TabOrder = 5
    object JvCheckTreeView1: TJvCheckTreeView
      Left = 0
      Top = 0
      Width = 284
      Height = 174
      Align = alClient
      Indent = 19
      TabOrder = 0
      Items.NodeData = {
        030200000020000000000000000000000001000000FFFFFFFF00000000000000
        00010000000101310024000000000000000000000001000000FFFFFFFF000000
        000000000001000000010331002E003100280000000000000000000000010000
        00FFFFFFFF000000000000000000000000010531002E0031002E003100200000
        00000000000000000001000000FFFFFFFF000000000000000001000000010132
        0024000000000000000000000001000000FFFFFFFF0000000000000000010000
        00010332002E00320028000000000000000000000001000000FFFFFFFF000000
        000000000000000000010532002E0032002E003200}
      Checkboxes = True
      CheckBoxOptions.Style = cbsNone
    end
  end
end


O pas
Código:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, JvExComCtrls, JvComCtrls,
  JvCheckTreeView,
  Vcl.StdCtrls, Vcl.ImgList, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    chkMarcarDesmarcarTreeView: TCheckBox;
    ilFlatChecks: TImageList;
    CategoryPanelGroup1: TCategoryPanelGroup;
    CategoryPanel1: TCategoryPanel;
    CategoryPanel2: TCategoryPanel;
    CategoryPanel3: TCategoryPanel;
    CategoryPanel4: TCategoryPanel;
    JvCheckTreeView1: TJvCheckTreeView;
    JvCheckTreeView2: TJvCheckTreeView;
    JvCheckTreeView3: TJvCheckTreeView;
    JvCheckTreeView4: TJvCheckTreeView;
    CategoryPanel5: TCategoryPanel;
    CategoryPanel6: TCategoryPanel;
    JvCheckTreeView5: TJvCheckTreeView;
    JvCheckTreeView6: TJvCheckTreeView;
    procedure chkMarcarDesmarcarTreeViewClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure check_notcheck_treeview(SN: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{ TForm1 }

procedure TForm1.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
  // Deixo todos checkbox do treeview checados ou não
  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked
          [TJvCheckTreeView(Components[i]).Items[j]] := SN;
end;

procedure TForm1.chkMarcarDesmarcarTreeViewClick(Sender: TObject);
begin
  if chkMarcarDesmarcarTreeView.Checked then
    check_notcheck_treeview(True)
  else
    check_notcheck_treeview(False);
end;

procedure TForm1.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;
end;

end.


Assim não funciona quando não vou ao final do categoryPanelGroup.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 11:09 am    Assunto: Responder com Citação

Fiz uma simulação do seu cenário aqui e funcionou normalmente, marcando e desmarcando todos os checkbox's mesmo com os checkbox's visíveis ou não na tela com CategoryPanelGroup. Não consegui simular o seu erro.

Veja download do teste que fiz novamente:
https://drive.google.com/file/d/0B5FtQ7I4e7M4TDR5SjFfbTFSc0k/view?usp=sharing
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 11:23 am    Assunto: Responder com Citação

natanbh1 escreveu:
Fiz uma simulação do seu cenário aqui e funcionou normalmente, marcando e desmarcando todos os checkbox's mesmo com os checkbox's visíveis ou não na tela com CategoryPanelGroup. Não consegui simular o seu erro.

Veja download do teste que fiz novamente:
https://drive.google.com/file/d/0B5FtQ7I4e7M4TDR5SjFfbTFSc0k/view?usp=sharing
Ativa o codigo no onCreate ai para expandir todos e faça o teste por favor.

Obrigado.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 11:28 am    Assunto: Responder com Citação

O código no OnCreate já está da ativando, deixei da maneira que você postou:

Código:
procedure TForm1.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; // Aqui já está expandindo todos
      // 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;
end;


Funciona normalmente.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 11:40 am    Assunto: Responder com Citação

natanbh1 escreveu:
O código no OnCreate já está da ativando, deixei da maneira que você postou:

Código:
procedure TForm1.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; // Aqui já está expandindo todos
      // 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;
end;


Funciona normalmente.
No meu aqui não deu certo to usando XE7
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 11:53 am    Assunto: Responder com Citação

O meu problema se dá aqui devido a estas duas propriedades
Código:

// TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;
       // TJvCheckTreeView(Components[i]).CheckBoxOptions.Style := cbsJVCL;


Que necessito.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 11:55 am    Assunto: Responder com Citação

Aqui utilizo o Delphi XE5. Não sei se o problema é a versão, mas aqui funciona tranquilamente.

Vou dar uma estudada nesta duas propriedades que você postou.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 1:24 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Aqui utilizo o Delphi XE5. Não sei se o problema é a versão, mas aqui funciona tranquilamente.

Vou dar uma estudada nesta duas propriedades que você postou.
Pos é, eu não consigo de forma alguma, olha a imagem



Os tres primeiros CategoryPanel que estao aparecendo ficam marcados


Ja os outros tres categoryPanel (4,5,6) que ficam escondidos não é marcado


Se eu comentar estas linhas no onCreate
Código:
 TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;
      TJvCheckTreeView(Components[i]).CheckBoxOptions.Style := cbsJVCL;


Funciona, mais eu preciso destas linhas também depois, para poder marcar internamente e não estou conseguindo achar um local para chamar elas depois.

Obrigado.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 2:44 pm    Assunto: Responder com Citação

Consegui reproduzir o seu cenário.

Descobri que no meu teste estava funcionando porque o código do OnCreate não estava setado no evento do form.
Ou seja, o código estava lá mas não estava sendo chamado pelo compilador.

Testando aqui, se você alterar CascadeLevels de -1 para 0, por exemplo, funciona.

No OnCreate troque:

Código:
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;

Por:

Código:
TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := 0;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Out 05, 2016 2:52 pm    Assunto: Responder com Citação

Ou então você pode alterar dentro da procedure o Cascadelevels e depois volta para o estado anterior.

Teste assim:

Código:
procedure TForm1.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
  // Deixo todos checkbox do treeview checados ou não
  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
    begin
      TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := 0; // Alterei aqui

      for j := 0 to TJvCheckTreeView(Components[i]).Items.Count - 1 do
        TJvCheckTreeView(Components[i]).Checked[TJvCheckTreeView(Components[i]).Items[j]] := SN;

      TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1; // Voltei para o estado anterior
    end;
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Out 05, 2016 3:33 pm    Assunto: Responder com Citação

Rapaz o bagulho é doido, só assim pra funcionar se eu retirar qualquer um dos levels não funciona de acordo com minha necessidade

No Create tem que ficar assim
Código:
procedure TfrmCadastroUsuarios.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  inherited;
  // quebrar linha do label
  lblHorarioAcesso.Caption := 'Horário de Acesso' + #10 + #13 + 'do Sistema:';
  // comandos para todos trevieews deixar aqui
  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;
end;


E o código do método da forma que vc fez

Código:
procedure TfrmCadastroUsuarios.check_notcheck_treeview(SN: Boolean);
var
  i, j: Integer;
begin
  // Deixo todos checkbox do treeview checados ou não
  for i := 0 to Pred(ComponentCount) do
    if (Components[i] is TJvCheckTreeView) then
    begin
      TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := 0;
      for j := 0 to Pred(TJvCheckTreeView(Components[i]).Items.Count) do
        TJvCheckTreeView(Components[i]).Checked
          [TJvCheckTreeView(Components[i]).Items[j]] := SN;
      // Voltei para o estado anterior
      TJvCheckTreeView(Components[i]).CheckBoxOptions.CascadeLevels := -1;
    end;
end;


Resolvido esta desgrancença.

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB