apostiladelphixe5

Upload: koheleth

Post on 18-Oct-2015

316 views

Category:

Documents


0 download

TRANSCRIPT

  • APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE5

    Ronnei Peterson

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    2 de 79

    DICAS DE INSTALAO

    Caso voc ainda no possua uma licena oficial utilize por 30 dias a verso Trial para os

    testes. Recomendamos a compra da licena do produto, pois somente com produtos

    licenciados que permitido a gerao de apps oficiais e comerciais, no permitido

    adicionar aplicativos desenvolvidos em verses trial na Google Play ou na AppStore.

    BAIXANDO A VERSO TRIAL

    Acesse o site www.embarcadero.com.br no menu Produtos escolha a opo FREE

    TRIALS

    Na prxima pgina escolha a Opo Trial Download no Delphi XE5

    Na pgina de Seleo do Produto clique em Download no Produto Delphi XE5

    Architect 30 Day trial

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    3 de 79

    Crie uma conta ou entre com seu login e senha registrados na embarcadero

    O nmero de srie chegar no seu email, e tambm ser necessrio esse login e senha

    no primeiro uso do produto na ativao do registro do mesmo.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    4 de 79

    DICAS REFERENTE A BANCO DE DADOS

    Caso voc j utilize o FIREBIRD em seu computador desmarque a opo de instalar o

    Interbase, para evitar conflitos, caso contrrio mantenha a instalao completa, pois o

    interbase ser til no desenvolvimento de aplicativos com banco de dados.

    SDK DO ANDROID

    Marque as opes de instalar o SDK e o NDK do Android.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    5 de 79

    Aguarde o Final da Instalao, ela poder ser um pouco demorada porque necessrio

    fazer o download de todos os arquivos da instalao.

    Acesse o Delphi XE5 complete o passo de registro do software, usando o nmero de

    srie enviado em seu email e o email e senha registrados na embarcadero.

    Conhecendo a IDE do Delphi

    IDE (Integrated Development Environment), um ambiente integrado para desenvolvimento de

    software

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    6 de 79

    Barra de Ferramentas

    Clicando com o boto direito sobre uma das barras de ferramentas aparecer a lista de barra

    de ferramentas que esto ou podem ser adicionadas.

    Palheta Standard

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    7 de 79

    Palheta responsvel por criar novas units, abrir units existentes, salvar a unit atual, salvar tudo

    eadicionar ou remover units externas aos nossos projetos.

    Palheta Desktop

    Esta palheta serve para configurarmos o nosso ambiente de trabalho, j existem alguns

    modelos prontos, porm voc pode personalizar seu ambiente de trabalho, com as janelas e

    posies das mesmas da forma que voc preferir.

    Palheta View

    Responsvel por Visualizar as units,formulrios e alternar entre Visual (form) e Cdigo (unit)

    Palheta Debug

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    8 de 79

    Palheta Responsvel pela Depurao do Projeto, ou seja, compilar, compilar e executar, pausar

    a depurao, fazer depurao linha a linha, entre outras opes de depurao. Veremos a

    funo de cada uma dessas opes mais adiante.

    Tool Palette - Palheta de Ferramentas (Ctrl + Alt + P)

    Nesta palheta voc encontrar as ferramentas necessrias para trabalhar, quando no

    estamos com nenhum projeto abertoa palheta de ferramentas mostrar os possveis projetos

    que podem ser criados.

    Project Manager Gerenciador de Projetos (Ctrl +.Alt + F11)

    Nesta palheta voc poder gerenciar os projetos abertos, visualizando seus arquivos,

    plataforma que ser usada para depurao (Windows, Mac, Ios..), adicionando e removendo

    novos arquivos ao projeto.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    9 de 79

    Structure Palheta de Estrutura dos componentes (Shift + Alt + F11)

    No exemplo abaixo eu inseri dois componentes no formulrio e a palheta Estrutura mostrou

    como eles esto organizados, ou seja o Edit1 e o Memo1 esto dentro do Formulrio Form2.

    Object Inspector Palheta Inspetor de Objetos (F11)

    Esta uma das palhetas que teremos o maior contato durante o desenvolvimento, atravs

    dela que acessaremos as propriedades e eventos do componente selecionado, no exemplo

    abaixo foi selecionado um Edit (caixa de entrada) e o object inspector est listando todas as

    propriedades do mesmo, na segunda imagem o object inspector est listando todos os eventos

    do Edit selecionado.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    10 de 79

    Menu View

    Atravs deste Menu voc poder abrir janelas e visualizar os atalhos para cada uma delas.

    Projetos, Units e Formulrios

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    11 de 79

    Um projeto uma coletnea de arquivos necessrios para que um programa possa funcionar,

    no Delphi existem diversos tipos de projetos, como por exemplo:

    VCL Forms Aplicattion Aplicao baseada em formulrios VCL (Visual Component Library),

    biblioteca de componentes visuais, a VCL herda do Windows o visual de seus componentes,

    podendo inclusive serem modificados caso o tema do Windows seja modificado.

    Firemonkey Desktop Application Aplicao que pode ser usada em mltiplas plataformas

    desktop (Windows, Mac Os), com componentes redesenhados e estilizados.

    VCL Metropolis UI Application Aplicao baseada em VCL, porm com recursos visuais do

    tema Metropolis (Windows 8).

    Firemonkey Mobile Application Aplicao para dispositivos mveis, nesta verso do Delphi

    possvel criar aplicaes para dispositivos com sistema operacional IOS (Apple) e dispositivos

    com sistema operacional Android.

    Entre outros projetos.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    12 de 79

    Firemonkey Mobile Application

    Este ser o projeto que utilizaremos durante o mini-curso.

    Um projeto uma coletnea de units e formulrios para gerar uma aplicao.

    Uma unit (.pas) pode existir por si s.

    Um formulrio depende de uma Unit (.pas) e de um arquivo (.dfm), a unit contm o cdigo

    funcional da aplicao e arquivo dfm contm o cdigo dos componentes visuais do

    formulrio.

    Exemplo de um projeto

    Exemplo de uma unit que contm um formulrio

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    13 de 79

    Entendendo a estrutura de uma UNIT

    unit Unit2; //nome da Unit

    interface//bloco de interface responsvel pelas declaraes

    uses//declara as units (bibliotecas) que sero usadas

    System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,

    FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;

    Type //criao de novos tipos

    //Criando uma classe herdada da classe TFORM

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    14 de 79

    TForm2 = class(TForm)

    private

    { Private declarations }

    Public

    { Public declarations }

    end;

    var //variveis globais a esta unit

    Form2: TForm2;

    implementation//Bloco de implementao

    {$R *.dfm}

    //rea onde sero implementados os mtodos, procedimentos e funes

    end.//indica o fim da unit

    Exemplo do dfm deste formulrio

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    15 de 79

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    16 de 79

    Um pouco da Delphi Language e converso de sintaxe

    Como o foco de nosso curso so alunos que j tem um certo conhecimento em C ou Java,

    explanaremos aqui as principais diferenas de sintaxe entre as duas linguagens.

    Operadores

    + Soma

    - Subtrao

    * Multiplicao

    / Diviso

    Comentrios

    // comentrio de uma linha

    (*

    Comentrio em

    Bloco

    *)

    {

    Comentrio em

    Bloco

    }

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    17 de 79

    Em C Em Pascal

    Atribuio = :=

    Comparao == =

    Estrutura condicional If (cont==3) { }

    If (cont=3) Then Begin End;

    Estrutura condicional com else

    If (cont==3) { } else { }

    If (cont=3) Then Begin End else Begin End;

    Lao de Repetio FOR for (i=0;i=0;i--) { }

    for cont:=0 to 3 do Begin End; for cont:=3 downto 0 do Begin End;

    Lao de Repetio WHILE while( i

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    18 de 79

    void soma()

    {

    }

    Em Pascal

    Procedure Soma;

    Begin

    End;

    Funes

    Em C

    Int soma()

    {

    return 30; // sai da funo nesta linha e retorna 30

    }

    Em Pascal

    Function soma:integer;

    Begin

    Result:=30; //armazena 30 na varivel de retorno, mas no sai nesta linha

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    19 de 79

    Exit; //no obrigatrio, mas serve para sair da funo.

    End;

    Passagem de parmetros em procedimentos e funes

    Passagem por argumento

    Em C

    int soma (int a,int b)

    {

    return a+b;

    }

    Em Pascal

    Function soma (a,b:integer):integer;

    Begin

    result:=a+b;

    End;

    Passagem por referncia

    Em C

    int soma (int& a,int& b)

    {

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    20 de 79

    }

    Em Pascal

    Function soma (var a,b:integer):integer;

    Begin

    End;

    ESCOPO DE VARIVEIS

    Assim como em C, se uma varivel for declarada dentro de uma funo, o escopo dela

    apenas a funo.

    Para declarar uma funo em Pascal existem reas especficas para esse procedimento,

    diferentemente de C que uma varivel pode ser declarada em qualquer parte do cdigo.

    Declarando variveis dentro de um procedimento (entre o nome da funo e o Begin)

    Procedure Soma;

    Var

    A,b:integer;

    Texto:string;

    Begin

    End;

    Declarando uma varivel Global a uma Unit (no var antes do implementation da unit, junto a

    varivel do formulrio)

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    21 de 79

    var

    Form2: TForm2;

    Aglobal:integer; //aqui

    implementation

    {$R *.dfm}

    ....

    Existem tambm variveis declaradas dentro de classes, que podem ser declaradas na seo

    privada ou pblica, mas que foge do escopo deste mini-curso.

    TIPOS DE DADOS COMUNS

    Inteiros

    Tipo Faixa Aproximada

    ShortInt -128..127

    SmallInt -32768..32767

    LongInt -2147483648..2147483647

    Integer -2147483648..2147483647

    Int64 -2^63..2^63-1

    Byte 0..255

    Word 0..65535

    LongWord 0..4294967295

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    22 de 79

    Cardinal 0..4294967295

    UInt64 0..2^64-1

    Tipos Float

    Tipo Faixa Aproximada Dgitos sig.

    Real48 2.9e-39 .. 1.7e+38 11-12

    Single 1.5e-45 .. 3.4e+38 7-8

    Double 5.0e-324 .. 1.7e+308 15-16

    Real 5.0e-324 .. 1.7e+308 15-16

    Extended 32-bit platforms 3.4e-4932 .. 1.1e+4932 64-bit platforms 5.0e-324 .. 1.7e+308

    10-20

    15-16

    Comp -263+1 .. 263-1 10-20

    Currency -922337203685477.5808.. 922337203685477.5807 10-20

    Tipo Booleano

    Boolean aceita true ou false;

    Tipo Data e hora

    TDate guarda data

    TTime guarda hora

    TDateTime guarda data e hora

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    23 de 79

    Tipos de caracteres

    Char representao de 1 bytes (1 caracter)

    String vetor de caracteres

    Funes de String

    S:=texto que ser enviado para a varivel S;

    A:=teste;

    B:=de texto;

    C:=A+B+ usando concatenao de strings;

    Funo length retorna a quantidade de caracteres de uma string

    Quantidadecaracteres:=Length(C);

    Uma string inicia em 1 e no em 0, ento para percorrer uma string

    For cont:=1 to length(c) do

    Begin

    Stringfinal:=StringFinal + C[cont];

    End;

    Algumas funes importantes de converses entre tipos

    Na converso o parmetro deve conter um valor correto para o tipo destino, caso contrrio

    gerar uma excesso.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    24 de 79

    Strtodate = Converte uma String para Data

    Strtodatetime= Converte uma string para um campo data/hora

    DateTimetostr= Converte um valor Data/Hora para String

    Formatdatetime= Formata um valor Data/Hora convertendo para String

    Strtoint= Converte uma string para um valor inteiro

    StrtoCurr= Converte uma string para um valor currency

    Strtofloat= Converte uma string para um valor de ponto flutuante

    InttoStr= Converte um valor inteiro para uma string

    CurrtoStr= Converte um valor currency para uma string

    FloattoStr= Converte um valor de ponto flutuante para uma string

    Exemplo de Uso das funes em um click de um boto

    procedure TForm2.Button1Click(Sender: TObject);

    Var

    ValorData:Tdate;

    ValorDataHora:TDatetime;

    ValorString:String;

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    25 de 79

    ValorInteiro:integer;

    ValorCurrency:Currency;

    ValorFloat:Double;

    Begin

    ValorData:=strtodate('01/01/2000');

    ValorDataHora:=strtodatetime('01/01/2000 00:00');

    ValorString:=datetostr(ValorData);

    ValorString:=FormatDatetime('yyyy/mm/dd', ValorDataHora);

    ValorInteiro:=strtoint('22');

    ValorCurrency:=strtocurr('10,25');

    ValorFloat:=strtofloat('10,2252');

    ValorString:=inttostr(332);

    ValorString:=CurrtoStr(200.25);

    ValorString:=CurrtoStr(200.2566);

    End

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    26 de 79

    O QUE H DE NOVO NO DELPHI XE4

    Artigo de Fernando Rizzato pesquisando no dia 28/10/2013 no link

    http://blogs.embarcadero.com/fernandorizzato/index.php/2013/05/page/2/

    Principais Mudanas na Linguagem Delphi para Mobile Sunday, May 5th, 2013

    Introduo

    Este artigo apresenta as principais novidades da linguagem Delphi no que diz respeito a desenvolvimento para

    Mobile, disponibilizado recentemente atravs do Delphi XE4. Porm antes dos detalhes da linguagem, vamos

    entender o motivo e a abrangncia destas alteraes.

    Novo Compilador

    Para oferecer suporte aos dispositivos mveis foram criados dois novos compiladores, um para o simulador do iOS e

    outro para o dispositivo fsico (ARM), j que as arquiteturas so distintas.Desta forma agora temos:

    Win32 compiler (DCC32)

    Win64 compiler (DCC64)

    Mac compiler (DCCOSX)

    iOS Simulator compiler (DCCIOS32)

    iOS ARM compiler (DCCIOSARM)

    A novidade est nos dois ltimos, os quais seguem um desenho totalmente novo, baseados em um padro

    chamado LLVM (http://llvm.org). Podemos entender o LLVM como um conjunto de mdulos e ferramentas

    reutilizveis para compiladores, utilizados amplamente por diversos compiladores nativos, entre eles o prprio

    Xcode, nativo da Apple.

    Mudanas no Delphi Language

    Para suportar dispositivos mveis, o novo compilador (acima) impe algumas mudanas de linguagem, as quais vou

    listar a seguir. Na verdade, mais do que mudanas, trata-se de uma grande evoluo da linguagem Delphi. No

    futuro, estes e outros avanos sero portados tambm para os compiladores Win32, Win64 e OSX.

    Automatic Reference Counting (ARC)

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    27 de 79

    O ARC traz o melhor dos dois mundos: gerenciamento automtico de memria sem a necessidade de um garbage

    collection, tido como um grande vilo de performance nas linguagem que o utilizam. Em resumo o ARC gerencia o

    ciclo de vida de objetos sem que voc tenha que se preocupar com o "Free".

    No exemplo acima, o objeto MyObj ser removido da memria assim que sair do escopo. Importante ressaltar que a

    sintax tradicional (try/finally fazendo o Free manual do objeto) continua suportada, portanto as migraes de

    cdigo esto garantidas.

    Tambm esto disponveis o pattern Dispose e suporte a [Weak] References. Voc pode encontrar mais sobre isso

    aqui:http://edn.embarcadero.com/article/43073.

    Tipo String

    Todos os tipos string existentes (AnsiString, UTF8String, RawByteString, WideString, AnsiChar, PAnsiChar,

    PWideChar, OpenString, ShortString

    ) agora esto simplificados em um nico: String. Alm disso, as strings agora so 0-based ao invs de 1-based. Isso

    significa que alguns cdigos podem precisar de reviso, mas as funes de manipulao de strings j esto

    preparadas para esta mudana.

    Uma outra - importante - mudana que as strings passaro a ser "imutveis", devido ao gerenciamento de

    memria dos dispositivos mveis. Nesta verso do compilador tudo continua conforme anteriormente, voc

    receber apenas uma warning alertando que, futuramente, construes como a exibida abaixo no ser mais

    suportada:

    str1[3]:=w;

    Portanto altamente recomendado que, para seus novos cdigos, voc faa uso de construes como

    TStringBuilder e TStringHelper para a manipulao de strings. Um trecho de cdigo utilizando estas classes para

    ilustrar:

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    28 de 79

    Outras mudanas

    1. Ponteiros no so suportados no mundo mobile

    2. No h suporte para Inline assemby

    3. Evite chamadas a APIs diretamente, esteja pronto para as novas plataformas que viro

    4. Prefira utilizar as units cross-plataform, especialmente ao manipular arquivos (unit IOUtils)

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    29 de 79

    EMULADOR DO ANDROID

    Para testar os projetos sem um celular necessrio um emulador do sistema operacional do

    celular desejado, junto ao Embarcadero Xe5 instalado um Emulador do Android.

    Clique no Menu Iniciar, localize o menu do Embarcadero RAD Studio XE5 e abra o Android

    Tools

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    30 de 79

    Menu Tools \ Manage AVDs...

    O Print abaixo depender da verso do SDK do Android instalado, caso aps instalado a

    mquina virtual j estiver criada necessrio apenas na primeira execuo do emulador

    adicionar o suporte a GPU, para isso clique no dispositivo virtual listado e clique em Edit.

    Na tela de edio clique em New para adicionar uma nova propriedade

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    31 de 79

    Clique na Opo GPU emulation e clique em OK

    Na lista de propriedades adicionadas troque o valor do GPU emulation para YES

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    32 de 79

    Clique em Edit AVD para finalizar as alteraes.

    Caso voc esteja trabalhando com outra verso do Emulador, segue abaixo um print da criao

    de um novo dispositivo virtual, para isso clique no boto NEW

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    33 de 79

    Preencha as opes indicadas pelas setas vermelhas

    AVD Name: Nome do dispositivo, use um nome simples sem espaos ou caracteres

    especiais

    Device: Escolha o modelo do dispositivo, neste exemplo estamos usando um Nexus

    Target: Escolha o Android.4.2.2

    Memory Options RAM: Altere para 768 (mximo recomendado)

    Use Host GPU: Marque essa opo

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    34 de 79

    Clique em OK

    A mensagem o resultado da criao da mquina virtual.

    Iniciando o emulador

    Marque o dispositivo virtual e clique em START ...

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    35 de 79

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    36 de 79

    Note que na barra de superior dado um nome para este dispositivo virtual, o mesmo dever

    estar listado no Delphi para conseguirmos emular nosso aplicativo.

    FIREMONKEY MOBILE APPLICATION

    Para criar um novo projeto para desenvolvimento Mobile clique em Menu New \ Firemonkey

    Mobile Application - Delphi

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    37 de 79

    Existem alguns Templates de projetos Mobile que podem ser escolhidos ao iniciar um projeto.

    Escolha a opo Blank Application (Aplicao em Branco)

    possvel escolher o modelo visual do celular que deseja desenvolver.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    38 de 79

    Exemplo Usando o Google Nexus 4

    Exemplo Usando o Iphone 4

    COMPONENTES OU CONTROLES

    Componentes ou controles so objetos (classes) prontos para o desenvolvimento dentro de

    uma IDE, por exemplo se voc precisa de um boto, de uma caixa de texto ou de uma label na

    construo do seu aplicativo voc no precisa constru-los, eles j esto prontos, basta arrastar

    para o formulrio que deseja e eles sero criados.

    CONHECENDO ALGUNS CONTROLES (COMPONENTES)

    LABEL

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    39 de 79

    O componente label serve para mostrar textos, ele pode ser encontrado

    na Palheta Standard da Tool Palette

    Algumas Propriedade

    Text = Texto da Label

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    40 de 79

    StyleLookup = Estilo Visual da Label

    PRIMEIRA COMPILAO NO EMULADOR

    Adicione um componente Label em seu formulrio, v na propriedade TEXT no Object

    Inspector e altere o texto a mesma.

    Salve seu projeto e todos os arquivos que compe o mesmo clicando em Menu File \ Save All

    Na janela Project Manager, escolha o emulador correto, de acordo com o dispositivo que

    deseja fazer o deploy

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    41 de 79

    Veja que no exemplo acima foi listado o mesmo nome do emulador que j se encontra aberto.

    Clique em Run Without Debugging, essa opo compila o projeto e enviar para o dispositivo ou

    emulador o app pronto, como estamos trabalhando sem o Debug no conseguiremos

    debugar nosso cdigo com paradas (breakpoint), para executar este tipo de operao use a

    opo RUN(f9).

    Aguarde todo o processo de compilao e deploy

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    42 de 79

    Compilando para um dispositivo real

    No exemplo abaixo foi usado um aparelho SAMSUNG Galaxy S4

    O driver do dispositivo j deve ter sido instalado previamente no Windows.

    No Aparelho acesse as configuraes, opo sobre o dispositivo

    Pressione vrias vezes sobre a opo Num de compilao, ele habilitar as opo de

    desenvolvedor, retorne a tela anterior e escolha a opo Opes do Desenvolvedor e marque a

    opo Depurao de USB. (Essas opes podem mudar de acordo com o aparelho ou o

    Android instalado nele, procure no Google como Habilitar Depurao de USB para

    desenvolvimento no modelo de seu aparelho).

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    43 de 79

    Caso o Delphi no liste automaticamente o dispositivo clique com o boto direito sobre a

    opo Target do Android no Project Manager e escolha a opo Refresh. Caso no funcione

    uma das dicas fechar e abrir Delphi novamente.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    44 de 79

    Caso tudo ocorra certo o dispositivo dever ser listado no Delphi, para marcar ele como alvo

    de compilao clique duas vezes sobre a opo ou clique com o boto direito e escolha a

    opo Activate.

    Clique em Run Without Debugging

    Exemplo de um APP compilado direto no celular S4.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    45 de 79

    Segundo a Embarcadero (http://www.embarcadero.com/br/products/delphi/android-app-

    development) :

    Crie aplicaes para fones e tablets com Android com processadores ARM7, rodando

    Android Gingerbread (2.3.3-2.7), Ice Cream Sandwich (4.0.3 e 4.0.4) ou Jelly Bean (4.1.x,

    4.2.x e 4.3.x)

    Lista oficial de aparelhos indicados pela Embarcadero que foram testados

    (http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Applic

    ation_Development):

    Results of Our Android Device Testing

    The device testing table below shows the results of our testing.

    Android Device Name

    Android Version

    Test Results (Out of 16 Samples)

    Percentage Passed

    Comments

    Nexus 7 HD (2013) 4.3 16/16 100

    Nexus 4 4.2.2 16/16 100

    Nexus 7 (2012) 4.3 16/16 100

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    46 de 79

    Nexus 7 4.2.2 16/16 100

    Nexus 4 4.3 16/16 100

    Nexus 10 4.3 16/16 100

    Galaxy S II (GT-

    I9100) 4.1.2 16/16 100

    Galaxy S III 4.1.1 16/16 100

    Galaxy S4 4.1.1 16/16 100

    Nexus 10 4.2.2 16/16 100

    Galaxy Tab2 7 (GT-

    P3110) 4.1.1 16/16 100

    Optimus L5 (LG-

    E612) 4.1.2 16/16 100

    Galaxy Tab2 7 (GT-

    P3110) 4.1.1 16/16 100

    Orange Nivo

    (Coolpad 7560U) 4.1.2 16/16 100

    Nexus 7 4.2.1 16/16 100

    LG Optimus L5 (LG

    - E610) 4.0.3 15/16 93.75

    Galaxy S II (GT-

    I9100) 2.3.3 15/16 93.75 Bug reported about Picture Taking

    Fujitsu Arrows Tab

    (F-01D) 4.0.3 15/16 93.75 Bug reported about Audio Recording

    HTC Desire HD 2.3.6 15/16 93.75 Bug reported about Audio Recording

    HTC One X 4.1.1 15/16 93.75 Bug reported about Web Browser

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    47 de 79

    HTC Desire SV 4.0.4 15/16 93.75 Bug reported about Audio Recording

    Kindle Fire HD

    (KFTT) 4.0.3 14/16 87.5

    Bug reported about Location Demo and

    Audio Recording

    Samsung Galaxy

    Tab2 10 4.0.3 14/16 87.5

    Bug reported about Location Demo and

    Audio Recording

    HTC Flyer 2.3.4 13/16 81.25 Bug reported about Picture Taking and

    Audio Recording

    Sony Xperia U 2.3.7 13/16 81.25 Bug reported about Picture Taking,

    Audio Recording and Notifications

    Android Cloud Devices (perfectomobile.com)

    Motorola Droid

    Bionic 4.1.2 16/16 100

    Huawei Ascend P1 4.0.3 15/16 93.75 Bug reported about Audio Recording

    ZTE Avid 4G 4.0.4 16/16 100

    ASUS Nexus 7 4.2.1 16/16 100

    Android Cloud Devices (scirocco-cloud.com/en)

    Pantone 6 4.1.2 16/16 100

    Fizemos alguns testes em outros aparelhos no indicados na lista, como por exemplo o tablet

    Motorola XOM e tivemos xito, porm com alguns tablets da SAMSUNG testados tivemos

    problemas pois NO tinham suporte ao NEON, portanto nem todos os aparelhos rodando

    ANDROID so suportados, verifique sempre se o aparelho que deseja rodar a aplicao tenha

    suporte a NEON e se encontra em uma das verses do ANDROID indicadas pela Embarcadero.

    COMPONENTE BOTO

    Palheta Standard \ TButton

    Propriedade

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    48 de 79

    Text = Texto do Boto

    Evento OnClick

    Evento que ativado quando um boto recebe um click.

    Exemplo uma caixa de mensagem chamada atravs do click do boto.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    49 de 79

    STYLE LOOKUP

    Essa propriedade determina a aparncia do componente, ela fundamental pois atravs

    dela que o compilador ir determinar a aparncia dos controles de acordo com o Sistema

    Operacional do Celular (IOS ou ANDROID).

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    50 de 79

    Exemplo de um Boto configurado como boto de informao no Android

    Mesmo boto configurado como boto de informao no Iphone

    Boto Delete no Android

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    51 de 79

    Boto Delete no Iphone

    Ancoragem de Componentes

    A propriedade Anchors determina o sistema de ancoragem que o aplicativo usar para o

    componente, voc pode ancorar um componente usando as posies: left (esquerda), right(

    direita), top (superior) e bottom (inferior). A ancoragem serve quando o tamanho da tela do

    aplicativo redimensionada (troca de dispositivo por exemplo) ele indicar como o

    componente dever se comportar.

    Componente Edit

    Componente caixa de texto.

    Palheta Standard \ TEdit

    Propriedades

    Text = texto do Edit

    KeyBoardType = Tipo do Teclado que ser mostrado.

    Exemplo de um Edit configurado como vktEmailAddress

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    52 de 79

    Exemplo de um Edit configurado como vktNumberPad

    Exemplo de um APP

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    53 de 79

    Construa uma aplicao com uma Label, um Edit e um boto conforme modelo acima,

    configure o tipo do teclado como VktDefault, troque propriedade name do Edit para

    EDTNOME

    No click do boto mostraremos uma mensagem com o que foi digitado e alteraremos o texto

    do Edit via cdigo.

    Exemplo de cdigo do click do boto

    COMPONENTE RADIOBUTTON

    O rdio Button usado para selees de opes, em grupos de radiosbuttons somente um

    pode ser selecionado

    Palheta Standard \ TRadioButton

    A propriedade TEXT altera o texto do mesmo e o evento ONClick disparado sempre que ele

    selecionado.

    A propriedade ISCHECKED do tipo boolean (true ou false) determina se ele est selecionado ou

    no.

    Voc s pode ter um radiobutton selecionado por grupo, utilize a propriedade GroupName

    para criar os grupos desejados.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    54 de 79

    Exemplo de um APP que voc configura o tipo do teclado em tempo de execuo

    Neste APP foram adicionados 3 radios buttons, a propriedade TEXT de cada um foi alterada de

    acordo com a funo que ele ir executar (esse texto livre)

    Em cada OnClick dos radios foi adicionado um cdigo para alterar o tipo do teclado do Edit.

    Cdigo do OnClick dos Radios Buttons

    O tipo de teclado foi trocado via cdigo, o nmero entre parnteses o indice do tipo

    escolhido, consulte o Help para esta listagem de cdigos.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    55 de 79

    Componente TOOLBAR

    Palheta Standard \ TtoolBar

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    56 de 79

    Adicione uma Label na ToolBar e configure o StyleLookup para toollabel

    Configure a propriedade Align para AlCenter

    Exemplo da ToolBar em um ambiente IOS

    Exemplo de boto em uma ToolBar com StykeLookup configurado para

    addtoolbuttonbordered no ambiente IOS

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    57 de 79

    Mesmo exemplo em um ambiente Android

    COMPONENTES TABCONTROL

    O TabControl proporciona a criao de TABS (ABAS)

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    58 de 79

    Para adicionar as Abas clique com o boto direito sobre o componente e escolha a opo Items

    Editor...

    Adicione a quantidade de TabItem que desejar

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    59 de 79

    Propriedades

    TabPosition = Posio que ser mostrada as tabs.

    Exemplo de TabPosition configurada como tpTop

    Exemplo de TabPosition configurada como tpBottom

    Exemplo de TabPosition configurada como tpDots

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    60 de 79

    O TabPosition em tpNone no mostra nenhuma opo visual para troca de Abas, a mesma

    pode ser feita atravs de cdigo.

    Tabindex = Propriedade que indica qual Aba est ativa no momento.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    61 de 79

    Propriedades da TABITEM

    Text = Texto da TabItem

    Ao clicar sobre um TabItem a tabControl altera a sua TabIndex automaticamente em tempo de

    projeto no Delphi.

    Exemplo de uma App com uma label por TAB

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    62 de 79

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    63 de 79

    COMPONENTE LISTBOX

    Palheta Standard \ TListBox

    Manual interessante sobre o componente:

    http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial:_Using_ListBox_Compo

    nents_to_Display_a_Table_View_(iOS_and_Android)

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    64 de 79

    Configure a propriedade Align como AlClient para que o componente se ajuste a tela.

    Adicionando ITEMS manualmente

    Clique com o boto direito sobre o componente e escolha a opo Items Editor

    Escolha a opo TListBoxItem e clique em Add Item

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    65 de 79

    Cada item pode ser configurado separadamente, para isso clique sobre o Item desejado

    Propridades

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    66 de 79

    Text = Texto Principal do ITEM

    TextAlign = Alinhamento do texto principal (taLeading, tacenter e tatrailing)

    ItemData

    Accessory = Acessrio que ser usado no item (checkmark, detail...)

    Bitmap = Imagem com o cone do Item

    Detail = Texto secundrio do item (detalhe)

    Text = Texto do Item, mesmo da propriedade TEXT

    StyleLookup = Esta propriedade indica aparencia do ITEM, determinando se ter ou no detail,

    a posio do detail entre outras opes.

    EXEMPLO PARA ADICIONAR ITENS VIA CDIGO

    O exemplo abaixo foi adicionado no evento OnCLick da Aba Palestras, adicionando 4 itens

    manualmente

    procedure TForm2.TabItem1Click(Sender: TObject);

    var

    ListBoxItem:TListBoxItem;//declarando a varivel que sera usada

    begin

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    67 de 79

    ListBoxPalestras.BeginUpdate;

    ListBoxPalestras.Items.Clear; //limpando a listbox

    //instanciando um novo ListBoxItem

    ListBoxItem := TListBoxItem.Create(ListBoxPalestras);

    //Configurando o texto principal

    ListBoxItem.Text := 'PALESTRA A';

    //configurando a aparencia para ter o texto de detalhe

    ListBoxItem.StyleLookup:='listboxitembottomdetail';

    //configurando o texto detalhe

    ListBoxItem.ItemData.Detail:='Palestrante A';

    //adicionando o item a listbox

    ListBoxPalestras.AddObject(ListBoxItem);

    ListBoxItem := TListBoxItem.Create(ListBoxPalestras);

    ListBoxItem.Text := 'PALESTRA B';

    ListBoxItem.StyleLookup:='listboxitembottomdetail';

    ListBoxItem.ItemData.Detail:='Palestrante B';

    ListBoxPalestras.AddObject(ListBoxItem);

    ListBoxItem := TListBoxItem.Create(ListBoxPalestras);

    ListBoxItem.Text := 'PALESTRA C';

    ListBoxItem.StyleLookup:='listboxitembottomdetail';

    ListBoxItem.ItemData.Detail:='Palestrante C';

    ListBoxPalestras.AddObject(ListBoxItem);

    ListBoxItem := TListBoxItem.Create(ListBoxPalestras);

    ListBoxItem.Text := 'PALESTRA D';

    ListBoxItem.StyleLookup:='listboxitembottomdetail';

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    68 de 79

    ListBoxItem.ItemData.Detail:='Palestrante D';

    ListBoxPalestras.AddObject(ListBoxItem);

    ListBoxPalestras.EndUpdate;

    end;

    ADICIONANDO UMA CAIXA DE PESQUISA NA LISTBOX

    Clique com boto direito sobre a listbox, escolha a opo Add Item \ TSearchBox

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    69 de 79

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    70 de 79

    ADICIONANDO LISTBOXGROUPHEADER

    Declare uma varivel do tipo TLISTBOXGROUPHEADER

    Exemplo de como adicionar via cdigo

    ListBoxGroupheader:=TListBoxGroupHeader.Create(ListBoxPalestras);

    ListBoxGroupheader.Text:='TERA';

    ListBoxPalestras.AddObject(ListBoxGroupheader);

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    71 de 79

    USANDO MLTIPLOS FORMULRIOS

    Para que seu aplicativo tenha mltiplas telas necessrio adicionar novos formulrios ao seu

    projeto, para isso clique no Menu File \ New \ FireMonkey Mobile Form - Delphi

    Escolha a opo HD FireMonkey Form e clique em OK

    Ser criado uma nova Unit e um novo formulrio no projeto

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    72 de 79

    Para salvar essa Unit : Menu File \ Save

    Altere a propriedade NAME (NOME) do formulrio para FSEGUNDO

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    73 de 79

    No formulrio principal adicione um boto para chamarmos o FSEGUNDO

    E adicione o cdigo abaixo no evento OnClick

    Neste exemplo acima estamos chamando a funo do Show do Formulrio FSegundo que a

    funo que mostra o formulrio na tela.

    Na primeira compilao obteremos um erro que o Fsegundo no foi encontrado na lista de

    USES, ou seja, se vamos utiliz-lo precisamos indicar sua unit na lista de Uses do nosso

    formulrio principal, porm o delphi pode adicion-lo automaticamente, para isso resposta

    YES na pergunta se deseja adicion-lo.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    74 de 79

    Compile novamente para testar.

    Para fechar o formulrio aberto precisamos adicionar um cdigo, no exemplo abaixo adicionei

    um boto em uma toolbar e configurei o stylelookup dele para backtoolbutton

    No onclick desse boto apenas adicionei o cdigo abaixo:

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    75 de 79

    TMEMO

    Componente utilizado para trabalhar com mltiplas linhas de insero de texto.

    Palheta Standard \ Tmemo

    Principais propriedades

    Lines: Linhas do texto, tipo TSTRINGS (estudar a classe TStrings)

    Text: Texto de todas as linhas, incluindo as quebras de linhas (#13 e #10)

    WordWrap: Indica se o texto quebrar linha automaticamente ou no.

    TextAlign: Alinhamento do Texto

    ReadOnly: Indica somente Leitura

    Enabled: Indica se est ativado ou no

    CharCase: Indica se usar tudo maiscula, tudo minscula ou normal.

    Exemplo de como inserir informaes na propriedades Lines Via Cdigo

    MemoiNFO.Lines.clear; //limpa o texto da lines

    MemoiNFO.Lines.Add('texto que deseja inserir); //insere uma linha com texto

    MemoiNFO.Lines.Add('texto em outra linha'); //insere uma linha com texto

    ACESSANDO COMPONENTES DE OUTROS FORMULRIOS

    Digite o nome do Formulrio . Nome do Componente . Nome da Propriedade

    Exemplo

    Finfo.memoinfo.lines.clear;

    Finfo.memoinfo.lines.add(teste);

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    76 de 79

    TIMAGEVIEWER

    Palheta Additional \ TImageViewer

    Componente usado para mostrar imagens.

    Propriedades

    BITMAP: Escolha a opo Edit

    Clique no boto LOAD da janela Bitmap Editor e escolha a imagem que deseja.

    GESTURES

    Palheta Gestures \ TGestureManager

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    77 de 79

    Para ativar o Gesture clique no Formulrio (utilize a palheta Structure caso o mesmo esteja

    com muitos componentes na tela dificultando clicar em uma rea vazia).

    Na propriedade Touch \ GestureManager escolha o componente j adicionado no formulrio.

    Na propriedade Touch \ Gestures \ Standard escolha os gestures que deseja ativar

    No evento OnGesture do Formulrio codifique a ao desejada para cada gesture.

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    78 de 79

    Esse evento tem um parmetro EventInfo que indica as informaes do Gesture que ocorreu

    Acessando a propriedade GestudeID do mesmo conseguimos saber qual gesture ocorreu. No

    exemplo abaixo verifique se foi o Gesture sgiLeft (para esquerda) ou o evento sguRight (para

    direita) e de acordo com o Gesture eu chamo o click do boto correspondente.

    Existem diversos movimentos de gestures, eles foram mapeados e nomeados como

    constantes. Segue abaixo a lista:

  • II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5

    79 de 79

    possvel tambm capturar o nome do Gesture ocorrido em uma string e trabalhar com ele.

    Exemplo do cdigo:

    No cdigo acima a funo GestureToIdent converte o GestureID (cdigo do gesture) em uma

    string de nome S (ela deve ter sido declarada), aps isso posso testar o nome do gesture

    executado, caso a funo retorne FALSE porque ela no conseguiu detectar o gesture.