terça-feira, 29 de dezembro de 2009

Torneio de Delphi Blaise Pascal Magazine

Saudações amigos, é com grande prazer e satisfação que lhes informo que fui um dos vencedores do torneio promovido pelo revista Blaise Pascal Magazine. Meu artigo sobre Porta Paralela ficou em Terceiro Lugar!
Como brasileiro e delphiano é uma honra ter alcançado esta colocação!
Para saber mais detalhes do Torneio confira o site da revista.


Artigo Wave API na ActiveDelphi 70

Saudações à todos, já faz algum tempo que não atualizo o blog com novidades, estava viajando e agora que retornei colocarei tudo em ordem. A primeira é que foi publicado na ActiveDelphi deste mês de Dezembro, um artigo meu sobre reprodução de arquivos wave usando a Wave API do Windows.



segunda-feira, 9 de novembro de 2009

Artigo sobre Visual Styles na ActiveDelphi 69

Foi publicado este mês na ActiveDelphi meu artigo sobre Visual Styles, este proporciona técnicas de desenho de componentes de acordo com o a versão do sistema operacional utilizada.



sábado, 7 de novembro de 2009

Como utilizar uma Webcam utilizando Delphi

Exemplo simples de utilização de Webcam no Delphi.


/ / Primeiro, declare as seguintes constantes 
const 

WM_CAP_DRIVER_CONNECT = WM_USER + 10;
WM_CAP_EDIT_COPY = WM_USER + 30;
WM_CAP_SET_PREVIEW = WM_USER + 50;
WM_CAP_SET_OVERLAY = WM_USER + 51; 
WM_CAP_SET_PREVIEWRATE = WM_USER + 52; 
implementation
{$R *. dfm }

/ / e declare a seguinte função 

function capCreateCaptureWindow(lpszWindowName: LPCSTR; function capCreateCaptureWindow (lpszWindowName: LPCSTR; 
dwStyle: DWORD;
x, y,
nWidth,
nHeight: integer;
hwndParent: HWND;
nID: integer): HWND; stdcall ;
external ' AVICAP32. DLL ' name ' capCreateCaptureWindowA '; 
procedure TForm1.Connect; 
var 
handle: THandle;
begin
  handle: = capCreateCaptureWindow ( 'Video', WS_CHILD + WS_VISIBLE, 0,
  0, 320, 240, Panel1. Handle , 1);  / / como você pode perceber, você precisará de um panel no seu form ;-) 

  SendMessage( handle , WM_CAP_DRIVER_CONNECT, 0, 0); 
  SendMessage( handle , WM_CAP_SET_PREVIEWRATE, 30, 0); 
  SendMessage( handle , WM_CAP_SET_OVERLAY, 1, 0); 
  SendMessage( handle , WM_CAP_SET_PREVIEW, 1, 0); 
end ;

Inscrições abertas para o Delphi Conference

Olá pessoal, já estão abertas as inscrições para o Delphi Conference aqui em São Paulo, lembrando que o evento é gratuito, mas atenção os que se inscreverem para o evento e não comparecerem pagarão uma multa de R$ 100,00. Maiores detalhes do evento tais como agenda e inscrição podem ser obtidos no link abaixo:

http://latam.embarcadero.com/br/delphiconference/

terça-feira, 3 de novembro de 2009

Delphi Conference Brasil

Amigos delphianos, a 1º Delphi Conference Brasil, o evento mais importante do ano para a comunidade Delphi e 100% técnico, será realizado no dia 24 de Novembro em São Paulo capital, em breve mais informações no blog de Andreano Lanusse.




O Timer 555 e seus encantos Parte 1: Descrição

O temporizador 555 foi introduzido no mercado em 1971 (já faz mais de 30 anos!) pela Empresa Signetics Corporation com o nome: SE555/NE555 e foi chamado de "The IC Time Machine" (o circuito integrado máquina do tempo), que nesta época era o único integrado do seu tipo disponível. Atualmente continua sendo muito tão utilizado quanto antes e possue múltiplas aplicações nos mais variados tipos de projetos.
Praticamente cada fabricante de circuitos integrados possue sua própria versão do “555”, de acordo com o fabricante ele recebe uma designação distinta, tal como TLC555, LMC555, uA555, NE555C, MC1455, NE555, LM555, etc. Mesmo sendo conhecido como "o 555" ou “NE555”.

Descrição

É constituído por uma combinação de comparadores lineares, Flip-Flops, um transistor de descarga e um excitador de saída. As tensões de referência dos comparadores se estabelecem em 2/3 V para o primeiro comparador C1 e em 1/3 V para o segundo comparador C2, por meio do divisor de tensão composto por 3 resistências iguais R. Curiosidade: estes resistores são de 5K Ohms cada por isso o nome do integrado 555.
A constituição interna do 555 pode ser vista na figura abaixo.




Funções dos pinos:

1.- Terra ou massa.

2.- Disparo (trigger): É neste pino que ocorre o início do tempo de retardo, se o 555 estiver configurado como monoastável. Este processo de disparo ocorre quando este pino está abaixo de 1/3 da tensão de alimentação. Este pulso deve ser de curta duração , pois do contrário a saída ficará em alta até que a entrada de disparo passe a alto outra vez.

