Mostrando postagens com marcador Delphi. Mostrar todas as postagens
Mostrando postagens com marcador Delphi. Mostrar todas as postagens

terça-feira, 27 de agosto de 2013

Delphi - Máscara em Edites


Delphi - Máscara em Edit´s
Delphi - Caracteres usados nas máscaras dos Edit´s

! Faz com que a digitação da máscara fique parada no primeiro caracter, fazendo com que os caracteres digitados que se movam. Ex: !;0;_

> Todos os caracteres alfabéticos digitados após este símbolo serão convertidos para maiúsculos. Ex: >aaa;0;_

< Todos os caracteres alfabéticos digitados após este símbolo serão convertidos para minúsculos. Ex: <aaa;0;_

<> Anula o uso dos caracteres > e <. Ex: >aaa<>aaa;0;_

\ Utilizado para marcar determinado caractere não especial como fixo, não podendo sobrescrevê-lo. Ex: !\(999\)000-0000;0;_

L Caracteres alfabéticos (A-Z, a-z.) de preenchimento obrigatório. Ex: LLL;1;_

l (Letra ele minúscula) Caracteres alfabéticos (A-Z, a-z.) de preenchimento opcional. Ex: lll;1;_

A Caracteres alfanuméricos (A-Z, a-z, 0-9) de preenchimento obrigatório. Ex: AAA;1;_

a Caracteres alfanuméricos (A-Z, a-z, 0-9) de preenchimento opcional. Ex: aaa;1;_

C Exige preenchimento obrigatório com qualquer caractere para a posição. Ex: CCC;1;_

c Permite qualquer caractere para a posição de preenchimento opcional. Ex: ccc;1;_

0 Caracteres numéricos (0-9) de preenchimento obrigatório. Ex: 000;1;_

9 Caracteres numéricos (0-9) de preenchimento opcional. Ex: 999;1;_

# Caracteres numéricos (0-9) e os sinais de - ou + de preenchimento opcional. Ex: ###;1;_

: Utilizado como separador de horas, minutos e segundos. Ex: !00:00:00;1;_

/ Utilizado como separador de dia, mês e ano. Ex: !99/99/9999;1;_

; Separa os três campos da máscara.


_ Caractere usado normalmente nas posições do campo ainda não preenchidas.

Exportar para o Excel

Delphi - Exportar para o Excel
// Baseado num exemplo encontrado em:
// { http://www.swissdelphicenter.ch/torry/showcode.php?id=379 }
// Uses Windows, DB, Variants, ComObj, SysUtils;


function ExportarParaExcel(DataSet: TDataSet; xlOrientacao: Integer): Boolean;
   function RefToCell(RowID, ColID: Integer): String;
   var
     ACount, APos: Integer;
   begin
     ACount := ColID div 26;
     APos := ColID mod 26;
     if APos = 0 then
     begin
       ACount := ACount - 1;
       APos := 26;
     end;

     if ACount = 0 then
       Result := Chr(Ord('A') + ColID - 1) + IntToStr(RowID)
     else if ACount = 1 then
       Result := 'A' + Chr(Ord('A') + APos - 1) + IntToStr(RowID)
     else
       Result := Chr(Ord('A') + ACount - 1) + Chr(Ord('A') + APos - 1) + IntToStr(RowID);
   end;
const
   xlWBatWorkSheet = -4167;
var
   XLApp, Sheet, Data: OLEVariant;
   linha, coluna: Integer;
   nRec: TBookmark;
begin
   Result := False;
   // Prepara os dados
   Data := VarArrayCreate([1, DataSet.RecordCount+1, 1, DataSet.FieldCount], varVariant);
   // Obs: DataSet.RecordCount + 1 -> ( + 1 ) é por causa dos nomes das colunas.
   linha := 1;
   for coluna := 0 to Pred(DataSet.FieldCount) do
   begin
      Data[linha, coluna + 1] := DataSet.Fields[coluna].DisplayLabel;
   end;
   nRec := DataSet.GetBookmark;
   try
      with DataSet do
      begin
         DisableControls;
         First;
         while not eof do
         begin
            inc(linha);
            for coluna := 0 to Pred(DataSet.FieldCount) do
            begin
               Data[linha, coluna + 1] := DataSet.Fields[coluna].Value;
            end;
            Next;
         end;
      end;
      // Cria o objeto Excel-OLE
      XLApp := CreateOleObject('Excel.Application');
      try
         // Esconde o Excel
         XLApp.Visible := False;

         // Adiciona um novo Workbook
         XLApp.Workbooks.Add(xlWBatWorkSheet);
         Sheet := XLApp.Workbooks[1].WorkSheets[1];

         // Preenche a planilha
         Sheet.Range[RefToCell(1, 1), RefToCell(DataSet.RecordCount+1, DataSet.FieldCount)].Value := Data;
         Sheet.Range[RefToCell(1, 1), RefToCell(DataSet.RecordCount+1, DataSet.FieldCount)].EntireColumn.AutoFit;
         XLApp.Workbooks[1].WorkSheets[1].PageSetup.Orientation := xlOrientacao;
         XLApp.Visible := True;
         Result := True;
      Except
         // Fecha o Excel, sem nenhuma mensagem
         if not VarIsEmpty(XLApp) then
         begin
            XLApp.DisplayAlerts := False;
            XLApp.Quit;
            XLAPP := Unassigned;
            Sheet := Unassigned;
         end;
      end;
   finally
      Dataset.GotoBookmark(nRec);
      Dataset.FreeBookmark(nRec);
      Dataset.EnableControls;
   end;
