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

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Out 04, 2016 2:29 pm Assunto: Como deixar o checked de todos no TJvCheckTreeView? (Resolvi |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Out 04, 2016 5:16 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Out 05, 2016 9:06 am Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 10:06 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Out 05, 2016 10:32 am Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 11:09 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

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

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 11:28 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Out 05, 2016 11:40 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

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

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 11:55 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Out 05, 2016 1:24 pm Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 2:44 pm Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Out 05, 2016 2:52 pm Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Qua Out 05, 2016 3:33 pm Assunto: |
|
|
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 |
|
 |
|