quinta-feira, 25 de dezembro de 2008

Feliz Natal a Todos ;)

Feliz Natal a todos os desenvolvedores e não desenvolvedores ;)

Grande abraço e até o ano que vem que com certeza sera muito melhor que este, onde poderemos realizar mais projetos e sonhos para cada vez mais termos um futuro melhor com muita paz e alegria ;)

Diego M. Garcia

quinta-feira, 20 de novembro de 2008

Dica Rapida - Como Remover atalhos do Notebook HP

Uma coisa muito chata nos notebooks hp`s para quem é programador delphi e esta acostumado a utilizar bastante teclas de atalhos como por exemplo Ctrl + Shift + C é o fato da HP por padrão definir este mesmo conjunto de teclas para executar o programa HP Health Check.

Isso realmente fica desagradavel, presenciei isso por um tempo mas nunca tinha tempo para ver como desabilitar este atalho, que acabava me encomodando em algumas horas, foi então que resolvi dedicar um pouco do meu tempo para achar a solução, e ela é mais simples do que parece.

Para resolver vá no iniciar do vista, no campo procurar / search digite HP Health Check, click com o botão direito em cima do Atalho do HP Health Check e click em propriedades, click no campo Atalho / ShortCut e apague a sequencia de teclas que esta sendo exibida, a mesma aparecera como Nenhum / None, click em aplicar / apply e pronto o atalho chato esta desativado !

Espero que esta dica ajude a outras pessoas que tambem tiveram o mesmo problema que eu !

Grande Abraço a todos,
Diego M. Garcia.

terça-feira, 2 de setembro de 2008

Google Chrome Lançado !

Fala pessoal, já esta disponivel para download o navegador do Google chamado Chrome ... agora a pergunta que não quer calar, sera que este foi o motivo da Rem Objects ter mudado o nome do Chrome para Oxygem ?

Grande abraço,
Diego Garcia

segunda-feira, 25 de agosto de 2008

ECO V tera Novo Designer de classes

Fala pessoal,

Uma das grandes novidades do novo ECO é que ele tera um novo designer que sera integrado diretamente dentro da IDE do Visual Studio.

Porém para quem quiser continuar utilizando o ECOModeler que é comercializado pela ModelMaker Tools e que atualmente funciona muito bem e é distribuido junto com o eco IV podera utilizar normalmente mas ainda não se sabe se o mesmo sera distribuido junto ao ECO V ou se sera necessario adiquirir separadamente.

Bom vamos ver como que fica ;)

Qualquer novidade posto novamente.

Grande Abraço,
Diego Garcia

quinta-feira, 31 de julho de 2008

Quer conhecer o novo Delphi Tiburon ?

Fala pessoal,

Seguinte acabo de receber um e-mail com o convite para o evento on-line sobre a nova versão do delphi / c++ com codinome Tiburon.

O evento acontecerá dia 1 de agosto as 11 horas.

O link para inscrição do evento é http://latam.codegear.com/br/tiburonpreview

Vamos ver as novidades, grande abraço a todos.

Diego Garcia

quarta-feira, 11 de junho de 2008

Dica Rapida - Como saber se seu delphi esta com todos os Updates.

Fala pessoal como sempre pouco tempo para escrever mas aqui estou eu, bom vai ai uma pequena dica para quem quer saber se seu delphi esta com todos os updates em ordem entre neste site http://delphi.wikia.com/wiki/Delphi_2007_for_Win32 e confira se o build number de seu delphi é o mesmo do da ultima atualização sitada no site.

Grande abraço a todos,
Diego M. Garcia.

quinta-feira, 29 de maio de 2008

Dica Rapida - Flash Action Script

Fala pessoal tudo bem ?

Sei que ando sumido mas as coisas aqui no serviço estão muito corridas, assuntos para postar aqui no blog é o que não falta mas o tempo não me da uma tregua :)

Bom vamos direto ao assunto.

Estava fazendo a programação de um movie clip em action script, onde o mesmo deveria carregar os dados do movie clip diretamente de um arquivo xml, até ai nada de mais porém o designer que fez este movie clip tinha configurado o componente de texto onde deveria ser exibido o conteudo dinamico, com as fontes Embeded ou seja as fontes ficam dentro do próprio swf, mas ele esqueceu de configurar o embeded fonts para conter tambem as fontes Latin 1 ou sejá acentuações não apareciam nem com reza brava :)

Ou seja caso você estaja quebrando muito a cabeça em salvar o arquivo externo xml com o formato utf-8 e mesmo assim o flash não esta lendo corretamente o arquivo, veja o embeded fonts do seu componente de textos se não esta mau configurado.

 

Grande abraço,
Diego Garcia.

sábado, 22 de março de 2008

Dica Rápida - Access Point com WPA

Fala pessoal tudo bem ?

Ontem quebrando a cabeça um pouco com o access point aqui no escritório para resolver o problema "A STA is rejected by 802.1x daemon" descobri que este erro ocorre, pelo menos no meu caso pelo fato da senha (passfrase) de autenticação estar errada. Corrigi a senha e tcharam funcionando perfeitamente !

Encontrei em alguns sites com dicas falando mude o ssid de sua rede, blah blah blah ... e etc. Mas não me dou por vencido fácil então fui analisando tudo que poderia estar causando este erro que acabava não permitindo ao PC navegar nem entrar na rede, sendo que outros PCs wireless sempre navegaram normalmente.

Bom é isso espero que esta dica seja util ;)

Grande abraço,
Diego M. Garcia.

quarta-feira, 19 de março de 2008

Quer conhecer as grandes empresas ?

Fala pessoal tudo bem ?

Ontem estava procurando alguns quadros novos para mudar a decoração do meu escritorio e sem querer encontrei um site bem legal com fotos de varias empresas de tecnologia. Se você quer saber como é a estrutura do google por exemplo, com certeza lá você irá encontrar.

O endereço do site é http://www.officesnapshots.com

Vale a pena visitar ;)

Grande abraço,
Diego M. Garcia.

Baixando um arquivo com componente idHttp

Fala pessoal tudo bem ?

Bom como nossa amiga Marina pediu para que eu explicasse como fazer um sistema que baixe um arquivo utilizando o protocolo HTTP este será nosso assunto de hoje.

Bom vamos lá.

1- Crie um novo projeto no Delphi indo em File -> New VCL Forms Application.

2- Monte o visual do seu sistema com os seguintes componentes, um label com nome lblNomeArquivo com a propriedade Caption ‘Nome do Arquivo’, um Edit com nome edtNomeArquivo com a propriedade Readonly setada para true e Color para clBtnFace, um label com nome lblEnderecoArquivo com a propriedade Caption ‘Endereço do Arquivo’, um Edit com nome edtEnderecoArquivo, um buton com nome btBaixarArquivo com Caption ‘Baixar Arquivo’, um progressbar com nome pgrsArquivo propriedade smoth true.

3- Mude o nome do seu form para frmPrincipal propriedades BorderStyle para bsSingle, BorderIcons para [biSystemMenu,biMinimize] e Position para poDesktopCenter.

4- Agora coloque um componente idHttp com nome idHttp e um SaveDialog com nome svdArquivo.

Seu form deve ficar mais ou menos parecido com isto:

clip_image001

Ok com o visual montado vamos a parte divertida da coisa:

1- No evento OnChange do componente Edit com nome edtEnderecoArquivo coloque o seguinte código:

var
I: integer;
begin
  I := LastDelimiter('/',edtEnderecoArquivo.Text);
  edtNomeArquivo.Text := Copy(edtEnderecoArquivo.Text, I + 1, MaxInt);
end;

Explicando o código: A função LastDelimiter retorna a posição do ultimo delimitador de uma string , onde o delimitador deve ser informado em seu primeiro parâmetro, no nosso caso o delimitador é a ‘/’. Após armazenar a posição apenas copiamos para o edtNomeArquivo o texto iniciando da posição do ultimo delimitador.

2- O evento OnClick do botão btBaixarArquivo deve ficar como abaixo:

procedure TfrmPrincipal.btBaixarArquivoClick(Sender: TObject);
var
msArquivo: TMemoryStream;
begin
//Criamos a variavel msArquivo do tipo de um TMemoryStream para
//armazenarmos o arquivo enquanto esta sendo baixado.
msArquivo := TMemoryStream.Create;
try
  try
    //Fazemos o download do arquivo através do método Get do idHttp onde
    //passamos o endereço do arquivo no primeiro parâmetro e a variável do tipo
    //MemoyStream no segundo parâmetro.
    idHttp.Get(edtEnderecoArquivo.Text,msArquivo);
    //Mudamos agora a extensao do arquivo padrao do save dialog para a mesma do arquivo que foi baixado. 
    svdArquivo.DefaultExt := '*' + ExtractFileExt(edtNomeArquivo.Text)+'|' + ExtractFileExt(edtNomeArquivo.Text);
    //Mudamos o filtro tambem para o mesmo da extensao padrao
    svdArquivo.Filter := '*' + ExtractFileExt(edtNomeArquivo.Text)+'|' + ExtractFileExt(edtNomeArquivo.Text);
    //Setamos o nome do arquivo para o mesmo que foi baixado.
    svdArquivo.FileName := edtNomeArquivo.Text;
    //Mostramos o Save Dialog e Salvamos o arquivo.
    if svdArquivo.Execute then
      begin
       msArquivo.SaveToFile(svdArquivo.FileName);
       //Informamos que o arquivo foi salvo com sucesso
       Application.MessageBox('Arquivo salvo com sucesso !','Sucesso!',MB_OK+MB_ICONINFORMATION);
      end;
  except
   //Se ocorreu um erro então tratamos ele
   on E: EIdHttpProtocolException do
     begin
      
//Se não achou o arquivo entao mostra a mensagem.
       if E.ErrorCode = 404 then
        
Application.MessageBox('O arquivo solicitado não foi encontrado no servidor !',
                                                 'Erro arquivo não existe !',
                                                 MB_OK+ MB_ICONERROR);
     end;
  end;
finally
 
//Liberamos a variavel da memoria.
  FreeAndNil(msArquivo);
end;
end;

3- Agora no evento OnWorkBegin do idHttp coloque o seguinte código:

if AWorkCountMax > 0 then
  
pgrsArquivo.Max := AWorkCountMax;

4- E no evento OnWork coloque:

pgrsArquivo.Position := AWorkCount;

Bom acho que com isso já é possivel que vocês entendam como baixar um ou mais arquivos com o idHttp, caso tenham duvidas por favor coloque um comentario aqui que com certeza responderei ;)

Outra coisa o codigo fonte deste exemplo e o seu exe estão disponíveis no endereço http://www.unitone.com.br/arquivos/demoHttp.zip

Grande abraço a todos,
Diego M. Garcia

terça-feira, 26 de fevereiro de 2008

Promoção Hopi Hari

Fala pessoal tudo bem ?

Sei que isso não tem nada a ver com o conteúdo que posto normalmente, porém achei que algumas pessoas poderiam se interessar. Ontem à tarde comprei em um supermercado chamado Hirota um Ovo de páscoa Batom da Garoto que acompanha um ingresso para o Hopi Hari, super promoção pois o ovo estava saindo por 23,90. Da para acreditar ?

Se você for analisar bem até que não é muito off, afinal quem não gosta de chocolate :D

Grande abraço,
Diego M. Garcia

sexta-feira, 15 de fevereiro de 2008

Dica Rápida - GridView

Outra pequena dica, para que as formatações dos campos sejam aplicadas em um GridView, Ex.: DataFormatString="{0:dd/MM/yyyy}". Não se esqueça de setar a propriedade HtmlEncode do campo a ser formatado para false, ou a formatação não será aplicada.

Essa é uma pequena dica que ajudei um amigo hoje e achei interessante postar para quem esta iniciando em asp .net ou para quem tenha está mesma dificuldade.

Grande abraço,
Diego M. Garcia.

quinta-feira, 14 de fevereiro de 2008

Dica Rápida - Ajax Asp .Net 2.0

Pessoal sei que estou meio sumido então como hoje tirei uma dúvida para um amigo, achei interessante postar aqui para quem está começando com ajax e precisa executar um script javascript através de um componente (ex.: button) que esta dentro de um ajaxpannel basta escrever o codigo abaixo:

em C#:

ScriptManager.RegisterStartupScript(Page, typeof(String), "Alerta", "alert('Ação não pode ser completada !');", True);

O código acima pode ser facilmente adaptado para delphi, vb .net e qualquer outra linguagem que suporte o .net framework.

Grande abraço,
Diego M. Garcia.

quinta-feira, 24 de janeiro de 2008

Pequena dica para desenvolver / portar aplicações em delphi para Vista.

Esses dias me deparei com um de meus sistemas gerando alguns erros de funcionamento no windows vista.

Na verdade todos os problemas ocorriam pelo mesmo motivo, este sistema em específico armazena suas configurações no registro do windows na chave HKEY_LOCAL_MACHINE (pois todos os usuários devem poder acessar as mesmas configurações), o Vista por padrão deixou de permitir que nossas aplicações escrevam dados na chave HKEY_LOCAL_MACHINE sem que a aplicação seja executada como administrador, consequentemente caso  abrirmos uma chave para consulta com os direitos de acesso total a aplicação não conseguirá nem mesmo ler o conteúdo da chave. Isso tudo acontece graças ao Controle de Contas de Usuários (UAC) do Vista. Na minha opinião é um recurso muito bom porém ainda poderia ser melhor, mas isso não vem ao caso agora. Vamos analizar o código anterior de nossa aplicação:

class function TFuncoes.LeParametro(nomeParametro: string): string;
const
  csLocal: String = 'Software\Programa\';
var
  rConfiguracoes: TRegistry;
begin
  rConfiguracoes := TRegistry.Create;
  try
    rConfiguracoes.RootKey := HKEY_LOCAL_MACHINE;
    if rConfiguracoes.KeyExists(csLocal) then
      begin
       if rConfiguracoes.OpenKey(csLocal, True) then
        begin
          if rConfiguracoes.ValueExists(nomeParametro) then
             Result := rConfiguracoes.ReadString(nomeParametro) else
             Result := EmptyStr;
        end;
      end;
  finally
   FreeAndNil(rConfiguracoes);
  end;
end;

O código acima no Windows Vista retorna sempre um valor vazio ('') para que o mesmo funcione temos que tomar as seguintes precauções:

class function TFuncoes.LeParametro(nomeParametro: string): string;
const
  csLocal: String = 'Software\Programa\';
var
  rConfiguracoes: TRegistry;
begin
  rConfiguracoes := TRegistry.Create;
  try
    rConfiguracoes.RootKey := HKEY_LOCAL_MACHINE;
    //Após mudar a chave inicial setar o modo de acesso como leitura
    rConfiguracoes.Access := KEY_READ;
    if rConfiguracoes.KeyExists(csLocal) then
      begin
       //Garantir que todos os chamados ao metodo OpenKey sejam feitos como somente leitura (neste caso passando o parâmetro CanCreate como False.
       if rConfiguracoes.OpenKey(csLocal, False) then
        begin
          if rConfiguracoes.ValueExists(nomeParametro) then
             Result := rConfiguracoes.ReadString(nomeParametro) else
             Result := EmptyStr;
        end;
      end;
  finally
   FreeAndNil(rConfiguracoes);
  end;
end;

Desta forma garantimos a compatibilidade com o Windows Vista, porém lembre-se que caso seu sistema faça alterações nesta chave ele não conseguirá mudar os dados do registro se a aplicação não for executada como administrador. Eu recomendo mudar a forma que sua aplicação armazena as configurações.

Grande abraço a todos, espero que esta pequena dica seja útil a muitos de vocês que estão migrando para o vista.

Diego M. Garcia.

quarta-feira, 23 de janeiro de 2008

Dica para desenvolvedores de sistemas de Microcontroladores

Fala pessoal essa pequena dica pode ajudar a resolver um pequeno bug que acontece de vez em quando no MPLAB.

Para quem utiliza o MPLAB para desenvolver softwares para microcontroladores da Microchip com CCS C ou até mesmo em assembler, em algumas instalações pode ocorrer o seguinte erro ao tentar compilar qualquer software:

The format of the file <caminho do arquivo>.cof can not be read or written because its extension was not recognized.

Para soluciona-lo basta fazer o procedimento abaixo:

1º Feche o MPLAB.
2º Vá em Iniciar -> Executar.
3º Digite o commando regsvr32 "C:\Arquivos de Programas\Microchip\MPLAB IDE\core\MPProgram.dll"
4º Clique no botão OK.
5º Abra o MPLAB e teste compilar seu projeto novamente.

Pronto nenhum erro será gerado pela IDE, isso acontece muitas vezes pelo fato do mplab durante a instalação procurar o arquivo a ser registrado no caminho errado "Program Files" invés de "Arquivos de Programa" em português.

Grande abraço a todos,
Diego M. Garcia.

terça-feira, 1 de janeiro de 2008

Happy New Year for Everbody

Hi guys, I wish you guys a very happy new year and I hope all your wishes be met this year.

Kind Regards,
Diego M. Garcia

Feliz Ano Novo a Todos

Pessoal estou de volta e desejo-lhes um feliz ano novo a todos e que seus objetivos se realizem neste ano. Logico com muito esforço e trabalho ;)

Grande abraço,
Diego M. Garcia