Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) CheckListBox + focus em seus itens


Luis Ricardo

Pergunta

Boa noite... Acredito eu.

Estou com uma dúvida, na verdade não sei fazer.

Eu estou usando o componente TCheckListBox, insere diversos itens nele. Aí eu criei dois botões um chamado UP, e outro DOWN, eles fazem o item subir ou descer de acordo com a necessidade do usuário. ;D.

Só que quando eu clico no botão UP por exemplo eu perco o foco do CHECKLISTBOX no item que eu estava, e eu não quero ficar clicando no item do Checklist para toda vez ele se referenciar e o cara ir de novo e clicar no botão UP.

Enfim quando o usuário apertar no UP ele movimentar o item sem perder o foco deste item, se ele apertar de novo ainda estará nele.

Abaixo segue o meu botão UP.

Já fiz de tudo.

procedure TForm1.Button2Click(Sender: TObject);

begin

// affs não consigo me referenciar

CheckListBox1.Selected[index];

if CheckListBox1.ItemIndex > 0 then

begin

index:= CheckListBox1.ItemIndex - 1; // index uma variavel do tipo private declarada no inicio da class FORM

CheckListBox1.Items.Move( CheckListBox1.ItemIndex, CheckListBox1.ItemIndex - 1 );

FocusControl(CheckListBox1);

CheckListBox1.Selected[index];

CheckListBox1.ItemEnabled[index]:= True;

// CheckListBox1.State[index]:= cbChecked;

CheckListBox1.SetFocus; // Forçando

end;

end;

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Corrigindo tudo isto:

procedure TForm1.BtnUpClick(Sender: TObject);
var
  Index :Integer;
begin
  if CheckListBox1.ItemIndex > 0 then
  begin
    Index := CheckListBox1.ItemIndex -1;
    CheckListBox1.Items.Move(CheckListBox1.ItemIndex, Index);
    CheckListBox1.ItemIndex := Index;
  end;
  CheckListBox1.SetFocus;
end;

procedure TForm1.BtnDownClick(Sender: TObject);
var
  Index :Integer;
begin
  if CheckListBox1.ItemIndex in [0..CheckListBox1.Items.Count -2] then
  begin
    Index := CheckListBox1.ItemIndex +1;
    CheckListBox1.Items.Move(CheckListBox1.ItemIndex, Index);
    CheckListBox1.ItemIndex := Index;
  end;
  CheckListBox1.SetFocus;
end;

Se precisar de explicação, avise.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...