![]() |
|||||
|
C# ::: Windows Forms ::: DataGridView |
Como retornar a linha da célula selecionada em um DataGridView do C# Windows FormsQuantidade de visualizações: 23902 vezes |
Muitas vezes precisamos obter a linha atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito por meio da propriedade CurrentRow. Esta propriedade retorna um objeto da classe DataGridViewRow, que representa uma linha no DataGridView. Podemos usar esta classe para obter o índice da linha que contém a célula selecionada, percorrer todas as células de uma determinada linha, etc. Veja um trecho de código no qual usamos a propriedade CurrentRow para obter o DataGridViewRow representando a linha da célula selecionada: private void button3_Click(object sender, EventArgs e){ // vamos obter a linha da célula selecionada DataGridViewRow linhaAtual = dataGridView1.CurrentRow; // vamos exibir o índice da linha atual int indice = linhaAtual.Index; MessageBox.Show("O índice da linha atual é: " + indice); } |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Java para iniciantes - Como usar o tipo de dados long da linguagem JavaQuantidade de visualizações: 14742 vezes |
O tipo de dados long pode ser usado quando queremos armazenar valores inteiros na faixa -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Veja um exemplo:public class Estudos{ static long valor = 545L; public static void main(String args[]){ System.out.println("O valor da variável é: " + valor); System.exit(0); } } Observe o uso do caractere "L" após o valor literal que atribuímos à variável. Isso é feito para que o compilador trate o literal como long e não como int. Você pode usar o "L" minúsculo, mas este se parece muito com o número um, o que torna seu uso pouco recomendável. O tipo de dados long pode ser convertido (sem a necessidade de cast) para os seguintes tipos: long -> float -> double Se precisarmos converter o tipo int para os tipos char, byte, short ou int, teremos que lançar mão de uma coerção (cast). Veja: byte valor2 = (byte)(valor); |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em CQuantidade de visualizações: 2411 vezes |
Nesta dica mostrarei como podemos tirar proveito do Teorema de Pitágoras para obter a medida do cateto adjascente quando temos as medidas da hipotenusa e do cateto oposto. Este teorema diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos", o que torna a nossa tarefa, na linguagem C, muito fácil. Comece observando a imagem a seguir: ![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[b^2 = c^2 - a^2\] Veja que agora o quadrado do cateto adjascente é igual ao quadrado da hipotenusa menos o quadrado do cateto oposto. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem C: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]){ float c = 36.056; // medida da hipotenusa float a = 20; // medida do cateto oposto // agora vamos calcular a medida da cateto adjascente float b = sqrt(pow(c, 2) - pow(a, 2)); // e mostramos o resultado printf("A medida do cateto adjascente é: %f", b); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A medida do cateto adjascente é: 30.000586 Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada. |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de um arquivo texto em Java usando as classes BufferedReader, FileReader e a função readLine()Quantidade de visualizações: 157 vezes |
Nesta dica mostrarei como podemos combinar as classes BufferedReader, FileReader e a função readLine() para ler o conteúdo de um arquivo texto em Java, uma linha de cada vez. Veja o código completo para o exemplo: package estudos; import java.io.*; public class Estudos { public static void main(String[] args) { try { BufferedReader in = new BufferedReader( new FileReader("c:\\estudos_java\\alunos.txt")); String linha; while((linha = in.readLine()) != null){ System.out.println(linha); } in.close(); } catch (IOException e){ System.out.println("Houve um erro: " + e.getMessage()); } System.out.println(); } } Ao executar este código Java nós teremos o seguinte resultado: Alberto Maria Fernanda Josias |
PHP ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Como usar o padrão de projeto Singleton em suas aplicações PHPQuantidade de visualizações: 9063 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementados extensivamente nas linguagens Java e C#. Como o PHP, a partir de sua versão 5, suporta praticamente todos os recursos da programação orientada a objetos, este padrão pode ser implementado também nesta linguagem sem muitas dificuldades. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em PHP. Observe o código a seguir: <? // Uma classe Singleton responsável por gravar // logs no sistema class Logger{ // variável estática e privada que guarda a instância // atual da classe private static $instancia = NULL; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static function getInstance(){ if(self::$instancia == NULL){ self::$instancia = new Logger(); } return self::$instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private function __construct(){ // não precisamos fazer nada aqui } // Método clone() também privado para evitar a criação // de clones desta classe private function __clone(){ // não precisamos fazer nada aqui } public function registrarLog($dados){ echo "Vou registrar o log: " . $dados; } } // vamos registrar um novo log usando a classe Singleton Logger::getInstance()->registrarLog("Novo usuário cadastrado."); ?> Ao executar este código teremos o seguinte resultado: Vou registrar o log: Novo usuário cadastrado. |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Java para iniciantes - Como usar o laço do-while da linguagem JavaQuantidade de visualizações: 52977 vezes |
O laço do-while é uma variação do laço while. A diferença é que, no laço do-while a condição de continuidade é testada após a execução do bloco de códigos desejado. Isso nos faz crer que este laço é executado no mínimo uma vez. Veja sua sintáxe:do{ // bloco de instruções }while(condição); Se a condição testada for verdadeira, o laço continua sua execução. Do contrário a execução do programa segue a partir do ponto onde o laço se encontra. Veja um exemplo: import javax.swing.JOptionPane; public class Estudos{ public static void main(String[] args) { int valor; int soma = 0; // Lê continuamente até o usuário informar 0 do{ // efetua a próxima leitura String str = JOptionPane.showInputDialog(null, "Informe um valor inteiro:\n(ou 0 para sair)", "Estudos", JOptionPane.QUESTION_MESSAGE); valor = Integer.parseInt(str); soma += valor; }while(valor != 0); JOptionPane.showMessageDialog(null, "A soma é: " + soma, "Estudos", JOptionPane.INFORMATION_MESSAGE); } } Use o laço do-while quando você tiver instruções dentro do laço que precisem ser executadas no mínimo uma vez. |
Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como testar se um ponto está dentro de um círculo em Dart - Desenvolvimento de Games com DartQuantidade de visualizações: 883 vezes |
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em Dart, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo. Para melhor entendimento, veja a imagem a seguir: ![]() Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500. Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código Dart que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games. Veja o código completo para o exemplo: // Vamos importar a biblioteca dart:io import "dart:io"; // vamos importar a biblioteca dart:math import "dart:math"; // vamos declarar a classe Circulo class Circulo{ double xc; double yc; double raio; // construtor da classe Circulo Circulo(double xc, double yc, double raio){ this.xc = xc; // x do centro this.yc = yc; // y do centro this.raio = raio; // raio do círculo } } // agora vamos declarar a classe Ponto class Ponto{ double x; double y; // construtor da classe Ponto Ponto(double x, double y){ this.x = x; // coordenada x this.y = y; // coordenada y } } void main(){ // variáveis que vamos usar na resolução do problema Circulo c; Ponto p; double dx, dy; // vamos criar um objeto Circulo c = new Circulo(205, 166, 115); // vamos criar um objeto Ponto p = new Ponto(140, 90); // vamos verificar se o ponto está dentro do // círculo dx = p.x - c.xc; dy = p.y - c.yc; if((pow(dx, 2) + pow(dy, 2)) < pow(c.raio, 2)){ stdout.write("O ponto está dentro do círculo"); } else{ stdout.write("O ponto NÃO está dentro do círculo"); } } Ao executar este código Dart nós teremos o seguinte resultado: O ponto está dentro do círculo. Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes. |
C# ::: Windows Forms ::: CheckBox |
C# Windows Forms - Como usar a classe CheckBox em seus formulários C# Windows FormsQuantidade de visualizações: 12992 vezes |
Um objeto da classe System.Windows.Forms.CheckBox representa um controle Windows CheckBox. Este controle é uma caixa que pode ser marcada ou desmarcada. Além disso, este controle pode conter uma imagem, texto, ou ambos. Veja a posição da classe CheckBox na hierarquia de classes da plataforma .NET: System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ButtonBase System.Windows.Forms.CheckBox Você pode ter quantas CheckBox quiser em seus formulários. Elas não precisam necessariamente estar relacionadas. Em tempo de design podemos colocar uma CheckBox em um formulário simplesmente acessando o ToolBox -> Common Controls e arrastando o controle CheckBox para a posição desejada no formulário. Por padrão, uma CheckBox aparecerá desmarcada, ou seja, sua propriedade Checked será false. O texto ao lado da CheckBox pode ser modificado por meio da propriedade Text. Em tempo de execução podemos verificar se uma CheckBox está marcada com um código semelhante ao mostrado abaixo (estou assumindo que seu formulário possui um Button e uma CheckBox): private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(checkBox1.Checked) MessageBox.Show("A CheckBox está marcada"); else MessageBox.Show("A CheckBox está desmarcada"); } Caso precise modificar a propriedade Checked de uma CheckBox em tempo de execução, você poderá escrever algo parecido com: private void button1_Click(object sender, EventArgs e){ // vamos marcar a CheckBox checkBox1.Checked = true; } |
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução Select...Case do VB.NETQuantidade de visualizações: 20881 vezes |
As instruções If...Then e If...Then...Else são muito úteis para testarmos condições em nossos códigos. Porém, há situações em que os caminhos a serem testados são tantos que se torna um pouco tedioso escrever tantos ElseIfs. Para estas situações nós temos a instrução Select...Case. Veja seu uso no trecho de código abaixo:Dim valor As Integer = 7 Select Case valor Case 1 To 5 Console.WriteLine("Entre 1 e 5 (inclusive)") Case 6, 7, 8 Console.WriteLine("Entre 6 e 8 (inclusive)") Case 9 To 10 Console.WriteLine("Igual a 9 ou 10") Case Else Console.WriteLine("Não encontrado no teste") End Select Os valores a serem testados em cada passo da instrução podem ser separados por vírgulas ou por faixa, usando a palavra-chave To. Neste último caso, o valor limite também é incluído no teste. O tipo de dados da variável de teste deve se enquadrar nos tipos: Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong e UShort. |
jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML |
Como alternar a classe de um elemento HTML usando a função toggleClass() do jQueryQuantidade de visualizações: 9012 vezes |
O método toggleClass() do jQuery é um dos mais interessantes no framework. Este método permite aplicar um nome de classe a um elemento HTML se ele ainda não estiver definido e removê-lo se este já estiver definido para o elemento. Veja um trecho de código que altera a cor de fundo de um parágrafo a cada vez que ele é clicado. Comece analisando o trecho de estilos CSS: <style type="text/css"> body, td {font: 70% Verdana} .destaque {background-color: yellow} .destaque2 {background-color: red} </style> Veja agora o elemento P que usaremos para ilustrar o efeito: <p id="parag" class="destaque">Sou um parágrafo</p> E finalmente o código JavaScript (na parte <head></head> da página): <script type="text/javascript"> <!-- $(document).ready(function(){ $("#parag").click(function(){ $(this).toggleClass("destaque2"); }); }); //--> </script> E aqui a página HTML completa para o exemplo: <!doctype html> <html> <head> <title>Estudos jQuery</title> <style type="text/css"> body, td {font: 70% Verdana} .destaque {background-color: yellow} .destaque2 {background-color: red} </style> <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> </head> <body> <p id="parag" class="destaque">Sou um parágrafo</p> <script type="text/javascript"> $(document).ready(function(){ $("#parag").click(function(){ $(this).toggleClass("destaque2"); }); }); </script> </body> </html> O método toggleClass() retorna um objeto jQuery para fins de encadeamento de chamadas de métodos. |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |