Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: VB.NET ::: Windows Forms ::: ComboBox

Obtendo o índice do item selecionado em um ComboBox

Quantidade de visualizações: 9866 vezes
'Este exemplo mostra como obter o índice do item selecionado
'em um ComboBox com o valor DropDownList para a propriedade
'DropDownStyle

'Se nenhum item estiver selecionado, o valor será -1

Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

    Dim indice As Integer = ComboBox1.SelectedIndex
    MsgBox("O índice do item selecionado é: " & indice)

  End Sub

  Private Sub Form1_Load(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles MyBase.Load
    'adiciona itens no combo
    ComboBox1.Items.Add("Visual Basic")
    ComboBox1.Items.Add("C#")
    ComboBox1.Items.Add("Java")
    ComboBox1.Items.Add("Delphi")
    ComboBox1.Items.Add("JavaScript")
  End Sub
End Class


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Threads

Threads em Java - O que são threads e como usá-las em seus programas Java

Quantidade de visualizações: 13163 vezes
Uma thread é um fluxo de execução de uma determinada tarefa em um programa. Na programação tradicional, temos apenas um fluxo de execução que começa a executar no início do programa e vai até o final. Com o uso de threads podemos ter várias tarefas sendo executadas ao mesmo tempo, cada uma independente da outra.

Em programas que contêm interfaces gráficas, o uso de múltiplos fluxos de execução (ou threads) é muito comum. Enquanto digitamos em uma caixa de texto, uma animação pode estar sendo executada ou um arquivo sendo baixado.

O Java permite que tenhamos várias threads sendo executadas ao mesmo tempo. Cada tarefa (ou thread) é uma instância da interface Runnable. Esta interface descreve apenas um método:

public void run();
Há duas formas de criarmos uma thread em Java. A primeira consiste em extender a classe Thread. Esta classe implementa a interface Runnable e fornece o método start(), que é usado para avisar ao gerenciador de threads que a thread recém criada está pronta para ser executada. Veja um exemplo:

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
......


Salve este código como Estudos.java, compile e execute. Veja que cada thread escreverá de 1 a 20 na tela. Observe como as duas threads se alternam em suas tarefas, ou seja, de tempos em tempos uma cede lugar para que a outra seja executada. Note também que, embora nossa classe tenha um método run() nós não o chamamos. O que fazemos é chamar o método start(), que torna a thread elegível para ser executada a qualquer momento.

Uma outra forma de criarmos uma thread é fazer com que nossa classe implemente a interface Runnable. Veja:

// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
......


O funcionamento do código é o mesmo. A diferença é que agora, a classe usada como thread implementa a interface Runnable. A forma de criação da thread também foi alterada. Agora nós criamos instâncias de Thread fornecendo nossa classe thread como argumento e chamamos o método start da classe Thread e não de nossa própria classe, como fizemos anteriormente.


Java ::: Coleções (Collections) ::: ArrayList

Como inserir um item em uma determinada posição da ArrayList do Java usando o método add()

Quantidade de visualizações: 14414 vezes
Nesta dica mostrarei como é possível usar o método add() da classe ArrayList do Java para inserir um elemento em uma determinada posição, ou seja, em um determinado índice da lista. Para isso nós só precisamos usar a assinatura do método add() que aceita também o índice no qual o novo elemento será inserido. Veja:

public void add(int index, E element)
......


Você deve ter em mente, claro, que este método pode disparar uma exceção do tipo IndexOutOfBoundsException se o índice informado estiver fora da faixa permitida.

Veja agora o código Java completo para o exemplo:

package estudos;

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> pessoas = new ArrayList<>();
    
    // adiciona itens na lista
    pessoas.add("Alberto");
    pessoas.add("Victor");
......


Ao executar este código Java nós teremos o seguinte resultado:

Alberto
Victor
Ricardo
João


Rust ::: Fundamentos da Linguagem ::: Compilador rustc

Como escrever um "Hello, World!" na linguagem Rust usando a ferramenta rustc

Quantidade de visualizações: 360 vezes
Então você já fez a instalação do Rust, testou o seu funcionamento disparando "rustc --version" em uma janela de terminal e agora quer começar a aprender mais sobre a linguagem? Que tal começar escrevendo o famoso "Hello, World!" ("Olá, Mundo!")?

Nesta dica mostrarei como essa tarefa é fácil, principalmente se optarmos pelo uso da ferramenta rustc. Lembre-se, no entanto, que rustc é usado diretamente quando estamos escrevendo aplicações simples, provas de conceito, protótipos e coisas assim. Para aplicações mais complexas, é sempre recomendado o uso do Cargo, que é um sistema de build e gerenciador de pacotes do Rust.

Então vamos começar. Abra o seu editor de códigos favorito (tal como o Notepad++) e digite a seguinte listagem:

fn main() {
  println!("Hello, world! Aqui é Rust na veia.");
......


Salve este arquivo como "estudos.rs" no diretório de sua preferência. Aqui eu optei por salvá-lo em um diretório chamado "C:\estudos_rust".

Agora vamos compilar nosso programa Rust. Abra uma janela de terminal e navegue até o diretório que você salvou o arquivo "estudos.rs" e dispare o comando abaixo:

C:\Users\Osmar>cd c:\estudos_rust
......


Se tudo correr bem, você verá a criação de um arquivo "estudos.exe". Para executá-lo pela linha de comando nós só precisamos disparar:

c:\estudos_rust>estudos
Hello, world! Aqui é Rust na veia.
......


Simples, né? No entanto, se dermos duplo-clique em cima do executável gerado, ele abre e fecha automaticamente. Não seria bom exibir uma mensagem do tipo "Pressione uma tecla para fechar..."? Basta modificar seu código para a versão abaixo:

// importamos a biblioteca io
use std::io;
use std::io::Write;

fn main() {
  println!("Hello, world! Aqui é Rust na veia.");
  
  // procedimento para pausar o programa
  let mut resposta = String::new();
......


Sim, eu sei que agora nós adicionamos código demais para alcançar um detalhe tão simples. Mas, à medida que a linguagem Rust evolui, talvez os desenvolvedores resolvam simplificar esta parte. Compile o programa novamente e experimente abrir o executável com duplo-clique. Você verá que agora o programa fica aguardando o pressionamento da tecla Enter para fechar.


C# ::: Threads ::: Thread

Como usar a classe Thread para criar threads em seus programas C#

Quantidade de visualizações: 11542 vezes
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:

System.Object
  System.Runtime.ConstrainedExecution.CriticalFinalizerObject
    System.Threading.Thread


Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread.

Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional.

O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor.

Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho:

class Program{
  static void Main(string[] args){
    // using using System.Threading;

    // vamos criar uma nova instância da clase Thread
    // e fornecer o método que será executado
    Thread thread = new Thread(contar);
     
    // vamos agendar a thread para futura execução
    thread.Start();

    // agora vamos contar na thread principal
    for (int i = 0; i <= 20; i++){
      Console.Write("#" + Thread.CurrentThread.GetHashCode() 
......


Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada.


Delphi ::: VCL - Visual Component Library ::: TListBox

Como excluir todos os itens de uma ListBox do Delphi - Como remover todos os itens da ListBox usando a função Clear

Quantidade de visualizações: 14207 vezes
Em algumas situações nós precisamos excluir todos os itens de uma ListBox. Para tais situações podemos usar o método Clear da classe ListBox. Veja:

procedure TForm1.Button2Click(Sender: TObject);
begin
  // vamos excluir todos os itens da ListBox
......


Note que podemos também chamar o método Clear diretamente no objeto Items da ListBox, embora a chamada na ao método Clear da lista seja mais comum.

É possível também excluir os itens de uma ListBox individualmente chamando a função Delete() no objeto Items. Neste caso nós usamos um laço e percorremos todos os elementos da lista e os excluímos um a um. É importante, para estes casos, lembrarmos de percorrer os itens do último para o primeiro. Caso esta regra não seja obedecida, poderá haver erros de acesso durante a exclusão. Veja o código:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  // vamos percorrer todos os itens da ListBox do último
  // para o primeiro
  for i := ListBox1.Items.Count - 1 downto 0 do
......


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


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



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