Você está aqui: Delphi ::: VCL - Visual Component Library ::: TListBox

Como usar a propriedade Items da classe TListBox do Delphi

Quantidade de visualizações: 11348 vezes
A propriedade Items da classe TListBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc.

Veja, por exemplo, como usar o método Add() para adicionar um novo item na ListBox:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos adicionar um novo item na ListBox
  listBox1.Items.Add('Arquivo de Códigos');
end;

É possível obter um referência à propriedade Items para manipular os itens da ListBox indiretamente. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  lista: TStrings;
begin
  // vamos obter a lista de itens da ListBox
  lista := listBox1.Items;

  // vamos adicionar um novo item à lista
  lista.Add('Arquivo de Códigos');
end;

Esta técnica é útil quando queremos inserir itens em uma TListBox a partir de uma função ou procedure. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// procedure personalizada para inserir itens em uma TListBox
procedure inserirItensListBox(lista: TStrings);
begin
  lista.Add('Arquivo de Códigos');
  lista.Add('Osmar J. Silva');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos chamar a procedure que adiciona os itens na ListBox
  inserirItensListBox(listBox1.Items);
end;

Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher a ListBox:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
  lista: TStringList;
begin
  lista := TStringList.Create;
  lista.Add('Arquivo de Códigos');
  lista.Add('Osmar J. Silva');

  Result := lista;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos obter a lista de strings
  ListBox1.Items := obterLista;
end;

Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: VCL - Visual Component Library ::: TComboBox

Como retornar o texto do item selecionado em um ComboBox do Delphi

Quantidade de visualizações: 28627 vezes
Uma das tarefas mais frequentes que precisamos realizar quando estamos usando o controle TComboBox em nossas aplicações Delphi é obter o texto do item selecionado. Isso pode ser feito fornecendo-se o índice do item selecionado (itemIndex) como subscrito para a propriedade Items (do tipo TStrings) do ComboBox. Veja o exemplo abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  item: string;
begin
  // vamos obter o valor do item selecionado no ComboBox
  item := ComboBox1.Items[ComboBox1.ItemIndex];

  // mostra o resultado
  ShowMessage('O item selecionado é: ' + item);
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar a propriedade Bof para verificar se estamos no primeiro registro do TClientDataSet do Delphi

Quantidade de visualizações: 11073 vezes
Em algumas situações gostaríamos de verificar se já estamos no primeiro registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset de trás para frente e queremos saber se já estamos no primeiro. Para isso podemos usar a propriedade Bof da classe TClientDataSet. Esta propriedade retorna true se estivermos no primeiro registro e false em caso contrário.

Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet de trás para frente. Note o uso da propriedade Bof para finalizar as iterações do laço:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button4Click(Sender: TObject);
begin
  // vamos percorrer todos os registros do TClientDataSet
  // de trás para frente
  ClientDataSet1.Last; // vamos para o último registro
  // e agora disparamos um laço While
  while not ClientDataSet1.Bof do
    begin
      // vamos mostrar em um TMemo os valores do primeiro
      // campo de cada registro
      Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString);
      // vamos mover para o registro anterior
      ClientDataSet1.Prior;
    end;
end;


A propriedade Bof é verdadeira quando:

a) Abrimos um dataset.

b) Efetuamos uma chamada ao método First (primeiro) do dataset.

c) Chamamos o método Prior (anterior) do dataset e a chamada falha porque o registro atual já é o primeiro registro no dataset.

d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio.

Esta dica foi escrita e testada no Delphi 2009.


Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Como abrir e fechar um dispositivo de saída MIDI usando Delphi

Quantidade de visualizações: 11307 vezes
Quando queremos executar sons MIDI no Windows, a primeira tarefa a ser realizada é abrir o dispositivo de saída MIDI. Isso é feito com uma chamada à função midiOutOpen() da API do Windows. Veja sua assinatura (em C):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

