Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
C++ Builder ::: VCL - Visual Component Library ::: TEdit |
Como obter o tamanho do texto de um TEdit usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTH usando C++ BuilderQuantidade de visualizações: 6332 vezes |
|
Embora o C++ Builder já nos forneça as ferramentas necessárias para obter a quantidade de caracteres contidos em um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXTLENGTH. A função SendMessage() da API do Windows possui a seguinte assinatura: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e a mensagem que será enviada ao controle. Os valores para os parâmetros wParam e lParam devem ser 0 (zero). Veja:
void __fastcall TForm3::Button2Click(TObject *Sender)
{
// vamos obter o tamanho do texto de um TEdit usando a função
// SendMessage() e a mensagem WM_GETTEXTLENGTH
int tam = SendMessage(Edit1->Handle, WM_GETTEXTLENGTH, 0, 0);
// vamos mostrar o resultado
ShowMessage("O Edit contém " + IntToStr(tam) + " caracteres.");
}
Ao executar este exemplo você terá um mensagem com um texto parecido com: O Edit contém 10 caracteres. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como exibir os nomes de todas as superclasses de uma determinada classe usando introspecção em JavaQuantidade de visualizações: 8314 vezes |
|
Nesta dica veremos como tirar proveito dos métodos getClass(), getName() e getSuperclass() da classe Class da linguagem Java para exibirmos todas as super classes de um determinada classe, até chegarmos à super classe mais alta na hierarquia, ou seja, a classe Object. Note como usamos um objeto da classe Stack para criarmos uma estrutura de dados do tipo pilha que nos permite obter os nomes das super classes e depois exibir os mesmos na ordem inversa. Veja o código completo para o exemplo:
package arquivodecodigos;
import java.util.Stack;
import javax.swing.*;
public class Estudos{
// vamos precisar de uma pilha aqui
static Stack<String> pilha = new Stack();
public static void main(String args[]){
// Exibe todas as superclasses de JPanel
JPanel panel = new JPanel();
obterSuperclasses(panel);
// agora vamos exibir os resultados na ordem
// contrária que eles foram obtidos
int cont = 0;
while(pilha.size() > 0){
// insere espaços antes
String ident = "";
for(int i = 0; i < cont; i++){
ident = ident + " ";
}
System.out.println(ident + pilha.pop());
cont++;
}
System.exit(0);
}
static void obterSuperclasses(Object obj){
// vamos adicionar este valor na pilha
pilha.push(obj.getClass().getName());
Class cls = obj.getClass();
Class superclass = cls.getSuperclass();
while(superclass != null){
String className = superclass.getName();
// vamos adicionar este valor na pilha
pilha.push(className);
cls = superclass;
superclass = cls.getSuperclass();
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado:
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
|
Python ::: Fundamentos da Linguagem ::: Passos Iniciais |
Como obter a entrada do usuário usando o método raw_input() - Atualizado para Python 3.0Quantidade de visualizações: 8995 vezes |
Até pouco tempo era possível usar o método raw_input(), nativo do Python, para ler a entrada do usuário. O código abaixo, por exemplo, funcionava corretamente no Python 2.5:
# obtém o nome do usuário
nome = raw_input("Por favor, informe seu nome: ")
print "Ola, " + nome + "! Voce tambem gosta de Python?"
No Python 3.0 em diante, a execução deste código exibe o seguinte erro de tempo de execução:
Exception has occurred: NameError
name 'raw_input' is not defined
File "C:\estudos_python\estudos.py", line 4, in main
nome = raw_input("Por favor, informe seu nome: ")
File "C:\estudos_python\estudos.py", line 7, in <module>
main()
A correção para esta exceção, é usar somente a função input(). Veja:
def main():
nome = input("Por favor, informe seu nome: ")
print("Olá, " + nome + "! Voce tambem gosta de Python?")
if __name__== "__main__":
main()
A saída deste código será parecida com: Por favor, informe seu nome: Osmar Olá, Osmar! Voce tambem gosta de Python? |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para baixo uma de cada vez usando a API do WindowsQuantidade de visualizações: 7531 vezes |
|
Em algumas situações gostaríamos de rolar para baixo o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEDOWN 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 uma linha de cada vez. 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_LINEDOWN = 1;
// handle para a caixa de texto
IntPtr handle = textBox1.Handle;
IntPtr wParam = (IntPtr)SB_LINEDOWN;
IntPtr lParam = IntPtr.Zero;
// vamos fazer com que o TextBox role uma linha para baixo
SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam);
}
|
React Native ::: React Native - Componentes Visuais ::: Image |
Como exibir imagens e fotos em aplicações React Native usando o componente ImageQuantidade de visualizações: 1365 vezes |
|
O componente Image do React Native é usado quando queremos carregar imagens e exibí-las em nossas aplicações mobile. Este componente possibilita a exibição de diferentes tipos de imagens, incluindo imagens remotas (em um site, por exemplo), recursos estáticos, imagens em locais temporários e imagens a partir do armazenamento local, tais como imagens da câmera. Veja uma aplicação React Native completa que mostra como carregar uma imagem da internet e exibí-la em um componente Image. Note que a imagem a ser exibida é a logo do nosso site. Eis o código:
import React, {Component} from 'react';
import {Image, View} from 'react-native';
type Props = {};
export default class App extends Component<Props> {
render() {
return (
<View style={{padding: 10, flexDirection: 'column'}}>
<Image style={{width: 237, height: 49}} source={{uri:
'https://www.arquivodecodigos.com.br/logo2.jpg'}} />
</View>
);
}
}
É importante observar que, quando a imagem estiver sendo carregada de uma rede (internet, por exemplo) ou via propriedade data, temos que, manualmente, indicar as dimensões da imagem a ser exibida. |
Veja mais Dicas e truques de React Native |
Dicas e truques de outras linguagens |
|
Java - Como converter Metros Quadrados em Quilômetros Quadrados em Java - Java para Física e Engenharia |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