end;

//
// Exemplo de uso:
//
procedure TForm1.BitBtn1Click(Sender: TObject);
const xlOrientacao: Integer = 2;
// 1= xlPortrait
// 2= xlLandscape;
begin
   if not ExportarParaExcel(ClientDataSet1, xlOrientacao) then
     ShowMessage('Erro na exportação para o Excel.');

end;

ENTER em DBRadioGroup

Delphi - Pressionar ENTER em DBRadioGroup
    Para o ENTER funcionar num DBRadioGroup é preciso setar
    a propriedade KeyPreview = True no Form, e no evento OnKeyPress
    usar o código abaixo:

   if Key = #13 then
   begin
      if (Self.ActiveControl.ClassName = 'TGroupButton') then
      begin
         Key := #0;
         Perform(WM_NEXTDLGCTL, 0, 0);
      end;

   end;

ENTER / UP / DOWN

 Delphi - Usando ENTER / UP / DOWN para mudar de campo.
// Uses Grids
// Colocar um ApplicationEvents no Form, e no evento OnMessage do ApplicationEvents:

if Screen.ActiveForm = Self then
begin
   if not ((Screen.ActiveControl is TCustomMemo) or
           (Screen.ActiveControl is TCustomGrid)) then
   begin
      if Msg.message = WM_KEYDOWN then
      begin
         case Msg.wParam of
            VK_RETURN,VK_DOWN : Screen.ActiveForm.Perform(WM_NextDlgCtl,0,0);
            VK_UP : Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0);
         end;
      end;
   end;

end;

ENTER como TAB em campo MEMO

 Utilizando ENTER como TAB em campo MEMO

// No evento OnKeyPress:

var
   Linha : String;
begin
   if Key = #13 then
   begin
      Linha := MEMO.Lines[MEMO.Lines.count - 1];
      if Linha = '' then
      begin
         key := #0;
         PostMessage ( handle, WM_KEYDOWN, VK_TAB, 1 );
      end;

   end;

segunda-feira, 29 de junho de 2009

Fazendo um Sistema de LOGIN

Então é o seguinte :

Primeiro vc cria o 'form' com os campos (edits) login e senha e um botao :P ;
No click desse botao vc vai chamar uma funcão ;
Vc vai criar uma query passando como parametro o login e senha ;
Depois da validacão, chama o que vc quiser ;


function ValidaUser(login, senha : string) : boolean ;
Begin
nome da query.Close;
nome da query.ParamByName('LOGIN').AsString := login;
nome da query.ParamByName('SENHA').AsString := senha;
nome da query.Open;
if .recordCount<>0 then
Result := True;
end;

// No click do botao chama a funcao

if ValidaUser(.text,.text) then
"acao desejada";




Se não souber o SQL da Query, la vai o codigo :

"Select * From Where nome= :LOGIN and senha= :SENHA"

Fazendo um Sistema de LOGIN

É facil. É o seguinte :

Primeiro vc cria o 'form' com os campos (edits) login e senha e um botao;
No click desse botao vc vai chamar uma funcão;
Vc vai criar uma query passando como parametro o login e senha ;
Depois da validacão, chama o que vc quiser;


function ValidaUser(login, senha : string) : boolean ;
Begin
.Close;
.ParamByName('LOGIN').AsString := login;
.ParamByName('SENHA').AsString := senha;
.Open;
if .recordCount<>0 then
Result := True;
end;

// No click do botao chama a funcao

if ValidaUser(.text,.text) then
"acao desejada";

Se não souber o SQL da query, la vai o codigo :

"Select * From Where nome= :LOGIN and senha= :SENHA"

