VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, Posicao);
segunda-feira, 22 de julho de 2019
TVertScrollBox
Para posicionar o item dentro de um TVertScrollBox
VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, Posicao);
VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, Posicao);
sexta-feira, 12 de julho de 2019
Reduzir tamanho imagem
uses Vcl.Imaging.jpeg;
function CAPAS_REDUZ(ORIG,DEST:string; const fWidth, fHeight: integer):Boolean;
var pTemp: TBitmap;
begin
try
try
pTemp := nil;
ptemp := TBitmap.Create;
pTemp.LoadFromFile(ORIG);
if (pTemp.Width > fWidth) or (pTemp.Height > fHeight) then
begin
pTemp := pTemp.CreateThumbnail(fWidth,fHeight);
pTemp.SaveToFile(DEST);
end
else
CopyFile(PChar(ORIG), PChar(DEST), true);
result := true;
finally
FreeAndNil(pTemp);
end;
except
FreeAndNil(pTemp);
result := false;
end;
end;
function CAPAS_REDUZ(ORIG,DEST:string; const fWidth, fHeight: integer):Boolean;
var pTemp: TBitmap;
begin
try
try
pTemp := nil;
ptemp := TBitmap.Create;
pTemp.LoadFromFile(ORIG);
if (pTemp.Width > fWidth) or (pTemp.Height > fHeight) then
begin
pTemp := pTemp.CreateThumbnail(fWidth,fHeight);
pTemp.SaveToFile(DEST);
end
else
CopyFile(PChar(ORIG), PChar(DEST), true);
result := true;
finally
FreeAndNil(pTemp);
end;
except
FreeAndNil(pTemp);
result := false;
end;
end;
terça-feira, 9 de julho de 2019
Modelo de uma thread Delphi XE
var
vThread: TThread;
begin
vThread := TThread.CreateAnonymousThread(procedure ()
var
VReturnVersaoApp: string;
VTestConnection: Boolean;
begin
TThread.Synchronize (TThread.CurrentThread,
procedure ()
begin
end);
end);
vThread.FreeOnTerminate := True;
vThread.Start();
segunda-feira, 8 de julho de 2019
Obter o nome da pasta onde esta o executavel
Para obter a pasta onde esta o executável Delphi
Function ObterNomePastaExecutavel;
begin
Result := ExtractFilePath(ParamStr(0));
end;
Function ObterNomePastaExecutavel;
begin
Result := ExtractFilePath(ParamStr(0));
end;
quarta-feira, 3 de julho de 2019
MD5 com Indy
A função/método abaixo dá um exemplo de como implementar MD5:
Inclua na seção "USES" a unit "IdHashMessageDigest"
//uses
//IdHashMessageDigest;
function MD5(const texto:string):string;
var
idmd5 : TIdHashMessageDigest5;
begin
idmd5 := TIdHashMessageDigest5.Create;
try
result := idmd5.HashStringAsHex(texto);
finally
idmd5.Free;
end;
end;
Para criptografar um arquivo inteiro use a função abaixo.
function MD5(const fileName : string) : string;
var
idmd5 : TIdHashMessageDigest5;
fs : TFileStream;
begin
idmd5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
try
result := idmd5.HashStreamAsHex(fs);
finally
fs.Free;
idmd5.Free;
end;
end;
para usar a função basta chama-la passando o caminho completo do arquivo que queremos criptografar, ela
retornará o hash desse arquivo.
Inclua na seção "USES" a unit "IdHashMessageDigest"
//uses
//IdHashMessageDigest;
function MD5(const texto:string):string;
var
idmd5 : TIdHashMessageDigest5;
begin
idmd5 := TIdHashMessageDigest5.Create;
try
result := idmd5.HashStringAsHex(texto);
finally
idmd5.Free;
end;
end;
Para criptografar um arquivo inteiro use a função abaixo.
function MD5(const fileName : string) : string;
var
idmd5 : TIdHashMessageDigest5;
fs : TFileStream;
begin
idmd5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
try
result := idmd5.HashStreamAsHex(fs);
finally
fs.Free;
idmd5.Free;
end;
end;
para usar a função basta chama-la passando o caminho completo do arquivo que queremos criptografar, ela
retornará o hash desse arquivo.
Assinar:
Postagens (Atom)