ADSENSE

ADSENSE

sábado, 16 de outubro de 2010

Converte a primeira letra em maiúscula

Coloque o código no envento onKeyPress de um Edit.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin
       with Sender as TEdit do
            if (SelStart = 0) or (Text[SelStart] = ‘ ‘) then
                 if Key in [‘a’..’z’] then Key := UpCase(Key);end;

Function IncAno

Incrementa e retorna a data do parâmetro Data com a qunatidade de anos do parâmetro valor.


function IncAno(Data: TDate; Valor: integer):TDate;var A,M,D: Word;begin
       DecoDeDate(Data,A,M,D);
       A:=A+Valor;
       Result:=StrToDate(FormatFloat('00/',D)+FormatFloat('00/',M)+IntToStr(A));
end;


Usando:
procedure TForm1.BitBtn27Click(Sender: TObject);begin
        ShowMessage('Ano : '+DateToStr(IncAno(StrToDate(Edit2.Text),1)));
end;

Function HoraToSegundos

Converte hora no formato (HH:MM) para segundos.


function HoraToSegundos(Hora:TTime):integer;var h,m,s,ms: Word;begin
       DecoDeTime(Hora,h,m,s,ms);
       Result:=((h*60)*60)+(m*60)+s;
end;


Usando:
procedure TForm1.BitBtn26Click(Sender: TObject);begin
       ShowMessage(IntToStr(HoraToSegundos(StrToTime(Edit2.Text))));
end;

Function HoraToMinuto

Converte hora no formato (HH:MM) para minutos.


function HoraToMinuto(Hora:TTime):integer;var h,m,s,ms: Word;begin
       DecoDeTime(Hora,h,m,s,ms);
       Result:=(h*60)+m;
end;


Usando:
procedure TForm1.BitBtn26Click(Sender: TObject);begin
       ShowMessage(IntToStr(HoraToMinuto(StrToTime(Edit2.Text))));
end;



Function FirstChar

Retorna o primeiro caractere da string passada ao parâmetro S.


function FirstChar(S:String):String;begin
       Result:=copy(S,1,1);
end;


Usando :
procedure TForm1.BitBtn25Click(Sender: TObject);begin
       ShowMessage(FirstChar(Edit2.Text));
end;

Function DiasNoMes

Retorna a quantidade de dias pertinentes ao mês da data passado no parâmetro Data. Esta função usa a função IsLeapYear para saber se o ano é bissexto.

function DiasNoMes(Data:TDate):integer;var Y,M,D : Word; Dias : integer;
begin
       Dias:=0;
       DecoDeDate(Data,Y,M,D);
       //Especificando o número de dias de cada mes
       if  M = 1 then Dias:=31;      
       if M = 2 then begin
             if IsLeapYear (Y) then   Dias:=29 else  Dias:=28;       
       end;      
       if M = 3 then Dias :=31;       
       if M = 4 then Dias :=30;      
       if M = 5 then Dias :=31;       
       if M = 6 then Dias :=30;       
       if M = 7 then Dias :=31;       
       if M = 8 then Dias :=31;       
       if M = 9 then Dias :=30;       
       if M = 10 then Dias :=31;      
       if M = 11 then Dias :=30;       
       if M = 12 then Dias :=31;       //Retornando o número do mês especificado
       Result:=Dias;

end;

Procedure AjustaFormulário

Ajusta o formulário para a resolução de vídeo especificada pelo parâmetro tamanho, onde 800 indica uma resolução de 800x600 pixels, 640 indica uma resolução de 640x480 e assim por diante. Este procedimento deverá ser utilizado no evento onCreate. O procedimento poderá ser declarado no Seção Public do Formulário principal para que todo o Sistema a utilize.
public
       procedure AjustaFormulario(Formulario:TForm; Const Tamanho:integer = 800);
end;
var
Form1: TForm1;



implementation