3.- Saída (output): Aqui veremos o resultado da operacão do temporizador, seja como monoastável, astável ou outros. Quando a saída está em alta, a tensão será a tensão de trabalho menos 1,7 Volts. Esta saída pode ficar em quase 0 volts con a ajuda do pino 4 (reset).

4.- Reset (reset): Quando colocamos um nível de tensão menor que 0,7 Volts, a saída no pino 3 será nível baixo. Se por algum motivo este pino não for utilizado deve-se conectá-lo a Vcc evitando assim que o 555 se "reset".

5.- Controle de tensão (control voltage): Quando o temporizador está no modo de controlador de tensão, a tensão neste pino pode variar desde Vcc (na prática como Vcc - 1 volt) até quase 0 V (aprox. 2 Volts). Assim é possível modificar os tempos em que o pino 3 está em alto o em baixo independente do esquema (estabelecido pelas resistências e capacitores conectados externamente ao 555). A tensão aplicada ao pino 5 pode variar de 45 a 90 % de Vcc na configuração monoastável. Quando se utiliza a configuração astável, a tensão pode variar de 1,7 volts até Vcc. Modificando a tensão neste pino na configuração astável fará com que a frequência original do astável seja modulada em frequência (FM). Se este pino não for utilizado, recomenda-se colocar um capacitor de 0,01uF para evitar interferências.

6.- Umbral (threshold): Esta é uma entrada de um comparador interno do 555 e é utilizado para colocar a saída pino 3 em nível baixo.

7.- Descarga (discharge): Utilizado para descarregar com efecácia o capacitor externo utilizado pelo temporizador para seu funcionamento.

8.- V+ (Vcc): Este é pino onde se conecta a tensão de alimentação que vai de 4,5 volts até 16 volts (máximo). Existem versões militares deste integrado que pode chegar até 18 volts.

sexta-feira, 30 de outubro de 2009

Como publicar código fonte no blog

Descobri uma forma de publicar código fonte utilizando o Syntaxhighlighter, veja exemplo abaixo:

function TfrmMain.PublicarCodigo;
var
S: string;
begin
  S := 'Exemplo de código';
  ShowMessage(S);
end;

domingo, 25 de outubro de 2009

Detecção de Cor Webcam (Color Tracker)

Realizei alguns experimentos com uma Webcam durante a semana e com a ajuda de uma biblioteca de funções de Visão de Máquina, consegui compilar um detector de cores (Color Tracker em Delphi), para utilizá-lo é necessário selecionar uma fragmento colorido da tela da webcam que se deseja monitorar. Muito interessante. Vou continuar com estes experimentos, e quaisquer novidades serão postadas aqui no blog.




quarta-feira, 21 de outubro de 2009

Edição #8 da Blaise Pascal Magazine Disponível


Este mês foi lançada a nova edição da revista Blaise Pascal Magazine que faz cobertura do que a de mais novo no Delphi 2010, esta edição apresenta um projeto completo de como construir uma aplicação que deforma fotos e um artigo sobre construção de componentes de Marco Cantú, famoso autor da série Dominando o Delphi.


Aplicação de deformação de fotos

Microchip Masters Brasil 2009



Ontem dia 20 de outubro de 2009 participei do Seminário Microchip Masters Brasil 2009 realizado aqui em São Paulo, este seminário é destinado a engenheiros, estudantes e hobbistas que trabalham com a linha de microcontroladores Microchip. Foi muito interessante, é incrível pensar que a Microchip consegue colocar mais nova tecnologia no mercado do que é possível absorver em um único ano. Entre as muitas novidades foi demonstrada a tecnologia por trás do Guitar Hero, isso mesmo aquela guitarra utilizada em jogos eletrônicos. Ponto para Microchip!


segunda-feira, 19 de outubro de 2009

Diretivas de Compilação Delphi (Delphi Compiler Version)

Para aqueles que como eu desenvolvem componentes e necessitam escrever arquivos inc para instalar os componentes em diversas versões do Delphi, segue uma tabela contendo (eu acredito) a maioria deles:


Embarcadero RAD 2010 = VER210
CodeGear Delphi 2009 = VER200
CodeGear C++ Builder 2009 = VER200
CodeGear Delphi 2007 for .NET = VER190
CodeGear Delphi 2007 for Win32 = VER180 e VER185
Borland Developer Studio 2006 = VER180
Borland Delphi 2005 = VER170
Borland Delphi 8 for .NET = VER160
C++BuilderX = ?
Borland C#Builder = VER160
Borland Delphi 7 = VER150
Borland Kylix 3 = VER140
Borland C++Builder 6 = VER140
Borland Kylix 2 = VER140
Borland Delphi 6 = VER140
Borland Kylix = VER140
Borland C++Builder 5 = VER130
Borland Delphi 5 = VER130
Borland C++Builder 4 = VER125
Borland Delphi 4 = VER120
Borland C++Builder 3 = VER110
Borland Delphi 3 = VER100
Borland C++ 5 = ?
Borland C++Builder 1 = VER93
Borland Delphi 2 = VER90
Borland C++ 4.5 = ?
Borland Delphi 1.0 = VER80
Borland C++ 4 = ?
Borland Pascal 7 = VER70
Borland C++ 3.1 = ?
Turbo Pascal for Windows 1.5 = VER70
Turbo C++ for DOS 3 = ?
Borland C++ 3 = ?
Turbo C++ for Windows 3 (Win16) = ?
Turbo Pascal for Windows 1.0  =?
Borland C++ 2 = ?
Turbo Pascal 6 = VER60
Turbo C++ for DOS = ?
Turbo C for DOS 2 = ?
Turbo Pascal 5.5 = VER55
Turbo C for DOS 1.5 = ?
Turbo Pascal 5 = VER50
Turbo Pascal 4 = VER40
Turbo C for DOS = ?
Turbo Pascal 3 = ?
Turbo Pascal 2 = ?
Turbo Pascal 1 = ?

