sábado, 2 de maio de 2009

Dicas Delphi - Obtendo o Último Dia Útil caso a data informada caia em um fim de semana

Function DiaUtilAnterior (dData : TDateTime) : TDateTime;
begin
if DayOfWeek(dData) = 7 then
dData := dData - 1
else if DayOfWeek(dData) = 1 then
dData := dData - 2;

DiaUtilAnterior := dData;


end;

Dicas Delphi - Fazendo Cálculo de Horas

procedure TForm3.Button5Click(Sender: TObject);
var
hora1: TDateTime;
hora2: TDateTime;
total: TDateTime;
begin
hora1 := StrToTime(Edit1.Text);
hora2 := StrToTime(Edit2.Text);
total := Hora2 - Hora1;
Label1.Caption := FormatDateTime('hh:nn:ss',total);
end;

Dicas Delphi - Verificando se uma data informada cai em um final de semana

Function IsWeekEnd (dData : TDateTime) : boolean;
begin
result := false;
if (DayOfWeek(dData) = 1) or (DayOfWeek(dData) = 7) Then
result := true;
end;

Dicas Delphi - Verificando Ano Bixesto

// Verifica se um ano é bixesto, retornando True em caso positivo}

function AnoBis(Data: TDateTime): Boolean;
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;

Dicas Delphi - Acertando a Data e Hora do Sistema

procedure TForm1.Button1Click(Sender: TObject);
var
DataHora: TSystemTime;
Data, Hora: TDateTime;
Ano, Mes, Dia,
H, M, S, Mil: word;
begin
Data := StrToDate(Edit1.Text);
Hora := StrToTime(Edit2.Text);
DecodeDate(Data, Ano, Mes, Dia);
DecodeTime(Hora, H, M, S, Mil);
with DataHora do
begin
wYear := Ano;
wMonth := Mes;
wDay := Dia;
wHour := H;
wMinute := M;
wSecond := S;
wMilliseconds := Mil;
end;
SetLocalTime(DataHora);
end;

No Edit1 digite a nova data e no Edit2 digite a nova hora.

Dicas Delphi - Teclas de Função [F1, F2, F3...]

Mude a propriedade KeyPreview do Form para True

procedure Tform1.FormKeyDown(Sender:TObject; var Key: Word; Shift: TShifState);
begin
if key = vk_F1 Then
{comando desejado}
end;

Dicas Delphi - Enter funcionar com Tab

Para fazer a tecla Enter funcionar como Tab é um processo de 3 passos:

1) Setar a propriedade KeyPreview da Form para True

2) Setar a propriedade Default de todos os botões da Form para False

3) Criar um evento OnKeyPress para a Form como este:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
Perform(Wm_NextDlgCtl,0,0);
end;
end;