segunda-feira, 30 de novembro de 2009

DbExpress 4 (Compatibilizar seu programa para dbexpress 4)

//No uses//
 DBXCommon

//No evento//  
var
     
Conexao : TSQLConnection;
      Transacao : TDBXTransaction;
begin
   try
       Transacao := Conexao.BeginTransaction(TDBXIsolations.ReadCommitted);

       // Seu código fonte...
     
      
Conexao.CommitFreeAndNil(Transacao);
   except
       Conexao.RollBackFreeAndNil(Transacao);
   end;
end;

quarta-feira, 11 de novembro de 2009

Lentidão com a função que retornava o nome do computador

Pessoal, segue nova função que retorna o nome do computador.
A função anterior começou a apresentar um lentidão após a mudança na nossa rede interna, devido agora os computadores não ter mais IP fixo, e a função anterior passava o IP da máquina como parâmetro.

function NomeComputador: string; overload;
var
ipbuffer: array [0..MAX_COMPUTERNAME_LENGTH] of Char;
size: DWORD;
begin
size := Sizeof(ipbuffer);
if GetComputerName(ipbuffer, size) then
Result := ipbuffer
else
Result := '';end;

Reparem na diretiva overload na assinatura da função.
Eu deixei as duas funções no projeto.
Se passar o IP como parâmetro, o sistema utiliza a antiga, se não passar parâmetro nenhum, o sistema utiliza a nova função.
Lembrem-se de colocar a mesma diretiva overload na assinatura na função anterior.

WinExec, ShellExecute ou Create Process

Pessoal segue nova função referente ao problema relacionado com o WinExec no Delphi 2010.
Para maiores esclarecimentos, após a função, segue um link para a materia que fala sobre o assunto.

function TFrmSIS_Menu.AbreModulo(Caminho: String): boolean;
var SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
FillChar(SUInfo, SizeOf(SUInfo), #0);
SUInfo.cb := SizeOf(SUInfo);
SUInfo.dwFlags := STARTF_USESHOWWINDOW;
SUInfo.wShowWindow := SW_NORMAL;
Result := CreateProcess(nil,
PChar(Caminho),
nil,
nil,
false,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,
nil,
nil,
SUInfo,
ProcInfo);

if (Result) then
begin
//a linha abaixo faz com que a aplicação congele enquanto não finalizar o programa chamado...
//WaitForSingleObject(ProcInfo.hProcess, INFINITE);

CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;

http://www.marcosdellantonio.net/2006/11/28/delphi-winexec-shellexecute-ou-createprocess/

Delphi 2010 com visual de Delphi 7

Veja como deixar a IDE do Delphi 2010 com o visual do Delphi 7, tradicional e com o formulário "solto":
http://delphi.viamep.com/index.php/Delphi_2010_com_visual_de_Delphi_7

terça-feira, 10 de novembro de 2009

Pra quem gosta de programas de graça.

Opção free para gerenciador de driver virtual como "Alcohol" ou "Power ISO".
DAEMON Tools Lite v4.35.5
http://www.disc-tools.com/download/daemon


Nero 9 Lite, que já roda no Windows7

http://www.nero.com/ptb/downloads-nero9-free.php

Cores do DBGrid para Delphi 2010

Na migração para o Delphi2010 os DBGrids ficaram todos estilizados com um tema do Delphi 2010 para corrigir isso altere a propriedade "DrawingStyle" para "gdsClassic"

Problemas com o TitleClick do DBGrid no Delphi 2010

Se usa o evento OnTileClick no DBGrid para ordenar as Colunas faça a seguinte mudança para manter tudo funcionando no Delphi 2010:

Na propriedade "Options" do "DBGrid" marque o item "dgTitleClick" para "True".

Paramêtros de Conexão para Delphi 2010

Para quem vai começar a usar o delphi 2010 vai a dica,

Crie mais uma linha nos parâmetros de conexão setando a propriedade "UseUniCode" para "False", como mostra o exemplo abaixo:

DriverName=Firebird
Database=
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=3
ErrorResourceFile=
LocaleCode=0000
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
IsolationLevel=ReadCommitted
Trim Char=False
UseUnicode=False

Mitos das baterias para notebooks

Acessem o link para ver a matéria, bem interessante.


http://olhardigital.uol.com.br/central_de_videos/video_wide.php?id_conteudo=8455&/MITOS+DAS+BATERIAS+PARA+NOTEBOOKS