sábado, 23 de maio de 2009

Evento Online - Webinar: .NET Development with Delphi Prism



O evento será online às 15h00 do dia 26/05/2009 - Fuso horário: (GMT-03:00) Brasilia) em Inglês.

Clique aqui para se registrar

Take Care

domingo, 17 de maio de 2009

Pai do Delphi e da Plataforma .Net




Salve, salve, Bom, abaixo, algumas imagens do criador do Delphi e da plataforma .Net e linguagem C#.

Anders Heijsberg nasceu em Copenhagen, Dinamarca. Graduou-se na Universidade Técnica da Dinamarca.

Em 1980, Hejlsberg escreveu compiladores para a empresa Nascon Microcomputer, onde desenvolveu o
compilador Pascal, Blue Label Pascal. Quando trabalhou na Borland de 1989 até 1996, desenvolveu o
Turbo Pascal e a Linguagem Delphi. Virou engenheiro chefe da Borland.

Em 1996, deixou a Borland e foi para a Microsoft. Sua primeira criação foi a J++. Ganhou muito
reconhecimento pelo desenvolvimento da linguagem C# em 2000. Pode-se dizer que foi o principal
desenvolvedor da plataforma .NET.

Dica Delphi - Validando CGC

// Adicione a unit SysUtils

function cgc(num: string): boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12: integer;
d1,d2: integer;
digitado, calculado: string;
begin

n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[3]);
n4:=StrToInt(num[4]);
n5:=StrToInt(num[5]);
n6:=StrToInt(num[6]);
n7:=StrToInt(num[7]);
n8:=StrToInt(num[8]);
n9:=StrToInt(num[9]);
n10:=StrToInt(num[10]);
n11:=StrToInt(num[11]);
n12:=StrToInt(num[12]);
d1:=n12*2+n11*3+n10*4+n9*5+n8*6+n7*7+n6*8+n5*9+n4*2+n3*3+n2*4+n1*5;
d1:=11-(d1 mod 11);
if d1>=10 then d1:=0;
d2:=d1*2+n12*3+n11*4+n10*5+n9*6+n8*7+n7*8+n6*9+n5*2+n4*3+n3*4+n2*5+n1*6;
d2:=11-(d2 mod 11);
if d2>=10 then d2:=0;
calculado:=inttostr(d1)+inttostr(d2);
digitado:=num[13]+num[14];
if calculado=digitado then
cgc:=true
else
cgc:=false;
end;

Dica Delphi - Validando CPF

// Adicione a unit SysUtils

function cpf(num: string): boolean;
var
n1,n2,n3,n4,n5,n6,n7,n8,n9: integer;
d1,d2: integer;
digitado, calculado: string;
begin

n1:=StrToInt(num[1]);
n2:=StrToInt(num[2]);
n3:=StrToInt(num[3]);
n4:=StrToInt(num[4]);
n5:=StrToInt(num[5]);
n6:=StrToInt(num[6]);
n7:=StrToInt(num[7]);
n8:=StrToInt(num[8]);
n9:=StrToInt(num[9]);
d1:=n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1:=11-(d1 mod 11);
if d1>=10 then
d1:=0;
d2:=d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2:=11-(d2 mod 11);
if d2>=10 then
d2:=0;
calculado:=inttostr(d1)+inttostr(d2);
digitado:=num[10]+num[11];
if calculado=digitado then
cpf:=true
else
cpf:=false;
end;

Dica Delphi - Convertendo valor Hexadecimal para Inteiro

function HexToInt(const HexStr: string): longint;
var
x: integer;
cTmp: Char;
begin
Result := 0;
for x := 1 to Length(HexStr) do
begin
cTmp := HexStr[x];
case cTmp of
'0'..'9': Result := 16 * Result + (Ord(cTmp) - $30);
'A'..'F': Result := 16 * Result + (Ord(cTmp) - $37);
'a'..'f': Result := 16 * Result + (Ord(cTmp) - $57);
else
raise EConvertError.Create('Illegal character in hex string');
end;
end;
end;

