Documente Academic
Documente Profesional
Documente Cultură
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
2 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
3 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
SDK DO ANDROID
4 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
5 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
6 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
7 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
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.
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.
8 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
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.
9 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Menu View
Atravs deste Menu voc poder abrir janelas e visualizar os atalhos para cada uma delas.
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
11 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Exemplo de um projeto
12 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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;
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 TForm2 = class(TForm) private { Private declarations } Public { Public declarations } end;
implementation//Bloco de implementao
{$R *.dfm}
14 de 79
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
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
Comentrios
(* Comentrio em Bloco *)
{ Comentrio em Bloco
16 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Em C Atribuio Comparao Estrutura condicional = == If (cont==3) { } Estrutura condicional com If (cont==3) else { } else { } for (i=0;i<=3;i++) { } for (i=3;i>=0;i--) { }
Em Pascal := = If (cont=3) Then Begin End; If (cont=3) Then Begin End else Begin End; for cont:=0 to 3 do Begin End; for cont:=3 downto 0 do Begin End;
Procedimentos
Em C 17 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
void soma() {
Em Pascal
End;
Funes
Em C
Em Pascal
Function soma:integer; Begin Result:=30; //armazena 30 na varivel de retorno, mas no sai nesta linha
18 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Exit; End; //no obrigatrio, mas serve para sair da funo.
Em C
Em Pascal
Em C
19 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 }
Em Pascal
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 uma varivel Global a uma Unit (no var antes do implementation da unit, junto a varivel do formulrio)
20 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
Inteiros
LongWord 0..4294967295
21 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Cardinal UInt64
0..4294967295 0..2^64-1
Tipos Float
Faixa Aproximada
2.9e-39 .. 1.7e+38 1.5e-45 .. 3.4e+38 5.0e-324 .. 1.7e+308 5.0e-324 .. 1.7e+308
63
Extended
15-16
Comp
-2 +1 .. 2 -1
10-20 10-20
Tipo Booleano
22 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Tipos de caracteres
Char
Funes de String
Na converso o parmetro deve conter um valor correto para o tipo destino, caso contrrio gerar uma excesso.
23 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Strtodate = Converte uma String para Data
24 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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
25 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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:
27 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Outras mudanas
1. 2. 3. 4. Ponteiros no so suportados no mundo mobile No h suporte para Inline assemby Evite chamadas a APIs diretamente, esteja pronto para as novas plataformas que viro Prefira utilizar as units cross-plataform, especialmente ao manipular arquivos (unit IOUtils)
28 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
29 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
30 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
31 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
32 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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 33 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Clique em OK A mensagem o resultado da criao da mquina virtual.
34 de 79
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
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.
36 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
37 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Exemplo Usando o Google Nexus 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.
38 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
O componente label serve para mostrar textos, ele pode ser encontrado na Palheta Standard da Tool Palette
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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
40 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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).
41 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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).
42 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
43 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
44 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Segundo a Embarcadero (http://www.embarcadero.com/br/products/delphi/android-appdevelopment) : 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):
4.3
45 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
4.1.2 I9100) Galaxy S III Galaxy S4 Nexus 10 Galaxy Tab2 7 (GT4.1.1 P3110) Optimus L5 (LG4.1.2 E612) Galaxy Tab2 7 (GT4.1.1 P3110) Orange Nivo 4.1.2 (Coolpad 7560U) Nexus 7 LG Optimus L5 (LG 4.0.3 - E610) Galaxy S II (GT2.3.3 I9100) Fujitsu Arrows Tab 4.0.3 (F-01D) HTC Desire HD HTC One X 2.3.6 4.1.1 4.2.1 4.1.1 4.1.1 4.2.2
16/16
100
16/16
100
16/16
100
16/16
100
16/16
100
16/16
100
15/16
93.75
15/16
93.75
15/16
93.75
15/16 15/16
93.75 93.75
Bug reported about Audio Recording Bug reported about Web Browser
46 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
4.0.4
15/16
93.75
Bug reported about Audio Recording Bug reported about Location Demo and
14/16
14/16
HTC Flyer
2.3.4
13/16
Sony Xperia U
2.3.7
13/16
Android Cloud Devices (perfectomobile.com) Motorola Droid 4.1.2 Bionic Huawei Ascend P1 ZTE Avid 4G ASUS Nexus 7 4.0.3 4.0.4 4.2.1 15/16 16/16 16/16 93.75 100 100 Bug reported about Audio Recording 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 47 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Text = Texto do Boto
48 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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).
49 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
50 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
51 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Exemplo de um APP
52 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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.
53 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
54 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Componente TOOLBAR
Palheta Standard \ TtoolBar
55 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 Adicione uma Label na ToolBar e configure o StyleLookup para toollabel
Exemplo de boto em uma ToolBar com StykeLookup configurado para addtoolbuttonbordered no ambiente IOS
56 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
COMPONENTES TABCONTROL
57 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Para adicionar as Abas clique com o boto direito sobre o componente e escolha a opo Items Editor...
58 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Propriedades
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
60 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
61 de 79
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
COMPONENTE LISTBOX
Palheta Standard \ TListBox
63 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Configure a propriedade Align como AlClient para que o componente se ajuste a tela.
Clique com o boto direito sobre o componente e escolha a opo Items Editor
64 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Cada item pode ser configurado separadamente, para isso clique sobre o Item desejado Propridades
65 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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
66 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 ListBoxPalestras.BeginUpdate;
//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);
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 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
68 de 79
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 ADICIONANDO LISTBOXGROUPHEADER Declare uma varivel do tipo TLISTBOXGROUPHEADER Exemplo de como adicionar via cdigo ListBoxGroupheader:=TListBoxGroupHeader.Create(ListBoxPalestras); ListBoxGroupheader.Text:='TERA'; ListBoxPalestras.AddObject(ListBoxGroupheader);
70 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
Para salvar essa Unit : Menu File \ Save Altere a propriedade NAME (NOME) do formulrio para FSEGUNDO
72 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 No formulrio principal adicione um boto para chamarmos o FSEGUNDO
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.
73 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
74 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
75 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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
76 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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).
77 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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:
78 de 79
II JTI-MS Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5
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.
79 de 79