quinta-feira, 1 de maio de 2014

Vamos aprender neste tutorial como manipular o editor de registros do Windows.
Primeiramente precisamos saber quais são os diretórios de registros que o Windows possui.


No desenvolvimento com C# utilizando o .Net Framework, temos a classe Microsoft.Win32, que trata de funções sobre gerenciamento de hardware e alguns recursos do próprio sistema operacional. Uma dessas "funções" é a manipulação do Regedit.

Para iniciarmos, precisamos importar essa classe.
using Microsoft.Win32;

Agora temos disponíveis a classe RegistryKey que representa uma chave de registro, como o próprio nome diz. Então vamos começar.

Vamos declarar uma variável e associarmos à ela algum diretório de registro que queremos manipular.
Em C#, identificamos cada pasta pelo seguinte código:

ClassesRoot = HKEY_CLASSES_ROOT
CurrentUser  = HKEY_CURRENT_USER
LocalMachine = HKEY_LOCAL_MACHINE
Users = HKEY_USERS
CurrentConfig = HKEY_CURRENT_CONFIG

Então, nosso código fica assim:
RegistryKey registro;
registro = Registry.CurrentUser;

Agora podemos definir o que queremos fazer dentro desse registro. Para inserirmos um valor por exemplo, usamos SetValue(registro, valor_registro)
registro.SetValue("MeuRegistro", "Programador Online");

Dessa forma criamos um registro na raiz do diretório HKEY_CURRENT_USER.


Para criarmos uma pasta dentro desse diretório, usamos o método CreateSubKey logo quando definimos a nossa chave de registro.

RegistryKey registro;
registro = Registry.CurrentUser.CreateSubKey("MinhaSubKey");

Agora podemos adicionar um novo registro.
registro.SetValue("MeuRegistro", "Programador Online");


Para lermos um registro, usamos a mesma lógica só que ao invés de CreateSubKey usaremos OpenSubKey.
// declaro o registro
RegistryKey registro;
// defino a pasta CurrentUser e a subKey que desejo ler
registro = Registry.CurrentUser.OpenSubKey("MinhaSubKey");
// defino qual registro quero retornar o valor
string valor = registro.GetValue("MeuRegistro").ToString();
// escreve o valor
Console.WriteLine(valor);

Console.ReadKey();

Assim, obtemos o valor que o registro HKEY_CURRENT_USER\MinhaSubKey\MeuRegistro contém.


A classe Win32 possui muitas funcionalidades interessantes, inclusive sobre o registro. Vale a pena explorar os métodos que essa classe possui.

Abraços e até a próxima.

Neste tutorial vamos aprender como converter uma imagem para diversos formatos utilizando a classe System.Drawing.Imaging.ImageFormat que temos no .NET Framework. Ela nos permite salvar uma imagem para um determinado formato. É isso que vamos fazer a partir de um pictureBox.

Primeiramente vamos criar nosso form.


- btnAbrir: Botão com Text = "Abrir Imagem". Abrirá a imagem a ser convertida.
- btnConverter: Botão com Text = "Converter". Ação principal que salva a imagem em um novo formato.
- cboFormato: ComboBox que terá os possíveis formatos para conversão
- picImagem: PictureBox que guardará a imagem a ser convertida.

Vamos programar as ações necessárias para abrirmos a imagem. Evento Click do btnAbrir

// Instancia um novo OpenFileDialog
OpenFileDialog dlgAbrir = new OpenFileDialog();
// Definimos o filtro do Dialog
dlgAbrir.Filter = "Arquivos de Imagem | *.png; *.bmp; *.jpg; *.gif";
// Executa o OpenFileDialog
dlgAbrir.ShowDialog();
 // Pegamos o nome do arquivo selecionado
string nomeArquivo = dlgAbrir.FileName;

// carrega o pictureBox se um arquivo válido foi selecionado
if (nomeArquivo != string.Empty)
{
   picImagem.ImageLocation = nomeArquivo;
   // Ajustamos a imagem ao pictureBox
   picImagem.SizeMode = PictureBoxSizeMode.StretchImage;
}

Note que quando criamos o filtro, usei apenas quatro extensões de arquivos, fique por sua conta explorar a classe e ver quais tipos de arquivos são suportados.

Vamos colocar as extensões dos arquivos suportados dentro do ComboBox. Podemos fazer isso através da caixa de Propriedades, mas por fins educativos, vamos fazer isso através de código!
Dê um duplo clique no formulário e será aberto o evento Load. Adicione o código que preenche o comboBox.

// Adicionamos os itens
cboFormato.Items.Add(".bmp");
cboFormato.Items.Add(".gif");
cboFormato.Items.Add(".jpg");
cboFormato.Items.Add(".png");

// Mudamos o estilo para que o usuário não possa digitar nada
cboFormato.DropDownStyle = ComboBoxStyle.DropDownList;

O DropDownStyle também pode ser alterado visualmente.