Dica Delphi - Verificando se um diretório existe

Inclua na seção uses: FileCtrl, Dialogs

if DirectoryExists('C:\MEUSDOCS') then
ShowMessage('O diretório existe')
else
ShowMessage('O diretório não existe');

Dica Delphi - Deletando um arquivo

if FileExists('C:\MEUDIR\MEUARQ.DAT') then
DeleteFile('C:\MEUDIR\MEUARQ.DAT');

Dica Delphi - Comandos INC e DEC

INC substitui o codigo:
Variavel:=Variavel+1

DEC substitui o codigo:
Variavel:=Variavel-1

Como usar:
INC(variavel);
ou
DEC(variavel)

Tambem pode-se usar:
INC(X,5)
Que corresponde a:
X:=X+5;

Dica Delphi - Traduzindo Mensagens

Um dos maiores problemas quando construimos um programa em Delphi são as mensagens de erro ou de alerta em inglês.

Embora exista a possibilidade de fazer a verificação do código antes de a mensagem aparecer, como a que pergunta se o registro deseja ser deletado ou não, quando usamos o componente DBNAVIGATOR , e inserirmos a nossa própria BOX com o texto que quisermos,

Recomendo que antes de fazer quaisquer alterações nos arquivos descritos a seguir, você efetue uma cópia de segurança dos mesmos.

Como exemplo, vamos citar as mensagens do Delphi que aparecem nos botões, caixas de avisos da função MessageDlg, etc.

Para traduzir estas mensagens, basta traduzir o respectivo arquivos de recurso: *.RC.

Quando você efetua a instalação padrão do Delphi, estes arquivos estão no diretório "source\vcl".

Procure o arquivo ".rc" e use o bloco de notas para abri-lo, faça a tradução das mensagem que você quiser traduzir (somente os textos que estão entre aspas), grave o arquivo e vá ao modo dos, entre no diretório "source\vcl" e digite o seguinte:

"..\..\bin\brc32 -r {nome do arquivo rc}"

Isso irá gerar um arquivo res, copie-o para o diretório "lib" do delphi e pronto.

O diretório pode ser o bin e o brc e não brc32, dependendo da versão do Delphi.

No caso específico da MessageDlg, efetue as alterações abaixo:

Após gravar as alterações, vá ao modo DOS, entre no diretório "source\vcl" e digite o seguinte:

"..\..\bin\brc32 -r consts.rc",

Isso irá gerar um arquivo consts.res, copie-o para o diretório lib do delphi, pronto, a messageDlg já estará traduzida.

SMsgDlgWarning, "Atenção"
SMsgDlgError, "Erro"
SMsgDlgInformation, "Informação"
SMsgDlgConfirm, "Confirme"
SMsgDlgYes, "&Sim"
SMsgDlgNo, "&Não"
SMsgDlgOK, "OK"
SMsgDlgCancel, "Cancelar"
SMsgDlgHelp, "A&juda"
SMsgDlgHelpNone, "Ajuda não localizada"
SMsgDlgHelpHelp, "Ajuda"
SMsgDlgAbort, "&Abortar"
SMsgDlgRetry, "&Repetir"
SMsgDlgIgnore, "&Ignorar"
SMsgDlgAll, "&Todos"

Dica Delphi - Verificando Ano Bixesto

function AnoBis(Data: TDateTime): Boolean;
{Verifica se um ano é bixesto, retornando True em caso positivo}
var
Dia,Mes,Ano : Word;
begin
DecodeDate(Data,Ano,Mes,Dia);
if Ano mod 4 <> 0 then
AnoBis := False
else
if Ano mod 100 <> 0 then
AnoBis := True
else
if Ano mod 400 <> 0 then
AnoBis := False
else
AnoBis := True;
end;