Espero que seja útil.

sexta-feira, 16 de outubro de 2009

Torneio de Delphi Prorrogado e Disponível em Português


Uma ótima notícia a comunidade Delphi brasileira, o torneio de artigos da revista Blaise Pascal Magazine, foi prorrogado e está recebendo agora artigos em português, não perca esta oportunidade, envie seu artigo para office_brazil@blaisepascal.eu. Lembrando mais uma vez que existem diversos prêmios, você pode ganhar uma licença novinha do Delphi, licenças do Advantage Database Server, assinaturas da revista Blaise Pascal Magazine, entre outros. Não deixe de participar e boa sorte!

segunda-feira, 28 de setembro de 2009

Controle de Porta Paralela - Parte 1

Controlando a porta paralela com Delphi

A porta paralela é uma velha conhecida de todos nós, que era usada grandemente para conectar uma impressora ao PC, se você reparar na parte traseira do seu micro, para aqueles que não possuem micros tão novos, vai haver uma porta com 25 pinos com um pequeno símbolo de impressora. Esta porta é conhecida como porta LPT ou porta de impressora. Nós podemos programar esta porta para controle de dispositivos e/ou transferência de dados, em projetos de robótica, eletrônica e até controle de displays LCD.

Conceitos da porta paralela


A porta paralela inicialmente foi desenvolvida para conectar uma impressora ao PC, porém podemos pro-gramar esta porta para muitas aplicações além desta. A porta paralela pode ser utilizada por duas razões principais: controle de dispositivos e comunicação. Podemos programar esta porta para ambas as funções.
As portas paralelas são mais fáceis de programar e mais rápidas em comparação as portas seriais. Mas a principal desvantagem é que necessita de mais fios para transmitir os dados (9 em comparação aos 3 fios da porta serial). Por este motivo as portas paralelas não são utilizadas em comunicações à muita distância. A seguir veremos as diferenças básicas de funcionamento entre a porta paralela e a serial.

Na serial temos 2 fios de dados: um para transmissão e outro para recepção. Para enviar dados através da porta serial, enviamos um bit após o outro ( daí a origem do nome serial, os bits são transmitidos em série), com alguns bits extras como o de início (start bit), bit de parada (stop bit) e o bit de paridade (parity bit) para detecção de erros. Já na porta paralela, todos os 8 bits do byte serão enviados simultaneamente e uma indicação enviada em outro fio, teremos ainda alguns fios de transmissão de dados, alguns de controle, e outros de handshaking, que é o processo de reconhecimento entre 2 dispositivos, máquinas, micros, etc (ver Figura 1).


Diferenças de transmissão de dados entre a porta paralela e a serial.

Normalmente na parte traseira do micro existe um conector DB25 fêmea com 25 pinos (ver Figura 2), a Tabela 1 apresenta os pinos e suas respectivas funções.


Uma porta paralela na parte traseira de um notebook (conector padrão DB25 Fêmea).



terça-feira, 15 de setembro de 2009

Busca Incremental no Object Inspector

Vocês sabiam que é possível realizar buscas incrementais no Object Inspector do Delphi? Selecione um item do object inpector com o mouse ou F11, pressione Tab e o cursor será posicionado ao lado do nome das propriedades do object inspector, digite a letra inicial do nome da propriedade e pronto, para retornar pressione Tab novamente e o cursor retornará ao lado do valor no object inspector.

Artigo sobre editores de propriedade na ActiveDelphi

O Delphi oferece a Open Tools API, para permitir aos programadores estender a funcionalidade do próprio Delphi. O Delphi já vem com um conjunto padrão de editores de propriedade que realizam uma grande variedade de tarefas de edição. Normalmente, este conjunto de editores é suficiente para um componente e suas propriedades. Para aqueles que desejam entender melhor as técnicas utilizadas na personalização de editores de propriedade podem conferir a edição 67 da revista ActiveDelphi onde demonstro a criação de um editor para propriedades do tipo Boolean.

O TBooleanPropertyImage em uso.

sexta-feira, 11 de setembro de 2009

Blaise Pascal Magazine em Português

A Blaise Pascal Magazine está disponibilizando uma versão em português confira em http://www.blaisepascal.eu/, lá é possível encontrar uma versão gratuita para download.