Agora o que nos resta é o código principal, que pede ao usuário para selecionar uma pasta e salva a imagem em um novo formato.
Não se esqueça de importar a classe System.Drawing.Imaging.ImageFormat no topo da classe que está programando.

using System.Drawing.Imaging.ImageFormat;

Código do btnConverter:
// Instancia um novo FolderBrowserDialog
FolderBrowserDialog dlgPasta = new FolderBrowserDialog();
// exibe o dialog
dlgPasta.ShowDialog();
 // pega o diretorio selecionado
string diretorio = dlgPasta.SelectedPath;

// verifica se a pasta escolhida é válida
if (diretorio != "") {
// salva a imagem de acordo com o que foi selecionado na comboBox
   if (cboFormato.Text == ".bmp")
       picImagem.Image.Save(diretorio + "\\imagem.bmp", ImageFormat.Bmp);
   else if (cboFormato.Text == ".gif")
       picImagem.Image.Save(diretorio + "\\imagem.gif", ImageFormat.Gif);
   else if (cboFormato.Text == ".jpg")
       picImagem.Image.Save(diretorio + "\\imagem.jpg", ImageFormat.Jpeg);
   else if (cboFormato.Text == ".png")
       picImagem.Image.Save(diretorio + "\\imagem.png", ImageFormat.Png);

// mostra mensagem de sucesso
MessageBox.Show("Imagem convertida com sucesso!");
}

Você pode tratar Exceções  com Try Catch e aprendendo neste artigo  http://programadoronline.blogspot.com.br/2012/08/tratando-erros-com-try-catch-em-c.html

O resultado final é esse:

Imagem carregada:


Seleção de alguns dos formatos disponíveis.


Procurar a pasta para salvar a imagem:


Imagem convertida com sucesso!



É isso aí. Abraços e até a próxima.

sábado, 22 de junho de 2013

Lançado o Delphi XE4 e Rad Studio XE4 com suporte para desenvolvimento de aplicações para iPhone e iPad.




Este tutorial consiste em exemplificar como é feito a passagem de dados para um arquivo JSP.
Neste exemplo teremos apenas três campos: Nome, Endereço e Telefone.

Primeiramente vamos criar o nosso formulário HTML que o usuário digitará os dados para serem recebidos e mostrados em nosso arquivo JSP.
Antes de começar, preste atenção no action do formulário, assim como os names de cada input (caixa de texto) inserido no HTML.

sábado, 22 de dezembro de 2012




Yii é um framework PHP (PHP5), free e open-source, que promete ajudar no desenvolvimento de aplicações complexas.
A sigle Yii vem do inglês "Yes, is it" (Sim, isto é), que vem da série de respostas para as perguntas:

"Is it fast? ... Is it secure? ... Is it professional? ... Is it right for my next project? ... Yes, it is!"
É rápido? ... É seguro? ... É profissional? ... É certo para meu próximo projeto? ... Sim, isto é!

Você pode fazer o download do Yii Framework em http://www.yiiframework.com/download/
E pode ver as características em http://www.yiiframework.com/features/

Estamos de volta! (:
Nesse artigo, estarei mostrando como é possível recuperar registros do banco de dados com PHP. Essa tarefa consiste em pegar os registros já gravados no banco e exibi-los novamente.
Suponhamos uma tabela de produtos com três campos: "Id, Descrição, Preço e Quantidade". Vamos recuperar o registro que possui o Id de número 3.

sexta-feira, 16 de novembro de 2012

Para quem não sabe, Unity é um ambiente de desenvolvimento de jogos. É usado por muitas empresas pelo seu custo/benefício.
Na nova versão do Unity, ela apresenta o suporte de renderização do DirectX 11, assim como novos recursos de animação, sistemas de partículas e efeitos de imagem.
Veja alguns dos jogos desenvolvidos usando o Unity.


Para mais informações da Engine, visite o site oficial em http://unity3d.com/unity/.

Continuação da primeira parte de Aprendendo Assembly. Caso você não tenha lido a primeira parte, leia aqui.
Na parte anterior, abordamos o operador aritmético de soma, assim como um breve exemplo do operador de subtração.
O operador de subtração, assim como todos os outros operadores, são feitos e tratados da mesma maneira.

sábado, 27 de outubro de 2012




Este tutorial tem o intuito de configurar as ferramentas e plug-ins necessários para o desenvolvimento Android com o Eclipse.
Para o desenvolvimento Android, usaremos um plug-in chamado ADT for Eclipse.

- Primeiramente faça o download do Android SDK em http://developer.android.com/sdk/index.html

sexta-feira, 26 de outubro de 2012

A unit Graph é uma unidade de recursos presente na maioria dos compiladores Pascal (Free Pascal...). Neste post estarei mostrando os seus recursos e como usá-los.
Primeiramente, antes de mais nada, é necessário declarar a uses Graph.

uses
   Graph;

Aqui vou mostrar os principais recursos dessa unit, e um dos mais interessantes e mais usados quando ela é importada, é a manipulação de cores da aplicação.


quinta-feira, 25 de outubro de 2012


Quando falamos de Assembly (Assembler é o "compilador"), o que te vem a cabeça?
Normalmente a primeira impressão que temos, é de que a linguagem é algo incompreensível e difícil de se entender, realmente! Mas esta série de tutoriais tem o intuito de "desmistificar" a linguagem, dando uma pequena noção sobre ela.

Pré-requisitos

- Saber programar em alto nível. (C++, Java....)
- Ter um compilador C++ (Neste tutorial usarei o C++ Builder, serve para o Dev-C++, Visual C++....)

Porque um compilador C++?

Pra começarmos esta série de tutoriais, é necessário aprender a lógica de como os bits trabalham, então neste caso, usaremos o C++ como a linguagem "mãe", e o Assembly incorporado no código C++. Isso, para termos uma "noção" antes de escrever uma aplicação em Assembly do zero.

domingo, 21 de outubro de 2012









Já está disponível o download do Visual Studio 2012 Express Edition, contendo novos recursos e possibilitando o desenvolvimento de aplicativos na interface Metro para Windows 8.
Você pode conferir todas as novidades em: http://www.microsoft.com/visualstudio/ptb/whats-new

E pode fazer o download da versão Express em http://www.microsoft.com/visualstudio/ptb/downloads


Neste post estarei mostrando como é possível manipular datas no banco de dados, utilizando apenas algumas das funções disponíveis.
Primeiramente, vamos criar um novo banco de dados.

CREATE DATABASE teste_data;

Vamos nos conectar ao banco.

USE teste_data;

E criar uma tabela para que podemos com os campos necessários.

CREATE TABLE clientes (
   id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
   nome VARCHAR(30),
   endereco VARCHAR(30),
   telefone VARCHAR(15),
   data_nasc DATE);

Para podemos manipular esta tabela, vamos inserir alguns registros.

Vale lembrar que no MySQL as datas são representadas como: YYYY-MM-DD.

segunda-feira, 15 de outubro de 2012



Nesta nova versão do Delphi, temos a possibilidade de desenvolver aplicativos com a interface Metro utilizando o VCL Metropolis UI Application.

Logo ao criar uma nova aplicação, temos alguns templates disponíveis como:

Blank Metropolis UI Application -> Cria uma nova aplicação em branco
Grid Metropolis UI Application ->
Split Pane Metropolis UI Application -> Template com barra de subitens laterais.


terça-feira, 4 de setembro de 2012


Está disponível o Trial do Rad Studio XE3 com:

-Delphi
-C++ Builder
-Prism
-HTML5 Builder
-Interbase

Você pode fazer o download em: http://www.embarcadero.com/products/rad-studio/downloads
O Regedit é um "banco de dados" onde são armazenadas configurações de programas instalados, diretórios,  arquivos e configurações do Windows.
Neste post demonstrarei como gravar um registro simples no Regedit através do Delphi.

A primeira coisa a se fazer, é adicionar a uses Registry.



Estruturas de repetição (loop ou laços) são essenciais e resolvem diversos problemas e situações em que necessitamos repetir alguma estrutura ou um bloco de código.
Dentre essas estruturas, temos o laço For, For-DownTo, For-in, While e o Repeat-until.

-For
É nós quem determinamos o número de vezes que a repetição acontecerá. Sua estrutura é a seguinte:

for #contador# := #valorInicial# to #valorFinal# do
    #faça_alguma_coisa#

O contador é um número inteiro, uma variável que será usada para proceder com a próxima contagem do loop.
Por exemlplo:

domingo, 2 de setembro de 2012

Está disponível a página do Preview do Rad Studio XE3.
Entre as novidades está o desenvolvimento para aplicações Metro do Windows 8, uma nova versão do FireMonkey possibilitando o desenvolvimento para Windows 8 e Mac OS X Mountain Lion, e o HTML5 Builder.

Veja a página original em http://www.embarcadero.com/rad-xe3-preview


E ai galera blz?

Hoje vou mostrar um tutorial muito legal, uma dica bem interessante para estudar.
Os procedimentos são bem simples e vou mostrar tudo o que vamos utilizar, vamos lá!

Funções do nosso editor:

-Sintaxe Pascal
-Abrir e Salvar arquivos .pas
-Compilar

Para compilar vamos usar o próprio compilador do Delphi. O DCC32.

Trabalhar com datas e horas são fundamentais para qualquer aplicação comercial, para controlar a data e a hora que o funcionário entra e sai ou quando uma venda foi efetuada...
Existem diversas funções e procedimentos capazes de manipular datas e horas, e hoje vou mostrar algumas das rotinas mais usadas e como usa-las.

-Função Date

A função Date mostra a data no formato dd/mm/aaaa, vamos a um exemplo.

ShowMessage('Hoje é ' + DateToStr(Date));

Perceba que, usamos DateToStr para converter Date para String, pois ShowMessage aceita apenas String e Date é do tipo DateTime.