Você está aqui: C++ Builder ::: VCL - Visual Component Library ::: TEdit |
|
Como definir o conteúdo de um TEdit em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_SETTEXT usando C++ BuilderQuantidade de visualizações: 5630 vezes |
|
Embora o C++ Builder já nos forneça as ferramentas necessárias para definir o conteúdo de 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_SETTEXT. 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 de um HWND (Handle) para a caixa de texto. Feito isso só precisamos enviar a mensagem WM_SETTEXT juntamente com o conteúdo a ser exibido no controle. Veja: void __fastcall TForm3::Button2Click(TObject *Sender) { // conteúdo a ser definido para a caixa de texto char texto[] = "Veja isso"; // vamos definir o conteúdo usando a função SendMessage // fornecendo a mensagem WM_SETTEXT SendMessage(Edit1->Handle, WM_SETTEXT, 0, (LPARAM)texto); } Veja que o parâmetro wParam da função SendMessage não é usado quando a mensagem é WM_SETTEXT. |
|
Link para compartilhar na Internet ou com seus amigos: | |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em Java usando o método sin() da classe MathQuantidade de visualizações: 2683 vezes |
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem: Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem Java. Esta método, que faz parte da classe Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ System.out.println("Seno de 0 = " + Math.sin(0)); System.out.println("Seno de 1 = " + Math.sin(1)); System.out.println("Seno de 2 = " + Math.sin(2)); } } Ao executar este código Java nós teremos o seguinte resultado: Seno de 0 = 0.0 Seno de 1 = 0.8414709848078965 Seno de 2 = 0.9092974268256817 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como usar o componente TClientDataSet do Delphi em suas aplicações de banco de dadosQuantidade de visualizações: 15565 vezes |
Um objeto da classe TClientDataSet implementa um conjunto de dados independente de banco de dados. Este controle representa um conjunto de dados em memória (in-memory). Antes de prosseguirmos, veja a posição desta classe na hierarquia de classes do Delphi: System.TObject Classes.TPersistent Classes.TComponent DB.TDataSet DBClient.TCustomClientDataSet DBClient.TClientDataSet Um controle TClientDataSet pode ser usado das seguintes formas: a) Um conjunto de dados baseado em arquivo, único e totalmente funcional direcionado a aplicações compostas de apenas uma camada. Quando usado desta forma, o client dataset representa os dados armazenados em um arquivo dedicado na máquina do usuário. b) Um buffer em memória local dos registros de um outro conjunto de dados. O outro conjunto de dados (a fonte dos dados) pode residir no mesmo formulário ou data module que o client dataset (por exemplo, quando o client dataset fornece navegação e edição para os dados de um conjunto de dados unidirecional). O conjunto de dados fonte pode também residir em um sistema separado quando o client dataset apoia a parte cliente de uma aplicação de bancos de dados de múltiplas camadas. A forma mais comum de se usar um controle TClientDataSet é acessando a aba Data Acccess da Tool Palette (Paleta de Ferramentas) e arrastando-o para o seu formulário. Em seguida ajustamos algumas de suas propriedades em tempo de design e pronto. Veja o passo-a-passo para configurar um TClientDataSet para representar uma tabela no banco de dados MySQL (outras dicas minhas mostram como efetuar a conexão com outros bancos de dados): 1) Certifique-se de que o banco de dados MySQL está devidamente configurado e funcionando. Inicie-o, anote o nome de usuário e senha e vamos começar. 2) Vá até a aba de componentes dbExpress e arraste um componente TSQLConnection para o formulário. Este é o componente responsável pela conexão com o banco de dados. Selecione o componente no formulário de forma a acessar suas propriedades no Object Inspector. Em seguida siga atentamente as observações a seguir: a) Vá na propriedade ConnectioName e selecione MySQLConnection. Automaticamente a propriedade Driver é definida como MySQL. A propriedade LibrayName será definida como dbxmys.dll. O mesmo acontece com a propriedade VendorLib, que é definida como libmysql.dll. dbxmys.dll é fornecida com o Delphi enquanto libmysql.dll vem com a instalação do MySQL e deverá estar em C:\Windows\System para que sua aplicação seja executada com sucesso. b) O simples fato de definirmos o valor MySQL para a propriedade ConnectionName faz com que os parâmetros de conexão sejam criados com os valores padrões e guardados na propriedade Params. O próximo passo é alterar estes valores de forma a refletir a realidade do banco de dados que vamos usar. Vá em Params e acione o editor Value List Editor. Em HostName você deverá informar o nome ou IP do servidor MySQL. Se estiver rodando localmente use apenas "localhost". Em Database informe o nome da base de dados, por exemplo, "estoque". Em User_Name informe o usuário do banco de dados. Geralmente é "root". Em Password informe a senha do banco de dados. Pressione OK. c) Vá na propriedade LoginPrompt e altere seu valor para False. Isso evita que a tela de login seja exibida quando tentarmos efetuar a conexão. Agora vá na propriedade Connected e altere seu valor para True. Se correr tudo bem você já estará conectado ao banco de dados MySQL. 3) Agora coloque um componente TSQLDataSet no formulário e defina sua propriedade SQLConnection para o componente TSQLConnection que representa a conexão com o banco de dados. Em seguida defina o valor "ctTable" para a propriedade CommandType. Na propriedade CommandText você deverá informar o nome da tabela que será representada por este TSQLDataSet. Finalmente ajuste a propriedade Active para True. 4) O próximo passo é colocar no formulário um componente TDataSetProvider (na aba Data Access). Este componente é responsável por fazer a conexão com o conjunto de dados (dataset), extrair os dados do SQLDataSet e gerar os comandos de atualização SQL adequados. Assim, informe o valor "SQLDataSet1" para a sua propriedade DataSet. 5) Finalmente chegamos ao componente TClientDataSet. Vá na aba Data Acccess e arraste um TClientDataSet para o formulário. Em seguida informe o valor "DataSetProvider1" para sua propriedade ProviderName. Ajuste sua propriedade Active para True. 6) Hora de exibir e manipular os dados. Vá na aba Data Access e arraste um controle TDataSource para o formulário. Aponte sua propriedade DataSet para "ClientDataSet1". Agora vá na aba Data Controls e arraste um TDBGrid para o formulário. Ajuste sua propriedade DataSource para "DataSource1". Se tudo correu bem, você já verá os registros da tabela serem exibidos no DBGrid. 7) Hora de executar a aplicação. Pressione F9 e vamos ao resultado. Experimente navegar e editar os registros no DBGrid. A aplicação permitirá que você faça isso. No entanto, ao fechar a aplicação e abrí-la novamente você perceberá que as alterações não foram refletidas no banco de dados. Para que isso aconteça, coloque o código abaixo no evento Click de um botão: procedure TForm3.Button1Click(Sender: TObject); begin if (ClientDataSet1.ChangeCount > 0) then ClientDataSet1.ApplyUpdates(-1); end; Pronto. Execute a aplicação novamente e faça modificações nos dados exibidos no DBGrid (é preciso sair da linha de edição para que os dados sejam atualizados no DBGrid). Clique no botão para atualizar os dados na tabela do banco de dados. Feche a aplicação a abra-a novamente. Note que agora os dados foram atualizados com sucesso. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Dicas & Truques ::: Expressões Regulares |
Como remover espaços em excesso de uma string usando expressões regulares em JavaQuantidade de visualizações: 12259 vezes |
Nesta dica mostrarei como é possível usar expressões regulares em Java para remover espaços em excesso de uma string, tanto no início, meio e fim. Note que vamos deixar apenas um espaço entre as palavras da frase. Veja o código completo para o exemplo: package arquivodecodigos; import java.util.regex.*; public class Estudos{ public static void main(String args[]){ String padrao = "\\s{2,}"; Pattern regPat = Pattern.compile(padrao); String frase = " Esta frase contém espaços "; Matcher matcher = regPat.matcher(frase); String res = matcher.replaceAll(" ").trim(); System.out.println("Com espaços: " + frase); System.out.println("Sem espçaos: " + res); } } Ao executar este código nós teremos o seguinte resultado: Com espaços: Esta frase contém espaços Sem espaços: Esta frase contém espaços |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Manipulação de arquivos em Java - Como obter o tamanho de um arquivo em bytes usando o método length() da classe File do JavaQuantidade de visualizações: 12595 vezes |
A classe File, do pacote java.io da linguagem Java, nos fornece o método length(), que retorna o tamanho de um arquivo em byes. O retorno é do tipo long. Veja como podemos usá-lo no código abaixo: package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ File arquivo = new File("c:\\estudos_java\\lago.jpg"); // Obtém o tamanho do arquivo em bytes long tam = arquivo.length(); System.out.println("Tamanho do arquivo em bytes: " + tam); } } Ao executar este código nós teremos o seguinte resultado: Tamanho do arquivo em bytes: 143060 |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial de Java - Como usar a instrução condicional if e if...else do JavaQuantidade de visualizações: 53598 vezes |
Instruções if e if...else permitem executar trechos de códigos baseado em condições. Veja um exemplo:public class Estudos{ public static void main(String args[]){ int valor = 5; if(valor > 3) System.out.println("Valor maior que 3"); } } Neste programa, a instrução System.out.println("Valor maior que 3"); será executada somente se o teste (valor > 3) for verdadeiro. Observe que a expressão de teste deverá sempre ser do tipo boolean (true ou false). Neste exemplo temos apenas uma instrução a ser executada. Isso dispensa o uso das chaves ao redor do bloco de códigos. Se o bloco contiver mais de uma instrução, as chaves são necessárias. Veja: public class Estudos{ public static void main(String args[]){ int valor = 5; if(valor > 3){ System.out.println("Valor maior que 3"); System.out.println("O valor é: " + valor); } } } A instrução if...else (se...senão) é usada quando queremos fornecer um caminho alternativo ao código. Veja: public class Estudos{ public static void main(String args[]){ int valor = 1; if(valor > 3) System.out.println("Valor maior que 3"); else System.out.println("Valor menor que 3"); } } Você pode ainda usar if...else if...else (se...senão se...senão). Veja: public class Estudos{ public static void main(String args[]){ int valor = 3; if(valor > 3) System.out.println("Valor maior que 3"); else if(valor < 3) System.out.println("Valor menor que 3"); else System.out.println("Valor é igual a 3"); } } |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |