Comandos

Close
Fecha o formulário

Exit
Sai de um bloco begin... end
Exemplo:
if txtNumero1.Text = '' then
  begin
    txtNumero1.SetFocus
    exit;
  end;

Date: Mostra a data atual do sistema
Time: Mostra a hora atual do sistema
Para exibir tanto a data quanto a hora, você precisa utilizar funções de conversão, que estão detalhadas abaixo.
Se você não colocar o exit, e existir codificação abaixo do end, o delphi continuará executando as linhas abaixo do mesmo, podendo gerar erros.

Funções
As funções abaixo, são para conversão de string para número e vice-versa.
Quando você coloca Label, Edit no formulário, estes são String. Para efetuar um cálculo, há a necessidade de converter para número.
strToint: Converte uma string para número inteiro
Exemplo: Numero1:=strToint(txtNota1.Text);
intTostr: Converte um número inteiro para string
Exemplo: txtNota1.Text:=intTostr(Numero1);
floatTostr: Converte um número com ponto flutuante (aceita casas decimais) para string:
Exemplo: txtNota1.Text:=floatTostr(Nota1);
strTofloat: Converte uma string para número com ponto flutuante.
Exemplo: Nota1:=strTofloat(txtNota1.Text);

dateTostr: Converte uma data para string.
Exemplo: txtData.text := dateTostr(Date);

timeTostr: Converte uma hora para string.
Exemplo: txtHora.Text := timeTostr(Time);

Length
Permite extrair a quantidade de caracteres de uma string.
Exemplo:
var Quantidade: Integer; //declara a variável como número inteiro
begin
Quantidade:=length(txtNome.Text);
txtMensagem.Text := 'O nome tem ' + intTostr(Quantidade) + ' caracteres';
end;

Int
Retorna a parte inteira de um número.
Exemplo:
txtResultado.Text := int(txtNumero.Text);
Se na caixa de textos txtNumero.Text, o número digitado for 5.99, será retornado 5.

Round
Retorna um valor inteiro arredondado de um tipo de dados real (possui casas decimais).
Exemplo:
txtResultado.Text := round(txtNumero.Text);
Se na caixa de textos txtNumero.Text, o número digitado for 3.20, o valor do arrendondamento  será 3 ou
Se na caixa de textos txtNumero.Text, o número digitado for 3.55, o valor do arrendondamento  será 4, obedecendo a regra de matemática.

Sqrt
Retorna a raiz quadrada de um número
Exemplo:
txtResultado.Text := Sqrt(txtRaiz.Text);
Retornará por exemplo 8 se a raiz digitada for 64.

AnsiLowerCase
Converte todos os caracteres de uma string para minúsculas.
Exemplo:
txtEmail.Text := AnsiLowerCase(txtEmail.Text);
Se foi digitado por exemplo: Alguem@Provedor.com.br será retornado: alguem@provedor.com.br

AnsiUpperCase
Converte todos os caracteres de uma string para maiúsculas.
Exemplo:
txtUF.Text := AnsiUpperCase(txtUF.Text);
Se foi digitado por exemplo: Sp, será retornado: SP.

Copy
Extrai uma sub-string de uma string
Exemplo:
txtResultado.Text := Copy(txtNome.Text,1,3)
Se por exemplo na caixa de textos nome, foi digitado Fernanda, será retornado Fer, pois a string em 1 e pega 3 posições.

Trim
Retira caracteres em branco e caracteres de controle que existem em uma string, à esquerda ou à direita.
Exemplo:
txtResultado.Text:= Trim(txtInformacao.Text);
Se na caixa txtNome.Text, estiver a seguinte string: '  Pressione a tecla Esc   ' --> com a instrução Trim, ficará assim: 'Pressione a tecla Esc'

DayOfWeek
Exibe o número, indicando o dia atual da semana, de 1 a 7, sendo 1 = Domingo e 7= Sábado.
Exemplo:
txtDia.Text:= DayOfWeek(txtData.Text);

