![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como retornar o índice da coluna da célula atual em um TDBGrid do DelphiQuantidade de visualizações: 10308 vezes |
Em algumas situações precisamos obter o índice da coluna da célula atual, ou seja, a célula que detém o foco no momento em um TDBGrid. Isso pode ser feito por meio da propriedade Col da classe TCustomGrid (e publicada na classe TStringGrid). Como esta propriedade não está publicada na classe TDBGrid (Delphi 2009), o que fazemos é um casting para a classe TStringGrid. Veja um trecho de código no qual usamos o evento Click de um botão para informar o índice da coluna da célula atual: procedure TForm3.Button3Click(Sender: TObject); var indice: Integer; begin // vamos obter o índice da coluna da célula atual indice := TStringGrid(DBGrid1).Col; ShowMessage('O índice da coluna da célula atual é: ' + IntToStr(indice)); end; Execute o código e clique no botão. Você verá uma mensagem parecida com: "O índice da coluna da célula atual é: 3". Lembre-se de que o índice da coluna fixa do DBGrid é 0. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Pacote java.lang ::: String |
Java para iniciantes - Como verificar se duas strings são iguais ou diferentes usando os métodos equals() e equalsIgnoreCase() da classe StringQuantidade de visualizações: 4484 vezes |
Podemos verificar se duas strings são iguais ou diferentes em Java usando os métodos equals() e equalsIgnoreCase(). O método equals() recebe um objeto do tipo String e o compara com o String atual. Veja sua assinatura:public boolean equals(Object anObject) O resultado será true se as duas strings forem iguais e false em caso contrário. Note que equals() diferencia letras maiúsculas e letras minúsculas. Veja um exemplo: package estudos; public class Estudos{ public static void main(String[] args) { String palavra1 = "Java"; String palavra2 = "java"; // vamos verificar se as duas strings são iguais if(palavra1.equals(palavra2)){ System.out.println("As duas strings são iguais"); } else{ System.out.println("As duas strings são diferentes"); } } } Ao executar este código nós teremos o seguinte resultado: As duas strings são diferentes O método equalsIgnoreCase(), por sua vez, não diferencia letras maiúsculas de letras minúsculas. Veja o exemplo anterior usando o método equalsIgnoreCase(): package estudos; public class Estudos{ public static void main(String[] args) { String palavra1 = "Java"; String palavra2 = "java"; // vamos verificar se as duas strings são iguais if(palavra1.equalsIgnoreCase(palavra2)){ System.out.println("As duas strings são iguais"); } else{ System.out.println("As duas strings são diferentes"); } } } Ao executarmos este código o resultado será: As duas strings são iguais |
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Delphi - Como efetuar cálculos de porcentagem em DelphiQuantidade de visualizações: 30985 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Delphi. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Delphi: // Algoritmo que calcula porcentagem em Delphi program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // variáveis usadas na resolução do problema valor, percentual, valor_final: double; begin valor := 178.00; // valor original percentual := 15.0 / 100.0; // 15% valor_final := valor + (percentual * valor); // mostra o resultado WriteLn('O valor final do produto é: ' + FloatToStr(valor_final)); // O resultado será 204,70 WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Delphi: // Algoritmo que calcula porcentagem em Delphi program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // variáveis usadas na resolução do problema valor, percentual, valor_final: double; begin valor := 250.00; // valor original percentual := 8.0 / 100.0; // 8% valor_final := valor - (percentual * valor); // mostra o resultado WriteLn('O valor final do produto é: ' + FloatToStr(valor_final)); // O resultado será 230,00 WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Delphi: // Algoritmo que calcula porcentagem em Delphi program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // variáveis usadas na resolução do problema perguntas, acertos: double; begin perguntas := 90.0; acertos := 72.0; // mostra a porcentagem de acertos WriteLn('Porcentagem de acertos: ' + FloatToStr((acertos / perguntas) * 100) + '%'); // mostra a porcentagem de erros WriteLn('Porcentagem de erros: ' + FloatToStr(((perguntas - acertos) / perguntas) * 100) + '%'); // Os resultados serão 80% e 20% WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Delphi: // Algoritmo que calcula porcentagem em Delphi program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // variáveis usadas na resolução do problema valor_anterior, novo_valor, porcentagem_lucro: double; begin valor_anterior := 300.0; // valor anterior novo_valor := 340.0; // valor novo // calcula a porcentagem de lucro // efetua o cálculo porcentagem_lucro := ((novo_valor * 100) / valor_anterior) - 100; WriteLn('A porcentagem de lucro foi de: ' + FloatToStr(porcentagem_lucro) + '%'); // O resultado será 13,33 WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Delphi: // Algoritmo que calcula porcentagem em Delphi program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // variáveis usadas na resolução do problema valor, percentual, comissao: double; begin valor := 70.0; // valor do produto percentual := 5.0 / 100.0; // 5% // calcula a comissão comissao := percentual * valor; // mostra o resultado WriteLn('O valor repassado ao vendedor é: ' + FloatToStr(comissao)); // O resultado será 3,5 WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como obter a quantidade de elementos em um vetor (array ou matriz de uma dimensão) em PHPQuantidade de visualizações: 8123 vezes |
Em várias situações de programação em PHP nós precisamos contar, ou seja, obter a quantidade de elementos em um vetor, também chamado de array ou matriz unidimensional (de uma dimensão). Para isso nós podemos usar as funções count() ou sizeof(). Veja um exemplo completo de seu uso: <html> <head> <title>Estudos PHP</title> </head> <body> <?php $pessoas[0] = "Osmar J. Silva"; $pessoas[1] = "Salvador M. Andrade"; $pessoas[2] = "Dyego Fernandes de Sousa"; echo "O vetor possui " . sizeof($pessoas) . " elementos."; ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: O vetor possui 3 elementos. |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como excluir linhas de uma JTable em tempo de execução usando o método removeRow() da classe DefaultTableModelQuantidade de visualizações: 16024 vezes |
Nesta dica mostrarei como é possível excluir uma determinada linha de uma JTable usando o método removeRow() da classe DefaultTableModel. Veja que mostro também como inserir novas linhas na JTable usando o método insertRow(). Veja o resultado obtido na imagem abaixo: ![]() E agora o código Java Swing completo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); final DefaultTableModel modelo = new DefaultTableModel(); // constrói a tabela JTable tabela = new JTable(modelo); // Cria duas colunas modelo.addColumn("Nome"); modelo.addColumn("Idade"); JButton btn = new JButton("Inserir Linhas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String nome = JOptionPane.showInputDialog(null, "Informe o nome:"); String idade = JOptionPane.showInputDialog(null, "Informe a idade:"); int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da nova linha:")); // testa se a posição é válida if(pos > (modelo.getRowCount() - 1)) pos = 0; // Insere uma linha na posição especificada modelo.insertRow(pos, new Object[]{nome, idade}); } } ); JButton btn2 = new JButton("Excluir Linhas"); btn2.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da linha a ser excluída:")); // testa se a posição é válida if(pos < modelo.getRowCount()) // Exclui a linha na posição especificada modelo.removeRow(pos); } } ); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); c.add(btn2); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
PHP ::: Dicas & Truques ::: Data e Hora |
PHP para iniciantes - Como obter a diferença em horas entre duas datas (e suas respectivas horas)Quantidade de visualizações: 111 vezes |
Nesta dica eu mostro como podemos usar as funções mktime() e gmdate() da linguagem PHP para obter e retornar a diferença em horas entre duas datas, e suas horas, é claro. Note que vamos fornecer duas datas diferentes (e suas horas) e vamos obter a diferença entre elas em segundos. Veja o código completo: <head> <title>Estudando PHP</title> </head> <body> <?php // data e hora inicial = 23/11/2006 - 13:23:15 $data_inicial = mktime(13, 23, 15, 11, 23, 2006); // data e hora final = 23/11/2006 - 10:23:15 $data_final = mktime(22, 23, 15, 11, 23, 2006); $segundos = $data_final - $data_inicial; echo "A diferença em horas entre as duas datas é: " . gmdate("H:i:s", $segundos); ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: A diferença em horas entre as duas datas é: 09:00:00 |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do DelphiQuantidade de visualizações: 19625 vezes |
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:System.TObject Classes.TPersistent Classes.TComponent Controls.TControl Controls.TWinControl Controls.TCustomControl Grids.TCustomGrid Grids.TCustomDrawGrid Grids.TDrawGrid Grids.TStringGrid Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface. O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário. Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid. Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid: procedure TForm1.Button1Click(Sender: TObject); begin // vamos definir o conteúdo da célula na segunda linha // da primeira coluna da grid StringGrid1.Cells[0, 1] := 'Osmar J. Silva'; end; Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário. Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid. |
Java ::: Fundamentos da Linguagem ::: Passos Iniciais |
Aprenda a ler entrada do usuário usando a classe Scanner do Java - Como ler a entrada do usuário em Java usando um objeto da classe ScannerQuantidade de visualizações: 50449 vezes |
Podemos ler entrada do usuário em aplicações Java console usando a classe Scanner do JDK 5.0 e recentes. Esta classe está no pacote java.util. Para ler strings use o método nextLine(), para ler inteiros use nextInt() e assim por diante. Não é um boa idéia misturar nextLine() com nextInt(), nextFloat(), etc. Em caso de comportamento estranho, é melhor ler tudo usando nextLine() e fazer conversões usando Integer.parseInt(), por exemplo. Veja um código completo demonstrando o uso dessa classe: package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Qual é o seu nome? "); String nome = in.nextLine(); System.out.print("Qual sua idade? "); int idade = in.nextInt(); System.out.println("Olá, " + nome + ". Você tem " + idade + " anos."); } } Ao executar este código nós teremos o seguinte resultado: Qual é o seu nome? Osmar J. Silva Qual sua idade? 39 Olá, Osmar J. Silva. Você tem 39 anos. |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como centralizar os títulos das colunas (ou o conteúdo de qualquer célula) de um TStringGrid do DelphiQuantidade de visualizações: 13818 vezes |
Em algumas situações nós precisamos centralizar os títulos das colunas de um TStringGrid. Em geral os títulos das colunas são exibidos nas células da primeira linha fixa do TStringGrid. Nesta dica eu mostrarei a forma mais comum de alcançar este efeito. Note que a técnica pode ser usada para centraliar o conteúdo de qualquer célula da grid: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var conteudo: String; alinhamento_anterior: Word; begin // vamos centralizar os títulos das colunas, ou seja, o conteúdo // das células na primeira linha if ARow = 0 then begin // vamos obter o conteúdo da célula conteudo := (Sender as TStringGrid).Cells[ACol, ARow]; // vamos obter o alinhamento atual alinhamento_anterior := SetTextAlign((Sender as TStringGrid).Canvas.Handle, TA_CENTER); // vamos colocar o conteúdo de volta na célula (Sender as TStringGrid).Canvas.TextRect(Rect, Rect.Left + (Rect.Right - Rect.Left) div 2, Rect.Top + 5, conteudo); // vamos voltar o alinhamento anterior para as demais células SetTextAlign((Sender as TStringGrid).Canvas.Handle, alinhamento_anterior); end; end; Aqui nós temos duas chamadas à função SetTextAlign() da API do Windows. Na primeira vez nós obtemos o alinhamento atual e definimos o novo alinhamento como TA_CENTER. Na segunda chamada nós voltamos o alinhamento anterior. Se não fizermos este procedimento, todas as demais células da grid terão seus conteúdos também alinhados ao centro. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como usar a propriedade Alignment da classe TColumn para alinhar o conteúdo das células do TDBGrid do DelphiQuantidade de visualizações: 12078 vezes |
O conteúdo de cada coluna, ou seja, todas as células de uma determinada coluna, pode ser alinhado por meio da propriedade Alignment da classe TColumn. Esta propriedade aceita um de três valores (pertencentes à enumeração Classes.TAlignment): taLeftJustify - o texto é alinhado à esquerda; taCenter - o texto é alinhado ao centro; taRightJustify - o texto é alinhado à direita. O valor para esta propriedade pode ser definido em tempo de design ou execução. Para definir o alinhamento do conteúdo de uma coluna em tempo de design, basta clicar com o botão direito no DBGrid e escolher a opção Columns Editor. Em seguida clique na coluna desejada e vá em sua propriedade Alignment no Object Inspector. Em tempo de execução podemos definir o alinhamento para um determinada coluna do DBGrid usando o seguinte trecho de código: procedure TForm3.Button3Click(Sender: TObject); begin // vamos alinhar ao centro o conteúdo das células da // primeira coluna DBGrid1.Columns[0].Alignment := TAlignment.taCenter; end; Veja que neste trecho de código eu usei TAlignment.taCenter. Esta é uma boa forma de indicar no código de onde o valor taCenter está vindo. No entanto, o Delphi permite que se omita o nome da enumeração TAlignment. Esta dica foi escrita e testada no Delphi 2009. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto String |
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 |