segunda-feira, 20 de abril de 2009

Função Copy

A função Copy(Texto, Inicio, Fim) "Resulta" em um determinado pedaço do texto...
procedure TForm1.FormCreate(Sender: TObject);
var
  Texto: string;
begin
  Texto := 'Oi Blogger';

  ShowMessage(Copy(Texto, 1, Length(Texto) - 1));
  // Mensagem = "Oi Blogger"

  ShowMessage(Copy(Texto, Length(Texto) , 1));
  // Mensagem = "r"

  ShowMessage(Copy(Texto, 4, 5));
  // Mensagem = " Blogg"

end;
Bom é isso deu para entender?
Qualquer coisa é so falar...

sexta-feira, 17 de abril de 2009

Trabalhando com Classes

Então vamos ver uma classe no Delphi tem a seguinte estrutura:
TClasse = class(TClassePai)

{
  Define o nome da classe e de quem ela é herdada.
  Se o parâmetro TClassePai for omitido, a classe será herdada de TObject,
  que é a classe da qual todas herdam no Delphi.
}

private
  //Aqui ficam os campos e métodos vistos apenas pela própria classe.

protected
  //Aqui ficam os campos e métodos vistos pela própria classe e suas descendentes.

public
  //Aqui ficam os campos e métodos vistos por todas as classes.

end;
As classes do Delphi desenvolvidas pela Borland, sempre são iniciadas pelo prefixo T, apesar de não constituir uma obrigação quase todas as classes desenvolvidas no Delphi por outros programadores também são iniciadas pelo prefixo T. Os objetos no Delphi, são instâncias de classe, ou seja: São variáveis que contém um ponteiro para o elemento da classe.

Desse modo, as classes devem ser criadas (instânciadas), quando for necessária a sua utilização e destruídas quando não forem mais necessárias.

quinta-feira, 16 de abril de 2009

Hello World! (Olá Mundo!)

Olá, então vou ensinar vocês criar o famoso Olá Mundo!!!
1° Inicie o Delphi.
2° No formulário que apareceu na tela, coloque um botão(Tbutton).
Nota: para colocar um botão, basta clicar sobre ele na paleta Standard e depois clicar no formulário, caso queira requintar seu aplicativo, altere suas propriedades.
3° Clique duas vezes sobre o botão que apareceu.
4° Deverá aparecer o seguinte código na sua tela:

procedure TForm1.Button1Click(Sender: TObject);
begin
end;

5° Verifique que estamos programando o evento onclick do botão, ou seja o que programarmos irá acontecer quando o usuário clicar no botão.
6° Vamos utilizar a procedure ShowMessage() da unit Dialogs, ela é responsável por mostrar uma mensagem na tela.
7° Entre o begin e o end do evento digite:
ShowMessage('Hello World');
8° O código final deverá ficar assim:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello World');
end;
9° Clique no botão verde da barra de ferramentas (uma seta para a direta) ou tecle F9.
10° pronto, seu primeiro programa em Delphi esta rodando.

quinta-feira, 9 de abril de 2009

Linguagem Delphi

Foi produzido pela Borland Software Corporation. A linguagem utilizada pelo ambiente Borland Delphi é o Object Pascal. O Delphi, originalmente direcionado para a plataforma Windows, chegou a ser usado para desenvolvimento de aplicações nativas para Linux e Mac OS, através do Kylix.

O nome Delphi é inspirado na cidade de Delfos, o único local na Grécia antiga em que era possível consultar o Oráculo de Delfos. O nome deve-se ao fato de que os desenvolvedores do compilador buscavam uma ferramenta capaz de acessar o banco de dados Oracle - daí o trocadilho: "a única maneira de acessar o oráculo é usando Delphi".

Atualmente foi criado o Lazarus que possui uma interface muito semelhante ao Delphi e a característica de ser multiplataforma, ou seja, roda tanto no linux quanto no windows.

O Delphi consiste de vários elementos, ferramentas de design e de banco de dados para auxiliá-lo a desenvolver e testar suas aplicações de forma rápida e intuitiva. A seguir algumas características do Delphi:

•Construtor Visual de Interface com o Usuário

•Arquitetura Baseada em Componentes

•Compilador de Código Nativo de Alta Performance

•Tow-Way Tools

•Biblioteca de Componentes Visuais

•Arquitetura Aberta

•Linguagem Orientada a Objetos

•Suporte à Tecnologia do Windows

•Depurador Gráfico

•Ambiente Personalizável

•Gerenciador de Projetos

•Assistentes

•Gerador de Relatórios

•Servidor Local Baseado em SQL