Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

sexta-feira, 23 de novembro de 2012

DELPHI - Calculando e Verificando Hash - Message Digest 5 (MD5)

Reações: 


// Uses IdHashMessageDigest, idHash;

function GetHash (const Value : string) : string;
// Uses IdHashMessageDigest, idHash;
 var
   idMD5 : IdHashMessageDigest.TIdHashMessageDigest5;
begin
  idMD5 := TIdHashMessageDigest5.Create;
  try
    result := idMD5.AsHex(idMD5.HashValue(Value)) ;
  finally
    FreeAndNil(idMD5);
  end;
end;

function VerifyHash (const Value, Hash : string) : Boolean;
// Uses IdHashMessageDigest, idHash;
begin
  Result := Hash = GetHash(Value) ;
end;
/// Função para Indy 10 e DelphiXE3 - Funcionamento testado

function GetHash (const Value : string) : string;
// Uses IdHashMessageDigest, idHash;
 var
   idMD5 : IdHashMessageDigest.TIdHashMessageDigest5;
begin
  idMD5 := TIdHashMessageDigest5.Create;
  try
    result := TIdHash(idMD5).HashStringAsHex(Value);
  finally
    FreeAndNil(idMD5);
  end;
end; 

sábado, 17 de novembro de 2012

DELPHI - Utilizando Funções de Retorno de TabOrder

Reações: 


function TForm1.ValidaItens: Boolean;
var
  i, j, iMaxTabOrder : integer;
  wcObj : TWinControl;
Function IsValidDate(DT : String) : Boolean;
var
  X : TDateTime;
begin
  Result := False;
  try
    X := StrToDateTime(DT);
    Result := True;
  except
    Result := False;
  end;
end;
  Function GetCaptionItem(Tag : Integer) : String;
  var
    X : Integer;
  begin
    for X := 0 to pnlBackItensCliente.ControlCount -1 do
    begin
      if (pnlBackItensCliente.Controls[x] is TLabel) and (Tag = TLabel(pnlBackItensCliente.Controls[x]).Tag) then
      begin
        Result := TLabel(pnlBackItensCliente.Controls[x]).Caption;
        Break;
      end;
    end;
  end;
  Procedure ShowMessageBox(Item : TWinControl);
  begin
    MessageBox(Handle, PChar('O campo "' + GetCaptionItem(Item.Tag) + '" não pode ser nulo. Verifique.'), 'Erro de validação de campo', MB_OK + MB_ICONERROR );
    Item.SetFocus;
  end;
begin
  Result := False;
  iMaxTabOrder := MaxTaborder(pnlBackItensCliente);
  for J := 0 to iMaxTabOrder -1 do
  begin
    wcObj := GetObjectTabOrder(J, pnlBackItensCliente);
    if (wcObj <> nil) and (wcObj is TDBEdit) and (Trim(TDBEdit(wcObj).Text) = '') then
    begin
      ShowMessageBox(wcObj);
      exit;
    end;
    if (wcObj <> nil) and (wcObj is TDBComboBox) and (TDBComboBox(wcObj).ItemIndex = -1) then
    begin
      ShowMessageBox(wcObj);
      exit;
    end;
  end;
  if (not IsValidDate(DBEdit14.Text)) then // DBedit com campo data
  begin
    ShowMessageBox(TWinControl(DBEdit14));
    exit;
  end;
  Result := True;
end;

DELPHI - Retornar Objeto via valor de TabOrder

Reações: 

Function GetObjectTabOrder(TabOrder : Integer; Obj : TWinControl) : TWinControl;
var
  k : integer;
begin
  Result := Nil;
  for K := 0 to Obj.ControlCount -1 do
  begin
    if TWinControl(Obj.Controls[k]).TabOrder = TabOrder then
    begin
      Result := TWinControl(Obj.Controls[k]);
      Break;
    end;
  end;
end;

DELPHI - Retornar Maior TabOrder de Controls

Reações: 
Function MaxTaborder(Obj : TWinControl) : Integer;
var
  k : integer;
begin
  Result := 0;
  for K := 0 to Obj.ControlCount -1 do
  begin
    if TWinControl(Obj.Controls[k]).TabOrder > Result then
    Result := TWinControl(Obj.Controls[k]).TabOrder;
  end;
end;

terça-feira, 13 de novembro de 2012

DELPHI - Página de treinamentos da Embarcadero do Brasil

Reações: 
A Embarcadero do Brasil, lançou em seu evento Delphi Conference 2012, realizado em São Paulo, o site oficial de Treinamentos e Vagas para profissionais do ramo, segue abaixo o Link:

http://www.edobrasil.net/treinamentos/

segunda-feira, 5 de novembro de 2012

DELPHI - Atualizações RAD XE3 - Vale apena conferir

Reações: 
http://now.eloqua.com/es.asp?s=608&e=741069&elq=ab7bf27acb804566a0919b3bb72251b9


Acesse o link acima para visualização das novidades do RAD XE3

"Delphi Linguagem Morta"???

Compilando para o ambiente visual do Windows 8, lançado 2 dias antes do lançamento Mundial da Microsoft.


Quem diz isso não entende de tecnologia!!


Max Gehringer