Você está aqui: VB.NET ::: Windows Forms ::: ListBox |
|
Detectando um duplo-clique em uma ListBox e exibindo o valor do item selecionadoQuantidade de visualizações: 8903 vezes |
|
'Este exemplo mostra como detectar um duplo-clique 'em uma ListBox e exibir o valor do item selecionado. Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'adiciona alguns itens na ListBox ListBox1.Items.Add("Visual Basic") ListBox1.Items.Add("VB.NET") ListBox1.Items.Add("Visual Studio") ListBox1.Items.Add("Delphi") ListBox1.Items.Add("DHTML") ListBox1.Items.Add("Java") ListBox1.Items.Add("JavaScript") End Sub Private Sub ListBox1_DoubleClick(ByVal sender As _ System.Object, ByVal e As System.EventArgs) Handles _ ListBox1.DoubleClick Dim valor As String = ListBox1.SelectedItem MsgBox("O valor selecionado na lista é: " & valor) End Sub End Class |
|
Link para compartilhar na Internet ou com seus amigos: | |
AutoCAD ::: Dicas & Truques ::: Configurações da Área de Desenho |
Como definir os limites da área de desenho do AutoCAD usando o comando LIMITSQuantidade de visualizações: 574 vezes |
Quando estamos criando um novo desenho no AutoCAD, muitas vezes usando os arquivos de template acad.dwt (medidas imperiais) ou acadiso.dwt (medidas métricas), nos deparamos com uma área de desenho gigantesca, com medidas enormes. Assim, é sempre uma boa idéia delimitarmos a área de desenho, e isso é feito por meio do comando LIMITS. Este comando, quando acionado, nos pede duas coordenadas: Lower Left e Upper Right. Veja a figura: Dessa forma, Lower Left define os limites para o canto esquerdo inferior e Upper Right define os limites para o canto superior direito. Quando acionamos o comando LIMITS (ligado: ON), não conseguimos sair desses limites, o que pode ser uma comodidade, pois podemos nos concentrar em pequenos porções de um desenho de grandes proporções. Vamos então aprender a usar o comando LIMITS do AutoCAD? Comece criando um novo desenho (usando ou não os templates mencionados acima) e digite os comandos a seguir: LIMITS [Enter] Specify lower left corner or [ON/OFF] <0.0000,0.0000>: 0,0 ...... Tenha a certeza de inserir as coordenadas separadas por vírgulas e acionar a opção ON para ativar os limites. No final, digite o comando ZOOM ALL para aproximar a área de desenho dentro dos limites recém-definidos. Agora, sempre que digitarmos coordenadas fora desses limites, o AutoCAD nos avisará que os valores são inválidos e os rejeitará. Para desligar os limites, basta chamar LIMITS novamente e informar o valor OFF. |
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar os tipos de dados DATE, TIME e TIMESTAMP do FirebirdQuantidade de visualizações: 29412 vezes |
No dialeto 3 (SQL DIALECT 3), o tipo de dados DATE do Firebird armazena apenas a data sozinha, ou seja, sem as horas. Esta forma de guardar apenas a data resulta em uma ocupação de 4 bytes (32 bits) na memória. A data armazenada pode variar de 01/01/0001 até 31/12/9999. No dialeto 1, (SQL DIALECT 1), o tipo DATE é o equivalente ao tipo TIMESTAMP do dialeto 3 (o tipo TIMESTAMP passou a existir somente a partir do dialeto 3). Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo DATE: CREATE TABLE ALUNOS ( ID INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, ...... Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e NASCIMENTO é do tipo DATE. Veja agora um comando DML INSERT INTO que insere um novo registro nesta tabela. Fique atento à forma como o valor da data é informado: INSERT INTO ALUNOS VALUES(1, 'OSMAR J. SILVA', '1981-11-28'); ...... Veja que a data, assim como o valor para o campo NOME, foi informada entre aspas simples e seguindo o formato YYYY-MM-DD, ou seja, o ano, mês e dia separados por hifens. Para obter os dados inseridos pela query anterior, podemos usar o seguinte comando DML SELECT FROM: SELECT * FROM ALUNOS; ...... Esta query resulta na exibição dos seguintes dados: ID NOME NASCIMENTO 1 OSMAR J. SILVA 28/11/1981 O tipo de dados TIME, disponível apenas a partir do dialeto 3 (SQL DIALECT 3) nos permite armazenar as horas, sem a data. Este tipo ocupa 4 bytes (32 bits) de memória e pode conter valores na faixa de 00:00 até 23:59:59.9999. Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo TIME: CREATE TABLE COMPROMISSOS ( ID INTEGER NOT NULL, DESCRICAO VARCHAR(80) NOT NULL, ...... Veja que esta tabela possui 4 campos: ID do tipo INTEGER, DESCRICAO do tipo VARCHAR(80), DATA do tipo DATE e HORA do tipo TIME. Eis um comando DML INSERT INTO que mostra como inserir um registro nesta tabela: INSERT INTO COMPROMISSOS VALUES(10, 'ALMOÇO COM A ESPOSA', ...... Note que, assim como fazemos com campos do tipo DATE, os valores para campos do tipo TIME também devem ser informados entre aspas simples. Veja um comando DML SELECT FROM que lista o registro inserido na query anterior: SELECT * FROM COMPROMISSOS; ...... Esta query produz o seguinte resultado: ID DESCRICAO DATA HORA 10 ALMOÇO COM A ESPOSA 10/12/2010 19:00:00 O tipo TIMESTAMP, disponível apenas a partir do dialeto 3 (SQL DIALECT 3) nos permite armazenar a data e hora juntas. Este tipo ocupa 8 bytes (64 bits) de memória e é equivalente ao tipo DATE do dialeto 1. Veja um comando DDL CREATE TABLE que cria uma tabela do Firebird contendo um campo do tipo TIMESTAMP: CREATE TABLE COMPROMISSOS ( ID INTEGER NOT NULL, DESCRICAO VARCHAR(80) NOT NULL, ...... Veja que esta tabela possui três campos: ID é do tipo INTEGER, DESCRICAO é do tipo VARCHAR(80) e DATA_HORA é do tipo TIMESTAMP. Eis um comando DML INSERT INTO que mostra como inserir um registro nesta tabela: INSERT INTO COMPROMISSOS VALUES(20, 'ALMOÇO COM A ESPOSA', ...... Note que os valores para campos do tipo TIMESTAMP também devem ser informados entre aspas simples. Para finalizar, Veja um comando DML SELECT FROM que lista o registro inserido na query anterior: SELECT * FROM COMPROMISSOS; ...... Esta query produz o seguinte resultado: ID DESCRICAO DATA_HORA 20 ALMOÇO COM A ESPOSA 23/10/2010 19:00:00 |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter o conteúdo de uma string C# usando as funções ToCharArray() e Reverse()Quantidade de visualizações: 15752 vezes |
Nesta dica mostrarei como podemos tirar proveito do método ToCharArray() da classe String e do método Reverse() da classe Array do C# para inverter a ordem dos caracteres de uma palavra, frase ou texto. Note que criei um método InverterString() que recebe uma string e a devolve invertida. Veja o código completo para o exemplo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de C# e Java"; Console.WriteLine("String original: " + frase); // inverte o conteúdo frase = InverterString(frase); Console.WriteLine("String invertida: " + frase); ...... Ao executar este código nós teremos o seguinte resultado: String original: Gosto de C# e Java String invertida: avaJ e #C ed otsoG |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
Exercícios Resolvidos de Java - Laços - Faça um programa para calcular o valor das seguintes expressõesQuantidade de visualizações: 1650 vezes |
Exercício Resolvido de Java - Laços - Faça um programa para calcular o valor das seguintes expressões Pergunta/Tarefa: Faça um programa para calcular o valor das seguintes expressões: 1) __$S_1 = \frac{1}{1} + \frac{3}{2} + \frac{5}{3} + \frac{7}{4} + \text{...} + \frac{99}{50} __$ 2) __$S_2 = \frac{2^1}{50} + \frac{2^2}{49} + \frac{2^3}{48} + \text{...} + \frac{2^\text{50}}{1} __$ 3) __$S_3 = \frac{1}{1} - \frac{2}{4} + \frac{3}{9} - \frac{4}{16} + \frac{5}{25} - \text{...} - \frac{10}{100} __$ Resposta/Solução: Em ambas as expressões nós temos o último termo nos informando os valores limites. Dessa forma, basta fixarmos um laço for ou laço while com estes limites. Veja a resolução deste exercício em código Java console: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ // primeira expressão int numerador = 1; int denominador = 1; double resultado = 0.0; // laço while para montar os termos e fazer a somatória while(numerador <= 99){ resultado = resultado + ((numerador * 1.0) / denominador); numerador = numerador + 2; denominador++; } // agora mostramos o resultado System.out.println("Primeira expressão: " + resultado); // segunda expressão int expoente = 1; denominador = 50; resultado = 0.0; // laço while para montar os termos e fazer a somatória while(denominador >= 1){ resultado = resultado + ((Math.pow(2, expoente) * 1.0) / denominador); expoente++; ...... Ao executar este código Java nós teremos o seguinte resultado: Primeira expressão: 95.5007946616706 Segunda expressão: 1.5608286920413398E15 Terceira expressão: 0.6456349206349207 |
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em C - Como remover um nó no final de uma lista ligada simples em C - Listas encadeadas em CQuantidade de visualizações: 1674 vezes |
Nesta dica mostraremos como é possível excluir o nó no fim (o último nó) de uma lista encadeada simples (singly linked list) em C. Veja a função:// função que permite remover um nó no fim // da lista, ou seja, o último nó da lista. // A função retorna um ponteiro para o início da lista struct No *remover_final(struct No *inicio){ struct No *n; // nó que será removido // nó que antecede o nó a ser removido. Isso // faz sentido, já que ele será o último nó // agora struct No *anterior; n = inicio; // aponta para o início da lista // varremos os nós da lista e paramos um nó antes do ...... Note que a função recebe um ponteiro para o início da lista e retorna também um ponteiro para o início da lista. Tenha o cuidado de verificar se a lista não está vazia antes de tentar fazer a exclusão. No exemplo eu fiz isso na função main(). Veja a listagem completa abaixo: #include <stdio.h> #include <stdlib.h> // estrutura Nó struct No{ int valor; struct No *proximo; }; // fim da estrutura Nó // função que permite exibir os valores de // todos os nós da lista void exibir(struct No *n){ if(n != NULL){ do{ printf("%d\n", n->valor); n = n->proximo; }while(n != NULL); } else printf("A lista esta vazia\n\n"); } // função que permite remover um nó no fim // da lista, ou seja, o último nó da lista. // A função retorna um ponteiro para o início da lista struct No *remover_final(struct No *inicio){ struct No *n; // nó que será removido // nó que antecede o nó a ser removido. Isso // faz sentido, já que ele será o último nó // agora struct No *anterior; n = inicio; // aponta para o início da lista // varremos os nós da lista e paramos um nó antes do // nó a ser excluído while(n->proximo != NULL){ anterior = n; // anterior assume o lugar de n n = n->proximo; // e n assume o seu próximo } // anterior passa a ser o último nó agora anterior->proximo = NULL; // mostra o nó removido printf("\nNo removido: %d\n", n->valor); free(n); // libera o nó que antes era o último return inicio; } // função que permite inserir nós no // final da lista. // veja que a função recebe o valor a ser // armazenado em cada nó e um ponteiro para o // início da lista. A função retorna um // ponteiro para o início da lista struct No *inserir_final(struct No *n, int v){ // reserva memória para o novo nó struct No *novo = (struct No*)malloc(sizeof(struct No)); ...... Ao executar esse código você terá o seguinte resultado: Valores presentes na lista ligada antes da remocao: 45 3 98 47 No removido: 47 Valores presentes na lista ligada apos a remocao: ...... |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
VB.NET - Como calcular o coeficiente angular de uma reta em VB.NET dados dois pontos no plano cartesiano |
Quem Somos |
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.
|
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 |