MMRESULT midiOutOpen(
  LPHMIDIOUT lphmo,              
  UINT_PTR   uDeviceID,          
  DWORD_PTR  dwCallback,         
  DWORD_PTR  dwCallbackInstance, 
  DWORD      dwFlags             
);

Esta função está traduzida na unit MMSystem.pas do Delphi da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

function midiOutOpen(lphMidiOut: PHMIDIOUT; uDeviceID: UINT;
  dwCallback, dwInstance, dwFlags: DWORD): MMRESULT; stdcall;

Antes de continuarmos, vamos entender os parâmetros desta função:

lphmo - Este é um ponteiro para um HMIDIOUT (que é simplemente um Integer). Este ponteiro é preenchido com um handle identificando o dispositivo de saída MIDI aberto. Este handle é usado para identificar o dispositivo nas demais chamadas de saída MIDI.

uDeviceID - Identificador do dispositivo de saída MIDI a ser aberto. O valor 0 aqui é seguro, visto que este identifica o primeiro dispositivo na lista de dispositivos de saída. Veja minha dica "Como obter uma lista dos dispositivos de saída MIDI no sistema" para mais informações.

dwCallback - Um ponteiro para uma função de callback, um handle de evento, um identificador de thread ou um handle para uma janela ou thread chamada durante o playback do MIDI para processar mensagens relacionadas ao processo de playback. Se não houver nada a ser processado, podemos definir o valor 0 para este parâmetro. Dê uma olhada na minha dica relacionada à função MidiOutProc().

dwCallbackInstance - Dados de instância do usuário passados para a função de callback. Este parâmetro não é usado em callbacks de janela e thread. É seguro manter seu valor como 0.

dwFlags - Flag de callback para abrir o dispositivo. Por enquanto vamos manter seu valor como CALLBACK_NULL. Veja minhas outras dicas sobre o assunto para aprofundar mais neste parâmetro.

Agora que aprendemos mais sobre os parâmetros da função midiOutOpen(), vamos ver como usá-la para abrir um dispositivo de saída MIDI e tocar a nota DÓ média (aquela no meio da escala de notas possíveis). Veja o código completo para a unit:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MMSystem;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    dispositivo: HMIDIOUT; // dispositivo de saída MIDI
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
  erro: Word;
begin
  erro := midiOutOpen(@dispositivo, 0, 0, 0, CALLBACK_NULL);

  // houve erro na abertura do dispositivo de saída MIDI?
  if (erro <> 0) then
    begin
      ShowMessage('Não foi possível abrir o dispositivo MIDI. Erro: ' + IntToStr(erro));
    end
  else
    begin
      ShowMessage('Dispositivo MIDI aberto com sucesso.');

      // vamos tocar uma nota para nos certificarmos de que o dispositivo
      // realmente foi aberto e está funcionando

      // vamos tocar a nota DÓ média e com velocidade máxima
      midiOutShortMsg(dispositivo, rgb($90, 60, 127));
      // vamos deixar a nota soar um pouco
      sleep(1000);
      // vamos silenciar a nota
      midiOutShortMsg(dispositivo, rgb($80, 60, 0));

      // finalmente vamos fechar o dispositivo MIDI
      midiOutClose(dispositivo);
    end;
end;

end.

O primeiro passo foi declarar uma variável do tipo HMIDIOUT:

dispositivo: HMIDIOUT;

Este é o dispositivo de saída que será usado nas demais chamadas MIDI, incluindo a função midiOutClose(), usada para fechar o dispositivo:

midiOutClose(dispositivo);

Na API do Windows está função está declarada da seguinte forma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

MMRESULT midiOutClose(
  HMIDIOUT hmo  
);

Na unit MMSystem.pas do Delphi está função está traduzida da seguinte forma:

function midiOutClose(hMidiOut: HMIDIOUT): MMRESULT; stdcall;

Veja que só precisamos fornecer o nome da variável representando o dispositivo de saída MIDI aberto no momento para que a função se encarregue de fechá-lo.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 50 usuários muito felizes estudando em nosso site.