procedure TForm1.AjustaFormulario(Formulario:TForm; Const Tamanho:integer = 800);var Escala : Double; Porc : integer;//Vai dar o percentual inteiro
begin
       with Formulario do begin
            if  Tamanho <> Screen.Width  then begin
                 //Recebendo o percentual de escalar
                 Escala:=((Screen.Width-Tamanho)/Tamanho);
                 //Recebendo o percentual de escalar em inteiro
                 Porc:=Round((Escala*100)+100);
                 Self.Width:=Round(Self.Width*(Escala+1));
                 Self.height:=Round((Self.height*(Escala+1)));
                 //Realizando o ajuste do form
                 Self.changeScale(Porc,100);
          
            end;       
       end;
end;

Function QuotedStr

Uses Unit SysUtils
A função QuotedStr retorna a string do parâmetro com apóstrofo (') no início e fianal. Se a string passada for em branco, a função retorna dois apóstrofos ('').

Sintaxe da sua utilização:
QuotedStr('Texto');

Ex:
procedure TForm1.Button14Click(Sender: TObject);
begin
       ShowMessage(QuotedStr('Márcio Edésio Simão'));

end;

Function IsLeapYear

Uses Unit SysUtils
A função IsLeapYear retorna true se o ano passado ao parâmetro for bissexto, caso contrário retorna false;

Sintaxe da sua utilização:
IsLeapYear(Ano);

Ex:
procedure TForm1.Button14Click(Sender: TObject);
begin
       if isLeapYear(2006) then Showmessage('Bissexto')  else Showmessage('Não');
end;

Function IncMonth

Uses Unit SysUtils
A função IncMonth retorna um valor do tipo TDateTime com o incremento de um determinado número de meses.

Sintaxe da sua utilização:
IncMonth(Data,Número_de_meses);

Ex:
procedure TForm1.Button14Click(Sender: TObject);var Data : TDateTime;begin
       Data:=IncMonth(date,3);
// A variavel Data recebe a data atual mais o número de meses (3)
       Showmessage(DateToStr(Data));
end;

Function GetCurrentDir

Uses Unit SysUtils
A função GetCurrentDir retorna o nome do diretório atual.

Sintaxe da sua utilização:
GetCurrentDir;

Ex:
procedure TForm1.Button14Click(Sender: TObject);begin
       ShowMessage(GetCurrentDir);
end;

Function ExtractFilePath

Uses Unit SysUtils
A função ExtractFilePath retorna uma string com o path do arquivo passado com parâmetro.
ExtractFileName retorna o nome do arquivo.

Sintaxe da sua utilização:
ExtractFilePath('Nome_do_arquivo');
ExtractFileName('Nome_do_arquivo');

Ex:
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       ShowMessage(ExtractFilePath(Application.ExeName));
end;

Function ExpandFileName

Uses Unit SysUtils
A função ExpandFileName retorna uma string com o path do executável mais o nome do arquivo passado como parâmetro, sem verificar se o arquivo existe ou não.

Sintaxe da sua utilização:
ExpandFileName('Nome_do_arquivo');

Ex:
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       ShowMessage(ExpandFileName('Márcio'));
end;

Function ExcludeTrailingBackslash

Uses Unit SysUtils
A função ExcludeTrilingBackslash retorna uma cópia da string passada como parâmetro sem o caractere '\'.Esta função é utilizada quando se trabalha com endereços de pastas e arquivos.

Sintaxe da sua utilização:
ExcludeTrilingBackslash('nome_da_pasta');

Ex:
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       ShowMessage(ExcludeTrailingBackslash('C:\CtrlSys\Procedimentos_Funções\'));
end;

Function DayOfWeek

Uses Unit SysUtils
A função DayOfWeek retorna o dia da semana da data passada como parâmetro.Ex.: Domingo(1), Segunda(2),etc.

Sintaxe da sua utilização:
DayOfWeek(Data);

Ex:
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       ShowMessage(IntToStr(DayOfWeek(Date)));
end;

Function CreateDir

Uses Unit SysUtils
A função CreateDir cria um novo diretório e retorna True se o diretório puder ser criado com sucesso, caso contrário, retorna false.

Sintaxe da sua utilização:
CreateDir('Nome_do_diretório');

Ex::
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       CreateDir('Márcio');
end;

Function AnsiStrLastChar

Uses Unit SysUtils
A função AnsiStrLastChar retorna o último caractere de string do tipo Pchar passada como parâmetro.

Sintaxe da sua utilização:
AnsiStrLastChar(Pchar(Texto));

Ex:
procedure TForm1.BitBtn12Click(Sender: TObject);begin
       ShowMessage(AnsiStrLastChar(PChar('Márcio\')));
//Retorna \
end;

Function AnsiLowerCase

Uses Unit SysUtils
A função AnsiLowerCase retorna uma String com caracteres minúsculos.

Sintaxe da sua utilização:
AnsiLowerCase(Texto);

Ex:
procedure TForm1.Button24Click(Sender: TObject);begin
       label1.Caption:= AnsiLowerCase('MÁRCIO');
//retorna letras minusculas
end;

Function AnsiPos

Uses Unit SysUtils
A função AnsiPos retorna a posição de um determinado caractere de uma String.

Sintaxe da sua utilização:
AnsiPos(Caractere_a_ser_localizado,Texto);
Ex:

procedure TForm1.Button25Click(Sender: TObject);begin
       label1.Caption:=IntToStr(AnsiPos('r','marcio')); //Localiza num texto a letra
end;

sexta-feira, 15 de outubro de 2010

Function Random

uses Unit System
A função Random gera números aleatórios dentro de um intervalo especificado. ou seja, 0<=X< Intervalo.

Sintaxe da sua utilização:
Random(Valor);

Ex:
procedure TForm1.Button22Click(Sender: TObject);begin
       label1.Caption:=IntToStr(Random(50));
//Retorna números aleatórios
end;

Function Pred

use Unit System
A função Pred  retorna o antecessor de um argumento.

Sintaxe da sua utilização:
Pred(Argumento);

Ex:
procedure TForm1.Button21Click(Sender: TObject);begin
       label1.Caption:=IntToStr(Pred(15));
end;

Function Pos

uses Unit System
A função Pos retorna a posição da primeira ocorrência da substring do parâmetro Substr dentro da String do parâmetro S.

Sintaxe da sua utilização:
Pos(SubString,Texto);

Ex:
procedure TForm1.BitBtn9Click(Sender: TObject);begin
       Label1.Caption:=IntToStr(Pos('voce', 'Eu adoro voce'));
//Retornar a posição da letra ou palavra numa string
end;

Function Int

use Unit System
A função Int retorna a parte inteira de uma número real, desprezando os números decimais.

Sintaxe da sua utilização:
Int(Valor);

Ex:
procedure TForm1.BitBtn8Click(Sender: TObject);var Vl : Real;begin
        VL:=Int(13.44);
        label7.Caption:=FloatToStr(Vl);
end;

Function Abs

Uses Unit System
A função Abs converte o valor do parâmetro em um valor absoluto, ou seja, um número positivo.

Sintaxe da sua utilização:
Abs(Valor);

Ex:
procedure TForm1.Button19Click(Sender: TObject);var Vl : integer;begin
       Vl:=Abs(-15);
//Converte valores negativos para positivo
        label6.Caption:=IntToStr(Vl);
end;

Function Min

Uses Unit FileCtrl

A função Min retorna o menor de dois valores.

Sintaxe da sua utilização:
Min(Valor_A,Valor_B);

Ex:
procedure TForm1.Button18Click(Sender: TObject);begin
       Label5.Caption:=IntToStr( Min(15,12));
//Retorna o menor valor
end;

Function Max

uses Unit FileCtrl
A função Max retorna o maior valor de dois valores.

Sintaxe da sua utilização:
Max('Valor_A,Valor_B');

Ex:
procedure TForm1.Button17Click(Sender: TObject);begin
       Label4.Caption:=IntToStr( Max(15,12));
//Retorna o maior valor
end;

Function Floor

uses Unit Math
A função floor retorna um menor número inteiro mais próximo ao número passado ao parâmetro.

Sintaxe da sua utilização:
Floor(Valor);

Ex:
procedure TForm1.Button16Click(Sender: TObject);begin
       label1.Caption:= IntToStr(Floor(3.5));
//Retorna o valor inteiro mais próximo
end;

Function Ceil

Uses Unit Math
A função Ceil retorna o mais próximo número inteiro maior que o número passado como parâmetro.

Sintaxe da sua utilização:
Ceil(Valor);

Ex:
procedure TForm1.Button15Click(Sender: TObject);begin
       Label1.Caption:=IntToStr(Ceil(15.3));
//Passa o próximo valor inteiro
end;

Function SelectDirectory

 Uses Unit FileCtrl

A função SelectDirectory exibe uma caixa de diálogo que permite que o usuário se posicione num determinado diretório nas unidades de drives locais ou em alguma pasta na rede. Em seguida, a função retorna ao diretório em que o usuário se posicionou.

Sintaxe da sua utilização:
SelectDirectory('Váriavel_que_receberá_o_diretório_posicionado',[Opções],Help_context);

Ex:
procedure TForm1.Button14Click(Sender: TObject);var Dir: string;begin
       Dir := 'C:\Teste';
       if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],0) then
             Label1.Caption := Dir;
end;

Function ForceDirectories

Uses Unit FileCtrl

A função ForceDirectories cria todos os diretórios passados ao parâmetro Dir se os mesmos ainda não existirem. Por exemplo, se você passar para o parâmetro Dir os seguintes diretórios: 'C:\Teste1\Teste2\Teste3\Teste4', então serão criados todos estes diretórios, ou melhor, se estes diretórios ainda não existirem.

Sintaxe da sua utilização:
ForceDirectories('Nome_do_diretório');

Ex:
procedure TForm1.Button13Click(Sender: TObject);begin
       ForceDirectories('C:\Teste\Teste1\Teste2');
end;

Function DirectoryExists

Uses Unit FileCtrl
A função DirectoryExists certifica se o diretório passado ao parâmetro Name existe. Se o diretório existir, a função retorna True, caso contrário, retorna False.

Sintaxe da sua utilização:
DirectoryExists(Nome_do_diretório );

Ex:
procedure TForm1.Button12Click(Sender: TObject);begin
       if DirectoryExists('C:\CtrlSys\Utilitários') then begin      
              ShowMessage('True');
       end else
              ShowMessage('False');
end;

Function MessageDlgPos

Uses Unit Dialogs
A função MessageDlgPos exibe uma caixa de diálogo que permite saber em qual botão o usuário clicou e permite também que você escolha o posicionamento da caixa de diálogo na tela.

Sintaxe da sua utilização:
MessageDlgPos('Mensagem',Tipo_da_caixa_de_diálogo,Botões,HelpCtx,Coordenada_X,Coordenada_Y);

Ex:
procedure TForm1.Button11Click(Sender: TObject);
begin
      MessageDlgPos('Você Já fez a primeira parte?',mtConfirmation, mbYesNoCancel, 0, 200, 200);
end;

Function MessageDlg

uses Unit Dialogs

A função MessageDlg exibe uma caixa de diálogo no centro da tela e permite saber em qual botão o usário clicou.

O valor retornado será o botão que o usuário clicou. Entre os valores possíveis estão : mrNone, mrAbort, mrYes, mrNo, mrRetry, mrOk, mrCancel, mrIgnore, mrAll.

Tipo de Caixa de diálogo : mtWarning, mtError, mtInformation, mtConfirmation, mtCustom.

Sintaxe da sua utilização:
MessageDlg('Mensagem',Tipo_da_caixa_de_dialogo,botões,HelpCtx);

Ex:
procedure TForm1.BitBt2Click(Sender: TObject);
begin
       MessageDlg('Erro na operação', mtError, [mbOk], 0);
end;

Function InputBox

uses Unit Dialogs

A função InputBox exibe uma caixa de diálogo com dois botões (OK e CANCEL), juntamente com uma caixa de texto para que o usuário entre com alguma informação.O valor retornado pela função será o texto digitado na caixa de texto, isso se o usuário clicar no botão OK.
Sintaxe da sua utilização:

InputBox('Título_da_caixa_de_diálogo','mensagem_da_caixa_de_texto','conteúdo_da_caixa_de_texto');

Ex:
procedure TForm1.Button10Click(Sender: TObject);
var nome_completo :string;
begin
       InputBox('Nome','Digite seu nome','nome_completo');
       ShowMessage(nome_completo);
end;

terça-feira, 5 de outubro de 2010

Utilização de datas no MySQL

Aposto que muitos programadores já tiveram problema para lidar com datas em SGDB, pensando nisso estou publicando este artigo que achei na internet não sei qual é o criador, mas foi de grande utilidade quando comecei a  programar.

Segue abaixo o artigo .

O artigo abaixo tem como objetivo  facilitar o entendimento do manuseio de datas dentro dos padrões brasileiros, um dos maiores problemas na manipulação de dados. Para isso tomamos como base o SGBD MySQL 5.


Para manipularmos dados do tipo DATA, podemos definir a coluna como DATE, DATETIME ou TIMESTAMP, sendo que suas principais características são:

# DATE                           esta no formato AAAA-MM-DD
# DATETIME                 esta no formato AAAA-MM-DD HH:MM:SS
# TIMESTAMP              esta no formato AAAAMMDDHHMMSS

Apesar das datas do tipo DATETIME e TIMESTAMP utilizarem hora, minuto e segundo, podemos utilizar seu conteúdo somente com a data. Para isso, utiliza-se a função DATE_FORMAT(date,format), que transforma a data apresentada para o formato desejado. Também podemos utilizar essa função para colocar qualquer tipo de data no formato mais adequado para nossa aplicação, como por exemplo no formato "DD/MM/AAAA".

As datas são armazenadas no formato norte-americano e, para obtermos o resultado no formato Brasileiro, devemos utilizar a função acima:

Ex: se for necessário apresentar a data de uma determinada transação no formato
"DD/MM/AAAA" deve-se fazer o comando de seleção com a seguinte sintaxe:

SELECT DATE_FORMAT(nome_da_coluna_com_a_data, '%d/%m/%Y')
FROM nome_da_tabela;

Atenção especial deve ser dada às colunas definidas como "TIMESTAMP", pois nelas ficam depositados data e horário de atualização da linha na tabela, isto é: quando é feita uma mudança em qualquer dado de uma linha da tabela o dado da coluna definida como TIMESTAMP é atualizado com o momento atual.

Para melhor entender o uso dos tipos de data no MySQL, apresentamos a seguir comandos que demonstram o resultado de datas formatadas:

SELECT * FROM FORMATODATA;
SELECT DATE_FORMAT(DT_DateTime, '%d/%m/%Y') as 'DATETIME',
DATE_FORMAT(DT_Date, '%d/%m/%Y') as 'DATE',
DATE_FORMAT(DT_Timestamp, '%d/%m/%Y') as 'TIMESTAMP'
FROM FORMATODATA;

Para fazermos uso da data atual, devemos utilizar a função CURDATE(), que retornará a data corrente no formato AAAA-MM-DD e se necessitarmos a data no formato AAAAMMDD utlizamos a função CURDATE() + 0.
Ex.|
SELECT CURDATE(), CURDATE + 0;

Para obtermos a diferença de dias entre duas datas, utilizamos a função DATADIFF(data1, data2).
Ex.|
SELECT DATEDIFF('2007-10-30 23:59:59','2007-12-31')

Para somarmos dias a uma data, utilizamos a função DATE_ADD(date,INTERVAL exprtype).
Ex.|
SELECT DATE_ADD('2005-12-31 23:59:59', INTERVAL 1 DAY);

Para subtrairmos dias a uma data, utilizamos a função SUBDATE (date,INTERVAL exprtype).
Ex.|
SELECT SUBDATE('2005-12-31 23:59:59', INTERVAL 5 DAY);

Para obtermos o dia da semana, utilizamos a função DAYOFWEEK(date).
Ex.|
SELECT DAYOFWEEK('1998-02-03');

Para obtermos o dia do ano utilizamos a função DAYOFYEAR(date).
Ex.|
SELECT DAYOFYEAR(CURDATE());

Para obtermos o momento atual, utilizamos a função NOW() ou SYSDATE().
Ex.|
SELECT NOW(), SYSDATE();