DecoDeDate
Permite extrair a partir de uma data: o dia, mês e o ano.
Exemplo:
var dia,mes,ano:word; //variável tipo Word
begin
  DecodeDate(strTodate(txtData.Text), wAno, wMes, wDia);
  txtDia.Text:= wDia;
  txtMes.Text:= wMes;
  txtAno.Text:= wAno;
end;

DecoDeTime
Permite extrair de uma hora: horas, minutos, segundos e milésimos.
Exemplo:
var wHora, wMinuto, wSegundo:word;
begin
  DecoDeTime(strToTime(txtHora.Text(wHora, wMinuto, wSegundo);
  txtHora.Text:= wHora;
  txtMinuto.Text:= wMinuto;
  txtSegundo.Text:= wSegundo;
end;

Try... Except...
O sistema tentará (try) executar as instruções que foram definidas, senão será exibido um erro (except).
Exemplo:
try
  strTofloat(txtNota1.Text)
Except
  On EConvertError do
  begin
    ShowMessage('Digite uma Nota Válida');
    txtNota1.SetFocus;
    exit;
  end;
end;

Utilização da Tecla Enter
No evento onKeyPress
if key = #13 then  {Se a tecla pressionada for o Enter}
   begin
     key := #0;   {Desabilita o beep}
     edit2.Text :='Teste';
     edit2.setfocus;
   end;
end;

Formatar valores tipo moeda - Função FormatFloat - Exemplo 1
var Valor1, Valor2: Real;
begin
  Valor1 := strToFloat(txtValor1.Text);
  Valor2 := strToFloat(txtValor2.Text);
  lblResultado.Color := clBlue;
  lblResultado.Font.Color := clYellow;
  lblResultado.Font.Size := 12; 
  lblResultado.Caption := FormatFloat('##,##0.00', Valor1 + Valor2)
end;
Resultado: Se você digitar 10, será exibido 10,00. O ponto decimal é convertido para vírgula e o símbolo de sustenido, suprime zeros a esquerda.

Formatar valores tipo moeda - FloatToStrF - Exemplo 2
procedure TForm1.cmdOKClick(Sender: TObject);
begin
txtResultado.Text := FloatTostrF(strTofloat(txtValor.Text), ffCurrency,7,2);
end;
Resultado: Se você digitar 10, será exibido R$ 10,00. ffCurrency coloca o símbolo da moeda, 7 é a precisão (ou seja: se você colocar 5 como precisão e digitar por exemplo: 150000, será apresentado erro) e 2 é o número de casas decimais.

Como interceptar as teclas de função:
 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
 begin
    if Key = VK_F5 then
       ShowMessage('Você pressionou a F5');
 end;
 { pode ser usado da VK_F1 a VK_F12 }


Rotina para aceitar só caracteres alfabéticos
procedure TForm1.txtValor2KeyPress(Sender: TObject; var Key: Char);
begin
if (key >= #65) and (key <= #90) or (key >= #97)  and (key <= #122) then
   begin
     exit;
   end
    else
      key := #0;
end;

Rotina para Executar um programa externo / Acionar a Seta para baixo
procedure TForm1.txtValor1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
IF KEY = vk_Down THEN txtValor2.SetFocus;  //Aciona a Seta para baixo
if KEY = VK_F10 then  //Aciona a tecla F10
   begin
      WinExec('Calc.Exe', SW_ShowNormal);
   end;
end;


Rotina para aceitar só números
procedure TForm1.txtValor1KeyPress(Sender: TObject; var Key: Char);
begin
if (key >= #48) and (key < #58) or (key = #46) or (key = #44)
   or (key = #8) then
    begin
    exit;
    end
    else
      key := #0;
   end;
end;
//48 a 57 - números de 0 a 9
//44 - virgula
//46 - ponto
//8 - backspace

Outra forma que permite somente digitar números, ponto e a vírgula
No evento onKeyPress, digite o código abaixo:
if not (Key in ['0'..'9', ',', '.', #8]) then // #8 para não bloquear backspace
  Key := #0;
Por exemplo: se não for digitado números de 0 a 9, a vírgula, o ponto e a tecla Backspace, qualquer outra tecla é inválida (Key :=#0;)

Utilização da tecla Enter e as setas para movimentar nas caixas de texto
Selecione o formulário e no evento onKeyDown, coloque o código abaixo:
  Case Key of
    VK_UP : Perform(WM_NEXTDLGCTL,1,0); //Permite utilizar a seta para cima
    VK_DOWN, VK_RETURN: Perform(WM_NEXTDLGCTL,0,0); //Permite utilizar a seta
                                                   //para baixo e a tecla ENTER
  end;

No evento onKeyPress:
  if Key = #13 then key :=#0;  //Evita o beep no altofalante

Instrução IF...Then
Permite colocar condições na codificação.
Exemplo:
if txtSexo.Text = 'M' then
  txtResultado.Text := 'Masculino'
else
  txtResultado.Text := 'Feminino'

ou
if txtSexo.Text <> 'M' and txtSexo.Text <> 'F' then
  begin  
    ShowMessage('Sexo Inválido');
    txtSexo.SetFocus;
    exit; //não executa as codificações abaixo do end;
  end;

Neste último caso, como o if possui mais de uma instrução, é necessário a instrução de outro bloco begin...end

Formulários
Para carregar formulários, existem dois métodos:
frmNumero.Show //Carrega o formulário, permitindo acessar o anterior ou mesmo voltar para o atual. Este método permite ter vários formulários abertos e alternar entre eles. Deve ser observado é que, será consumido muita memória, o fato de termos vários formulários.

frmNumero.ShowModal //Carrega o formulário, sendo que para acessar outro formulário, o atual deverá ser fechado.
ObservaçÃO: Tanto no método Show ou ShowModal, na primeira vez que você for carregar o formulário, será exibido a mensagem se você deseja adicionar o mesmo, pois caso contrário ele não será exibido.

frmNumero.Hide //Esconde o formulário atual.

Criando formulários
Quando desenvolvemos sistemas em Delphi, é comum percebermos a lentidão em seu carregamento. Isto deve-se ao fato de o Delphi, criar todos os formulários para a memória quando da carga do sistema. Para resolver, podemos criar somente quando os mesmos for exibidos.
Entre no Menu Project / Options.
Supondo que exista o frmMenu e o frmCadastro na primeira parte Auto-create Forms.
Clique no frmCadastro e clique no segundo botão >.
Ele será colocado ao lado em Avaliable forms.
Se você tentar rodar o projeto, e tentar carregar o formulário frmCadastro, será apresentado já que o mesmo não foi criado ainda.
Para resolver, faça o seguinte:
Antes da linha que carrega o formulário, coloque assim:
Application.CreateForm(TfrmCadastro, frmCadastro);
frmCadastro.Show;

Destruindo Formulários
Quando o usuário fechar o formulário, o formulário criado pelo método acima, deverá ser destruído, liberando a memória.
No evento onClose, coloque a instrução abaixo:
frmCadastro.Release;

Exibindo Caixa de Mensagens
MessageDlg(Mensagem, Tipo, [Botões], ContextoAjuda);
Exemplo:
MessageDlg('Fim de Processo', mtInformation,[mbOK],0); 
//mtInformation exibe o ícone de informação
//mbOK será exibido o botão de OK
//0 é porquê não existe nenhuma referência ao help (um número de 1 a n);

if MessageDlg('Confirma ', mtConfirmation,[mbYes,mbNo],0) = mrNo then
  begin
    txtCodigo.SetFocus;
    exit;
  end;
//mtConfirmation exibe o ícone de interrogação
//mbYes e mbNo exibe os botÕes Yes e Não
//0 é porquê não existe nenhuma referência ao help (um número de 1 a n);
//mrNo estamos progamando caso o usuário escolha não então

InputBox
Permite que o usuário entre com uma informação e escolha entre os botões OK e Cancelar.
Exemplo:
var Cep: string;
begin
  Cep := InputBox('Informe o CEP','CEp para busca',''); //Nos últimos apóstofos podemos colocar um CEP padrão.
end;

    Source: geocities.com/br/edsondavidp/apostilas

               ( geocities.com/br/edsondavidp)                   ( geocities.com/br)