Sempre que precisar achar o ultimo dia util, basta utilizar essa função abaixo, sendo que também tem um exemplo de como chamar a mesma.
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
{ Edit1.Text = Onde irá receber o ultimo dia util
DataEdit1.Text = A data que foi informada }
Edit1.Text := DateToStr(Retorna_DiaUtilAnterior(StrToDate(DateEdit1.Text)));
end;
Function TForm1.Retorna_DiaUtilAnterior(dData : TDateTime) : TDateTime;
begin
dData := IncDay(dData,-1);
if DayOfWeek(dData) = 7 then
begin
dData := dData - 1;
end
else
if DayOfWeek(dData) = 1 then
begin
dData := dData - 2;
end;
Result := dData;
end;
Marcadores: Programação - Delphi
Alterar o formato de data do windows DD/MM/YYYY na propria aplicação
0 comentários Postado por Márcio Henrique às 10:43{Provavelmente este problema não é um dos mais complexos a ser resolvido em uma aplicação Delphi, mas não é muito confortável ficar dependendo da versão do Windows,do idioma ou da configuração do Painel de Controle.
Para que a sua aplicação funcione bem,independente da torcida,implemente uma chamada ao procedimento abaixo, meses e dias serão ajustados para o português, data será DD/MM/AAAA o separador decimal será a virgula e separador de milhar será o ponto.}
{ No formulario principal no OnCreat chame a função }
procedure TFrm_Principal.FormCreate(Sender: TObject);
begin
AcertaPadraoData;
end;
procedure AcertaPadraoData;
const arrShortDayNames: array[1..7] of string[3] = ('Dom','Seg','Ter','Qua',
'Qui','Sex','Sab');
arrLongDayNames: array[1..7] of string[15] = ('Domingo','Segunda','Terça',
'Quarta','Quinta','Sexta', 'Sábado');
arrShortMonthNames: array[1..12] of string[3] = ('Jan','Fev','Mar','Abr',
'Mai','Jun','Jul','Ago','Set','Out','Nov','Dez');
arrLongMonthNames: array[1..12] of string[15] = ('Janeiro','Fevereiro',
'Março','Abril','Maio', 'Junho','Julho','Agosto', 'Setembro','Outubro',
'Novembro','Dezembro');
var
ii: integer;
begin
ShortDateFormat := 'dd/mm/yyyy';
DecimalSeparator := ','; {Separador Decimal}
ThousandSeparator := '.'; {Simbolo de Argumentos de Digitos (Milhar)}
DateSeparator := '/'; {Separador da data}
for ii := 1 to 7 do
begin
ShortDayNames[ii] := arrShortDayNames[ii];
LongDayNames[ii] := arrLongDayNames[ii];
end;
for ii := 1 to 12 do
begin
ShortMonthNames[ii] := arrShortMonthNames[ii];
LongMonthNames[ii] := arrLongMonthNames[ii];
end;
end;
Marcadores: Programação - Delphi
Apos eu sofrer muito, e buscar muito... Consegui a rotina em SQL que faz extração de dia mes ou ano em uma consulta.
pois o comando que todo mundo conhece do extract(month from vencimento) = 2 NÃO FUNCIONA EM BANCO DE DADOS ACCESS
AI SEGUE A ROTINA
ADOQuery1.Close; // Fecha a Conexão
ADOQuery1.SQL.Clear; // Limpa a SQL
ADOQuery1.SQL.Add('SELECT * FROM contas WHERE (((Month([vencimento]))=:var0)) and (((Year([vencimento]))=:var1));');
ADOQuery1.Parameters[0].Value := 7; // Inclui o mês no parametro (use como quiser)
ADOQuery1.Parameters[1].Value := 2009; // Inclui o Ano no parametro (use como quiser)
AdoQuery1.Open; // abre a conexão com os novos dados.
Então galera, espero ter ajudado e duvidas é só comentar.
Isso vai servir para bastante gente e serve para relatórios, controle de dados financeiro entre outros.
Abraços
Marcadores: Programação - Delphi
Esta dica usa a API do Windows especificamente e o mesmo processo que o internet explorer usa pra checar a conexão usando a função da Wininet.dll que vem com o internet explorer
// Definição da função InternetCheckConnection
{
BOOL InternetCheckConnection(
LPCTSTR lpszUrl,
DWORD dwFlags,
DWORD dwReserved
);
}
Importante: inclua no uses WinInet
if InternetCheckConnection('http://blogaodati.blogspot.com/', 1, 0) then
Edit1.text := 'Conectado'
else
Edit1.text := 'Desconectado';
Você pode obter mais detalhes no site do MSDN.
Marcadores: Programação - Delphi
Uma planilha em Excel também é uma fonte de dados para ser usado em Delphi. Neste exemplo mostrarei como pegar o conteúdo de uma planilha e jogar o conteúdo em um StringGrind, uma vez a informação no StringGrid você poderá gravar em uma tabela do banco, relatórios, etc.
Criando a planilha no ExcelCrie uma planilha simples no Excel, com a estrutura semelhante na Figura 1. Salve a planilha em uma nova pasta, como o nome "teste.xls". Se você possui o Office 2007 ou superior salve a planilha o tipo "Salvar pasta de trabalho do Excel 97-2003". Selecione toda a área de dados, inclusive os títulos das colunas, no caso da A1 até C4, e abra o menu Inserir Nome > Definir. Digite, por exemplo, "TABELAS" na opção Nomes da Pasta de Trabalho e clique em Adicionar.
Criando a aplicação em Delphi
Inicie um novo projeto no Delphi. Acrescente um ADOConnection, ADOQuery (ambos paleta ADO), Button (paleta Standard) e um StringGrid (paleta Additional), a estrutura deve ficar semelhante na Figura 2. No ADOConnection dê um duplo clique nele; na janela mostrada clique em Build para iniciar a construção de uma string de conexão. No assistente, escolha a opção Microsoft Jet OLE DB Provider e clique em Avançar. Na guia Conexão selecione a planilha criada anteriormente. Deixe as demais opções como os valores padrão e mude para a guia Todas, dê um clique duplo na opção Extended Properties e informe "Excel 8.0" na caixa exibida. Clique em Ok duas vezes para terminar de criar a string de conexão. Ainda no componente ADOConnection, configure a propriedade LoginPrompt para False, ligue o ADOQuery com ADOConnection através da propriedade Connection.Dê um duplo clique no botão, digite a seguinte linha de comando abaixo:
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM TABELAS');
Open;
while not eof do
begin
StringGrid1.Cells[0, StringGrid1.RowCount-1] := Fields[0].AsString;
StringGrid1.Cells[1, StringGrid1.RowCount-1] := Fields[1].AsString;
StringGrid1.Celss[2, StringGrid1.RowCount-1] := Fields[2].AsString;
StringGrid.RowCount := StringGrid.RowCount + 1;
next;
end;
StringGrid1.RowCount := StringGrid.RowCount - 1;
Close;
end;
end;
Marcadores: Programação - Delphi