News & Events
Dica: Exemplo de ordenação no ListBox
- 29 de julho de 2008
- Posted by: Adriano Santos
- Category: delphi delphi2006 delphi2007 dicas
Difficulty level not set for this Post
Pessoal,
Resolvi montar um exemplinho bem básico mostrando como criar um esquema de ordenação em um ListBox e depois extrair isso para uma string que pode ser usada como Order By em uma instrução SQL.
O exemplo consiste em: o usuário poderá clicar em um item do ListBox e enviar para baixo ou para cima. Em seguida ele clica em Montar Ordem e a função monta um SQL. Bem simples.
Insira 3 botões na tela (btnDesce, btnSobe e btnExtrairOrderBy), 1 ListBox(lbx1) e 1 Edit(edt1). O evento OnClick dos três botões encontra-se abaixo. Vejam:
//Esse botão faz os itens descerem
procedure TForm1.btnDesceClick(Sender: TObject);
var
NovoIndex : Integer;
begin
if not (lbx1.ItemIndex = lbx1.Items.Count-1) then
begin
NovoIndex := lbx1.ItemIndex + 1;
lbx1.Items.Move(lbx1.ItemIndex, NovoIndex);
lbx1.ItemIndex := NovoIndex;
lbx1.SetFocus;
end;
end;
//Esse botão faz os itens subirem
procedure TForm1.btnSobeClick(Sender: TObject);
var
NovoIndex : Integer;
begin
if not (lbx1.ItemIndex - 1 < 0) then
begin
NovoIndex := lbx1.ItemIndex - 1;
lbx1.Items.Move(lbx1.ItemIndex, NovoIndex);
lbx1.ItemIndex := NovoIndex;
lbx1.SetFocus;
end;
end;
//Esse botão monta uma instrução ORDER BY dinâmica
procedure TForm1.btnExtrairOrderByClick(Sender: TObject);
var
I : Integer;
Order: string;
begin
Order := '';
for I := 0 to lbx1.Items.Count-1 do
begin
if I = 0 then
Order := lbx1.Items[I] + ','
else
Order := Order + lbx1.Items[I] + ',';
end;
Order := Copy(Order, 0, Length(Order)-1);
Edt1.Text := 'SELECT * FROM TABE WHERE CAMPO = :CAMPO ORDER BY ' +
Order;
end;
Exemplo na seção downloads
Adriano Santos
Editor Técnico Revista ClubeDelphi
Parabéns, sua inscrição no Feed RSS foi aceita. Leia em primeira mão todas as notícias do blog.
Siga @tdevrocks no Twitter agora e fique por dentro de todas as atualizações do blog.
Siga também o autor @asrsantos
Author: Adriano Santos
Adriano Santos é especialista em linguagens de desenvolvimento, Embarcadero MVP, possui +1000 artigos e vídeo-aulas publicadas em revistas e websites especializados, ex-editor chefe das revistas ClubeDelphi e WebMobile. Atualmente Diretor de Operações na startup GET IT! Technology e Consultor Senior na Embarcadero do Brasil.
Ola muito bom este seu post.
Estive precisando algo similar em um projeto de aula e você me ajudou muito co esta dica.
Aproveitando, gostaria de saber se tem como eu pegar os nomes dos campos das tabelas no MySQL, e joga-las neste listbox para que o usuário então possa selecionar o que quer ver. Valeu
Atencisamente
Sérgio