CheckListBox espaçamento entre check?
Ola pessoal...
Tem como dar um espaço maior entre linhas nos checks do checklistbox?
Estou carregando os itens em tempo de projeto.
Obs: Não pode ficar o quadrado co checkbox entre as linhas que terão espaços.
Tipo ficar igual ao radiogroup que os itens vão ficando com espaços cfe. o tamanho. Preciso calcular o tamanho do checklistbox para ver qual o espaço entre linhas no ItemHeight, não posso simplesmente colocar um valor fixo.
Tem como dar um espaço maior entre linhas nos checks do checklistbox?
Estou carregando os itens em tempo de projeto.
Obs: Não pode ficar o quadrado co checkbox entre as linhas que terão espaços.
Tipo ficar igual ao radiogroup que os itens vão ficando com espaços cfe. o tamanho. Preciso calcular o tamanho do checklistbox para ver qual o espaço entre linhas no ItemHeight, não posso simplesmente colocar um valor fixo.
Adriano Dolce
Curtidas 0
Respostas
Adriano Dolce
30/11/2010
Ola pessoal...
Tem como dar um espaço maior entre linhas nos checks do checklistbox?
Estou carregando os itens em tempo de projeto.
Obs: Não pode ficar o quadrado co checkbox entre as linhas que terão espaços.
Tipo ficar igual ao radiogroup que os itens vão ficando com espaços cfe. o tamanho. Preciso calcular o tamanho do checklistbox para ver qual o espaço entre linhas no ItemHeight, não posso simplesmente colocar um valor fixo.
Acho que assim resolve aparentenmente
Tem como dar um espaço maior entre linhas nos checks do checklistbox?
Estou carregando os itens em tempo de projeto.
Obs: Não pode ficar o quadrado co checkbox entre as linhas que terão espaços.
Tipo ficar igual ao radiogroup que os itens vão ficando com espaços cfe. o tamanho. Preciso calcular o tamanho do checklistbox para ver qual o espaço entre linhas no ItemHeight, não posso simplesmente colocar um valor fixo.
procedure TForm1.FormCreate(Sender: TObject); var iItem: Integer; begin with CheckListBox1 do begin ItemHeight := (Height Div Items.Count); iItem := ItemHeight; end; CheckListBox1.ItemHeight := iItem -1; end;
Tem como retirar aquela barra (no meu caso aqui azul) do item selecionado? Ou ao menos deixar menor o espaço da barra, ja que ela esta acompanhando o espaçamento do ItemHeigth...
GOSTEI 0
Adriano Dolce
30/11/2010
Resolvi 90%
Fora os comentarios no codigo acima, tenho que ver como calcular também esta linha [b]Rect.Top + 10[/b] para deixar o texto centralizado com o box, talvez seja da mesma forma do que foi postado acima, mais não sei como fazer.
Um calculo automatico, fiz um teste aqui apenas pra demonstrar (com apenas duas condições). Mas não posso criar algo assim, ja que não sei quantos itens vão vir no checklistbox.
Segue apenas pra demonstrar...
Outra coisa, se eu deixo o style como bsSolid no codigo, fica até quase bom, o problema que logo no promeiro ele realça em vota do texto, quero ver se retiro isso também. Grato pela ajuda.
procedure TfrmTributos.chklistTributoDrawItem( Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with (Control as TCheckListBox).Canvas do begin //Font.Color := clBlack; //aqui não deu certo esta negritando a fonte Brush.Style := bsSolid; //aqui testei todas constantes e não deu certo TextOut(Rect.Left + 4, Rect.Top + 10,(Control as TCheckListBox).Items[Index]) ; end; end;
iTotalItem := chklistTributo.Items.Count; if iTotalItem = 7 then begin Brush.Style := bsSolid; TextOut(Rect.Left + 4, Rect.Top + 3,(Control as TCheckListBox).Items[Index]) end else if iTotalItem = 4 then begin Brush.Style := bsSolid; TextOut(Rect.Left + 4, Rect.Top + 10,(Control as TCheckListBox).Items[Index]); end;
Outra coisa, se eu deixo o style como bsSolid no codigo, fica até quase bom, o problema que logo no promeiro ele realça em vota do texto, quero ver se retiro isso também. Grato pela ajuda.
GOSTEI 0
Altec Ltda.
30/11/2010
Espaçamento entre CheckBox do Componente CheckListBox:
Para que haja espaço entre os Items, precisa ir até a propriedade Styles do CheckListBox e alterar para
"lbOwnerDrawFixed" feito isso é só mudar outra propriedade chamada ItemHeight com um valo inteiro desejado;
outra propriedade que não citei é IntegralHeigth, ela serve para qua a altura do componente se ajusta com o
ultimo ItemCheck...
Para que haja espaço entre os Items, precisa ir até a propriedade Styles do CheckListBox e alterar para
"lbOwnerDrawFixed" feito isso é só mudar outra propriedade chamada ItemHeight com um valo inteiro desejado;
outra propriedade que não citei é IntegralHeigth, ela serve para qua a altura do componente se ajusta com o
ultimo ItemCheck...
GOSTEI 0