C# ::: Windows Forms ::: TextBox |
Como contar as palavras em um TextBox de múltiplas linhas do C# Windows FormsQuantidade de visualizações: 13983 vezes |
Em algumas situações nós precisamos retornar a quantidade de palavras digitadas em um campo TextBox de múltiplas linhas do C# Windows Forms. O trecho de código abaixo mostra como isso pode ser feito. Note como usei os métodos da classe String para alcançar o objetivo. Veja o código C# completo disparado a partir do clique de um botão Button: /* Este exemplo mostra como obter a quantidade de palavras em um TextBox. Veja que usamos a técnica de contar as palavras contidas em um array após retirar as quebras de linhas e espaços duplicados na string. */ private void button1_Click(object sender, EventArgs e){ // Obtém o texto da caixa de texto string texto = textBox1.Text.Trim(); // Remove as quebras de linhas substituindo-as por // espaços texto = texto.Replace(Environment.NewLine, " "); // remove os espaços em excesso while(texto.IndexOf(" ") >= 0){ texto = texto.Replace(" ", " "); } // Obtém um array de palavras string[] palavras = texto.Split(" "); // Obtém a quantidade de palavras int quant = palavras.Length; // Exibe o resultado MessageBox.Show("O TextBox contém " + quant + " palavras."); } |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como usar o gerenciador de layout GridBagLayout em suas aplicações Java SwingQuantidade de visualizações: 12600 vezes |
O gerenciador de layout GridBagLayout é um dos mais complexos e mais flexíveis. Embora possa parecer, esta classe não é uma sub-classe de GridLayout, como mostra sua posição na hierarquia de classes Java:java.lang.Object java.awt.GridBagLayout Esta classe implementa as interfaces LayoutManager, LayoutManager2 e Serializable. A vantagem do gerenciador de layout GridBagLayout em relação ao GridLayout, é que, com o GridBagLayout nós podemos fazer com que os componentes nas linhas e colunas possam ter diferentes tamanhos e às vezes ocupar múltiplas linhas e colunas. O trecho de código abaixo mostra a forma mais simples de se criar um GridBagLayout. Veja que os botões são arranjados de forma horizontal na janela. É claro que sem os ajustes necessários, não tiramos muito proveito do uso deste gerenciador (mas isso será visto em outras dicas dessa seção): import javax.swing.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // adiciona componentes à janela add(new JButton("Botão 1")); add(new JButton("Botão 2")); add(new JButton("Botão 3")); add(new JButton("Botão 4")); setSize(350, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como trabalhar com strings em RubyQuantidade de visualizações: 8334 vezes |
Strings em Ruby são usadas para representar palavras, frases e textos e são bem parecidas com strings em outras linguagens dinâmicas, tais como Perl, Python e PHP. Além disso, strings em Ruby são dinâmicas, mutáveis e flexíveis. Podemos declarar e definir uma variável do tipo string em Ruby da seguinte forma: nome = "Osmar J. Silva" puts nome Em ruby, strings são objetos da classe String. Isso quer dizer que podemos efetuar chamadas à uma grande variedade de métodos desta classe a partir de qualquer variável do tipo string. Veja um exemplo: nome = "Osmar" puts nome.length Este exemplo exibirá a quantidade de caracteres contidos na string nome. Strings em Ruby podem estar contidas em aspas duplas ou aspas simples: nome = "Osmar J Silva" puts(nome) nome = 'Osmar J Silva' puts(nome) A diferença é que, quando usamos aspas duplas, podemos codificar dados binários dentro da string, assim como usar "\n" para provocar quebras de linha. Quando usamos aspas simples, podemos usar apenas "\'" para exibir uma aspa simples e "\\" para exibir uma barra invertida. |
C# ::: Windows Forms ::: ListBox |
Como ordenar alfabeticamente os itens de uma ListBox do C# Windows Forms usando a propriedade SortedQuantidade de visualizações: 10488 vezes |
Os itens de uma ListBox podem ser ordenados alfabeticamente definindo-se o valor True para a propriedade Sorted. Em tempo de execução este propriedade pode ser alterada da seguinte forma: private void button2_Click(object sender, EventArgs e){ // Ordena os itens da lista alfabeticamente listBox1.Sorted = true; } Esta propriedade pode também ser obtida enquanto o programa estiver em execução. Veja um trecho de código no qual clicamos em um botão e exibimos uma mensagem com o valor da propriedade Sorted da ListBox: private void button1_Click(object sender, EventArgs e) { // Obtém o valor da propriedade Sorted MessageBox.Show("Valor da propriedade Sorted: " + listBox1.Sorted); } Ao executarmos este código C# nós teremos o seguinte resultado: Valor da propriedade Sorted: True |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Métodos - Exercícios Resolvidos de Java - Ex. 4 - Um método estático que recebe dois números inteiros e retorna o maior delesQuantidade de visualizações: 4576 vezes |
Pergunta/Tarefa: Escreva um método Java que recebe dois números inteiros e retorna o maior deles. Este método deverá ter a seguinte assinatura: public static int maior(int a, int b){ // sua implementação aqui } Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar que o usuário informe dois numeros inteiros System.out.print("Informe o primeiro número: "); int num1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo número: "); int num2 = Integer.parseInt(entrada.nextLine()); // obtém o número maior int numeroMaior = maior(num1, num2); System.out.println("O numero maior é: " + numeroMaior); System.out.println("\n"); } // um método estático que recebe dois números inteiros e retorna o maior deles public static int maior(int a, int b){ if(a > b){ return a; } else{ return b; } } } |
Python ::: PyQt GUI Toolkit ::: QMainWindow |
Como centralizar uma janela QMainWindow do PyQtQuantidade de visualizações: 257 vezes |
Nesta dica mostrarei como podemos centralizar a janela principal de nossa aplicação PyQt. Note que esta janela principal, na maioria das vezes, é representada por uma instância da classe QMainWindow. Veja o código completo para o exemplo, já atualizado para o PyQt6: # vamos importar os módulos necessários import sys from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * # vamos criar uma classe que herda de QMainWindow class JanelaPrincipal(QMainWindow): # construtor da classe def __init__(self): super().__init__() # definimos o título da janela self.setWindowTitle("Cadastro de Produtos") # vamos definir as dimensões da janela self.resize(600, 420) # vamos obter a geometria do frame da nossa janela geometria_frame = self.frameGeometry() # acessamos a geometria da monitor e obtemos seu centro ponto_central = self.screen().availableGeometry().center() # movemos o retângulo obtido anteriormente para o centro da tela geometria_frame.moveCenter(ponto_central) # e finalmente movemos nossa janela para este ponto self.move(geometria_frame.topLeft()) if __name__== "__main__": # cria a aplicação app = QApplication(sys.argv) # cria a janela principal e a coloca visível janela_principal = JanelaPrincipal() janela_principal.show() # executa a aplicação app.exec() |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para o fundo (parte inferior) usando a API do WindowsQuantidade de visualizações: 6946 vezes |
Em algumas situações gostaríamos de rolar para baixo (fundo) o conteúdo de um TextBox de múltiplas. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_BOTTOM para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para baixo o conteúdo de um TextBox. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: using System.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: private void button2_Click(object sender, EventArgs e){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_BOTTOM = 7; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_BOTTOM; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role para o fundo (parte inferior) SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercícios Resolvidos de C - Como testar se um número é potência de dois usando CQuantidade de visualizações: 655 vezes |
Pergunta/Tarefa: Escreva um programa C contendo um método que recebe um número inteiro e retorna um valor boolean indicando se o valor informado é potência de dois. Sua saída deverá ser parecida com: Informe um valor inteiro: 8 O valor 8 é potência de dois Informe um valor inteiro: 34 O valor 34 não é potência de dois Informe um valor inteiro: 64 O valor 64 é potência de dois Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> // função que recebe um número inteiro e informe se ele é // potência de dois int is_potencia_dois(int n){ // usamos o operador AND de bits para verificar se n AND n-1 // é igual a 0 return (n > 0) && (n & (n - 1)) == 0; } int main(int argc, char *argv[]){ // variáveis usadas para int valor; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um valor inteiro printf("Informe um valor inteiro: "); scanf("%d", &valor); // vamos testar se o número informado é potência de dois if(is_potencia_dois(valor)){ printf("O valor %d é potência de dois", valor); } else{ printf("O valor %d não é potência de dois", valor); } printf("\n\n"); system("PAUSE"); return 0; } |
PHP ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Como usar funções e variáveis globais em PHPQuantidade de visualizações: 38691 vezes |
Por padrão, variáveis definidas a nível de página, ou seja, variáveis globais, não podem ser acessadas a partir de uma função. Veja um exemplo:<? // variável global $usuario = "Osmar"; function exibir(){ echo $usuario; // acessa a variável gloal } // chama a função exibir(); ?> Ao executar este exemplo teremos o seguinte resultado: Notice: Undefined variable: usuario in xxx/estudos.php on line 6 Para contornar este problema, temos que empregar a palavra-chave global seguida pelo nome da variável global que queremos acessar. Veja: <? // variável global $usuario = "Osmar"; function exibir(){ // permite acesso à variável global global $usuario; echo $usuario; // acessa a variável gloal } // chama a função exibir(); ?> Ao executarmos o código novamente, percebemos que o resultado é o esperado. Outra forma de acessar variáveis globais a partir de uma função é usando $GLOBALS. Veja: <? // variável global $usuario = "Osmar"; function exibir(){ echo $GLOBALS['usuario']; // acessa a variável global } // chama a função exibir(); ?> |
Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle |
Como usar o laço for da linguagem DartQuantidade de visualizações: 4232 vezes |
Em algumas situações os nossos códigos precisam executar repetidas vezes uma ou mais instruções. Para isso a linguagem Dart, assim como C, C++, Java, Python, JavaScript, Delphi, etc, nos oferece o laço for, ou loop for. Este laço é usado quando sabemos exatamente a quantidade de vezes que a instrução (ou grupo de instruções) deverá ser repetida. Veja um exemplo no qual usamos este laço para contar de 1 até 10: void main() { for (int i = 1; i <= 10; i++) { print('${i}'); } } Ao executar este código nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que o laço for em Dart é composto de três partes: a) Inicialização da variável de controle; b) O teste de continuidade; c) O incremento ou decremento da variável de controle. Como a execução do laço se inicia no teste de continuidade, é possível termos um laço for que nunca será executado. Veja: void main() { for (int i = 1; i > 5; i++) { print('${i}'); } } Execute este código e perceberá que nenhum valor é impresso. Isso aconteceu porque o teste condicional retornou um valor falso, impedindo até mesmo a primeira execução do laço. Veja agora um laço for que conta de 10 até 1: void main() { for (int i = 10; i >= 1; i--) { print('${i}'); } } Para finalizar em grande estilo, veja um laço for que pede para o usuário digitar 5 idades e, em seguida, mostra a média das idades lidas: // Vamos importar a biblioteca dart:io import 'dart:io'; void main() { int soma = 0; // vamos solicitar 5 idades for (int i = 0; i < 5; i++) { stdout.write("Digite uma idade: "); int idade = int.parse(stdin.readLineSync()); soma = soma + idade; } // Vamos mostrar a média das idades double media = soma / 5; print("A média das idades é $media."); } A execução deste código mostrará o seguinte resultado: c:\estudos_dart>dart laco_for.dart Digite uma idade: 18 Digite uma idade: 21 Digite uma idade: 34 Digite uma idade: 50 Digite uma idade: 9 A média das idades é 26.4. |
Nossas 20 dicas & truques de programação mais populares |
Firebird - Como usar o tipo de dados BLOB do Firebird para a gravação de imagens, vídeos e arquivos de música |
Você também poderá gostar das dicas e truques de programação abaixo |
Python - Python para iniciantes - Como inserir uma determinada quantidade de espaços à direita de uma string JavaScript - Como resolver uma equação do segundo grau em JavaScript - Como calcular Bhaskara em JavaScript VB.NET - Como adicionar horas à data e hora atual em VB.NET usando a função AddHours() da classe DateTime C# - Como converter um tipo string para um tipo decimal em C# usando o método Parse() da classe Decimal |
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 |