Buscar

ApostilaDelphiXe5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 79 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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 INSTALAÇÃO 
Caso você ainda não possua uma licença oficial utilize por 30 dias a versão Trial para os 
testes. Recomendamos a compra da licença do produto, pois somente com produtos 
licenciados que é permitido a geração de apps oficiais e comerciais, não é permitido 
adicionar aplicativos desenvolvidos em versões trial na Google Play ou na AppStore. 
BAIXANDO A VERSÃO TRIAL 
Acesse o site www.embarcadero.com.br no menu Produtos escolha a opção FREE 
TRIALS 
 
 
Na próxima página escolha a Opção Trial Download no Delphi XE5 
 
Na página de Seleção 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 número de série chegará no seu email, e também será necessário esse login e senha 
no primeiro uso do produto na ativação 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 opção de instalar o 
Interbase, para evitar conflitos, caso contrário mantenha a instalação completa, pois o 
interbase será útil no desenvolvimento de aplicativos com banco de dados. 
 
 
 
SDK DO ANDROID 
 
Marque as opções 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 Instalação, ela poderá ser um pouco demorada porque é necessário 
fazer o download de todos os arquivos da instalação. 
 
Acesse o Delphi XE5 complete o passo de registro do software, usando o número de 
série 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 botão direito sobre uma das barras de ferramentas aparecerá a lista de barra 
de ferramentas que estão 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 responsável 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, porém você pode personalizar seu ambiente de trabalho, com as janelas e 
posições das mesmas da forma que você preferir. 
 
Palheta View 
 
 
 
Responsável por Visualizar as units,formulários e alternar entre Visual (form) e Código (unit) 
 
Palheta Debug 
 
 
 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
8 de 79 
 
Palheta Responsável pela Depuração do Projeto, ou seja, compilar, compilar e executar, pausar 
a depuração, fazer depuração linha a linha, entre outras opções de depuração. Veremos a 
função de cada uma dessas opções mais adiante. 
 
Tool Palette - Palheta de Ferramentas (Ctrl + Alt + P) 
 
Nesta palheta você encontrará as ferramentas necessárias para trabalhar, quando não 
estamos com nenhum projeto abertoa palheta de ferramentas mostrará os possíveis 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 depuração (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 formulário e a palheta Estrutura mostrou 
como eles estão organizados, ou seja o Edit1 e o Memo1 estão “dentro” do Formulário Form2. 
 
 
 
Object Inspector – Palheta Inspetor de Objetos (F11) 
 
Esta é uma das palhetas que teremos o maior contato durante o desenvolvimento, é através 
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 
 
Através deste Menu você poderá abrir janelas e visualizar os atalhos para cada uma delas. 
 
 
 
 
Projetos, Units e Formulários 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
11 de 79 
 
 
 
 
Um projeto é uma coletânea de arquivos necessários para que um programa possa funcionar, 
no Delphi existem diversos tipos de projetos, como por exemplo: 
 
VCL Forms Aplicattion – Aplicação baseada em formulários 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 –Aplicação que pode ser usada em múltiplas plataformas 
desktop (Windows, Mac Os), com componentes redesenhados e estilizados. 
 
VCL Metropolis UI Application – Aplicação baseada em VCL, porém com recursos visuais do 
tema Metropolis (Windows 8). 
 
Firemonkey Mobile Application – Aplicação para dispositivos móveis, nesta versão do Delphi é 
possível criar aplicações 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 coletânea de units e formulários para gerar uma aplicação. 
Uma unit (.pas) pode existir por si só. 
Um formulário depende de uma Unit (.pas) e de um arquivo (.dfm), a unit contém o código 
funcional da aplicação e arquivo “dfm” contém o código dos componentes visuais do 
formulário. 
 
Exemplo de um projeto 
 
 
 
Exemplo de uma unit que contém um formulário 
 
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 responsável pelas declarações 
 
uses//declara as units (bibliotecas) que serão usadas 
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls; 
 
Type //criação 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 //variáveis globais a esta unit 
 Form2:TForm2; 
 
implementation//Bloco de implementação 
 
{$R *.dfm} 
 
//Área onde serão implementados os métodos, procedimentos e funções 
 
 
end.//indica o fim da unit 
 
Exemplo do dfm deste formulário 
 
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 conversão de sintaxe 
 
Como o foco de nosso curso são alunos que já tem um certo conhecimento em C ou Java, 
explanaremos aqui as principais diferenças de sintaxe entre as duas linguagens. 
 
Operadores 
 
 + Soma 
 - Subtração 
 * Multiplicação 
 / Divisão 
 
Comentários 
 
// comentário de uma linha 
 
(* 
Comentário em 
Bloco 
*) 
 
{ 
Comentário em 
Bloco 
 
} 
 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
17 de 79 
 
 
 Em C Em Pascal 
Atribuição = := 
Comparação == = 
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; 
Laço de Repetição FOR for (i=0;i<=3;i++) 
{ 
 
} 
 
for (i=3;i>=0;i--) 
{ 
 
} 
 
 
for cont:=0 to 3 do 
Begin 
 
End; 
 
for cont:=3 downto 0 do 
Begin 
 
End; 
 
 
Laço de Repetição WHILE while( i <= 100 ) 
{ 
 
} 
 
While (i<=100) 
Do Begin 
 
End; 
Módulo ou resto da Divisão If ((4 % 2) ==0) 
{ 
printf("é par “); 
} 
If ((4 mod 2)=0) 
Then Begin 
 Showmessage(‘é par’); 
End; 
 
 
Modularização: Funções e Procedimentos 
 
Procedimentos 
 
Em C 
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; 
 
Funções 
 
 Em C 
 
 Int soma() 
 { 
 return 30; // sai da função nesta linha e retorna 30 
 } 
 
 Em Pascal 
 
 Function soma:integer; 
 Begin 
 Result:=30; //armazena 30 na variável de retorno, mas não sai nesta linha 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
19 de 79 
 
 Exit; //não obrigatório, mas serve para sair da função. 
 End; 
 
Passagem de parâmetros em procedimentos e funções 
 
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 referência 
 
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 VARIÁVEIS 
 
Assim como em C, se uma variável for declarada dentro de uma função, o escopo dela é 
apenas a função. 
 
Para declarar uma função em Pascal existem áreas específicas para esse procedimento, 
diferentemente de C que uma variável pode ser declarada em qualquer parte do código. 
 
Declarando variáveis dentro de um procedimento (entre o nome da função e o Begin) 
 
Procedure Soma; 
Var 
A,b:integer; 
Texto:string; 
Begin 
End; 
 
Declarando uma variável Global a uma Unit (no var antes do implementation da unit, junto a 
variável do formulário) 
 
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 também variáveis declaradas dentro de classes, que podem ser declaradas na seção 
privada ou pública, 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 Dígitos 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 representação de 1 bytes (1 caracter) 
String vetor de caracteres 
 
Funções de String 
 
S:=‘texto que será enviado para a variável S’; 
 
A:=‘teste’; 
B:=‘de texto’; 
C:=A+B+’ usando concatenação de strings’; 
 
Função length retorna a quantidade de caracteres de uma string 
Quantidadecaracteres:=Length(C); 
 
Uma string inicia em 1 e não em 0, então para percorrer uma string 
 
For cont:=1 to length(c) do 
Begin 
 Stringfinal:=StringFinal + C[cont]; 
End; 
 
Algumas funções importantes de conversões entre tipos 
 
Na conversão o parâmetro deve conter um valor correto para o tipo destino, caso contrário 
gerará uma excessão. 
 
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 funções em um click de um botão 
 
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 Mudanças na Linguagem Delphi para Mobile 
Sunday, May 5th, 2013 
Introdução 
Este artigoapresenta as principais novidades da linguagem Delphi no que diz respeito a desenvolvimento para 
Mobile, disponibilizado recentemente através do Delphi XE4. Porém antes dos detalhes da linguagem, vamos 
entender o motivo e a abrangência destas alterações. 
Novo Compilador 
Para oferecer suporte aos dispositivos móveis foram criados dois novos compiladores, um para o simulador do iOS e 
outro para o dispositivo físico (ARM), já que as arquiteturas são 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 padrão 
chamado LLVM (http://llvm.org). Podemos entender o LLVM como um conjunto de módulos e ferramentas 
reutilizáveis para compiladores, utilizados amplamente por diversos compiladores nativos, entre eles o próprio 
Xcode, nativo da Apple. 
Mudanças no Delphi Language 
Para suportar dispositivos móveis, o novo compilador (acima) impõe algumas mudanças de linguagem, as quais vou 
listar a seguir. Na verdade, mais do que mudanças, trata-se de uma grande evolução da linguagem Delphi. No 
futuro, estes e outros avanços serão portados também 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 automático de memória sem a necessidade de um garbage 
collection, tido como um grande vilão 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 memória assim que sair do escopo. Importante ressaltar que a 
sintax tradicional (try/finally fazendo o Free manual do objeto) continua suportada, portanto as migrações de 
código estão garantidas. 
Também estão disponíveis 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 estão simplificados em um único: String. Além disso, as strings agora são 0-based ao invés de 1-based. Isso 
significa que alguns códigos podem precisar de revisão, mas as funções de manipulação de strings já estão 
preparadas para esta mudança. 
Uma outra - importante - mudança é que as strings passarão a ser "imutáveis", devido ao gerenciamento de 
memória dos dispositivos móveis. Nesta versão do compilador tudo continua conforme anteriormente, você 
receberá apenas uma warning alertando que, futuramente, construções como a exibida abaixo não será mais 
suportada: 
str1[3]:=’w’; 
Portanto é altamente recomendado que, para seus novos códigos, você faça uso de construções como 
TStringBuilder e TStringHelper para a manipulação de strings. Um trecho de código utilizando estas classes para 
ilustrar: 
 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
28 de 79 
 
Outras mudanças 
1. Ponteiros não são suportados no mundo mobile 
2. Não há suporte para Inline assemby 
3. Evite chamadas a APIs diretamente, esteja pronto para as novas plataformas que virão 
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 é necessário 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 versão do SDK do Android instalado, caso após instalado a 
máquina virtual já estiver criada é necessário apenas na primeira execução do emulador 
adicionar o suporte a GPU, para isso clique no dispositivo virtual listado e clique em Edit. 
 
 
Na tela de edição 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 Opção “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 alterações. 
 
 
Caso você esteja trabalhando com outra versão do Emulador, segue abaixo um print da criação 
de um novo dispositivo virtual, para isso clique no botão NEW 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
33 de 79 
 
 
 
Preencha as opções indicadas pelas setas vermelhas 
 AVD Name: Nome do dispositivo, use um nome simples sem espaços 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 (máximo recomendado) 
 Use Host GPU: Marque essa opção 
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 criação da máquina 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 opção Blank Application (Aplicação em Branco) 
É possível 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 são objetos (classes) prontos para o desenvolvimento dentro de 
uma IDE, por exemplo se você precisa de um botão, de uma caixa de texto ou de uma label na 
construção do seu aplicativo você não precisa construí-los, eles já estão prontos, basta arrastar 
para o formulário que deseja e eles serão 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 COMPILAÇÃO NO EMULADOR 
Adicione um componenteLabel em seu formulário, vá na propriedade TEXT no Object 
Inspector e altere o texto a mesma. 
Salve seu projeto e todos os arquivos que compõe 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 opção compila o projeto e enviar para o dispositivo ou 
emulador o app pronto, como estamos trabalhando sem o Debug não conseguiremos 
“debugar” nosso código com paradas (breakpoint), para executar este tipo de operação use a 
opção RUN(f9). 
 
 
Aguarde todo o processo de compilação 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 configurações, opção “sobre o dispositivo” 
Pressione várias vezes sobre a opção Num de compilação, ele habilitará as opção de 
desenvolvedor, retorne a tela anterior e escolha a opção Opções do Desenvolvedor e marque a 
opção Depuração de USB. (Essas opções podem mudar de acordo com o aparelho ou o 
Android instalado nele, procure no Google como Habilitar Depuração 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 não liste automaticamente o dispositivo clique com o botão direito sobre a 
opção Target do Android no Project Manager e escolha a opção Refresh. Caso não 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 compilação clique duas vezes sobre a opção ou clique com o botão direito e escolha a 
opção 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 aplicações 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 não indicados na lista, como por exemplo o tablet 
Motorola XOM e tivemos êxito, porém com alguns tablets da SAMSUNG testados tivemos 
problemas pois NÃO tinham suporte ao NEON, portanto nem todos os aparelhos rodando 
ANDROID são suportados, verifique sempre se o aparelho que deseja rodar a aplicação tenha 
suporte a NEON e se encontra em uma das versões do ANDROID indicadas pela Embarcadero. 
 
COMPONENTE BOTÃO 
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 Botão 
 
 
Evento OnClick 
Evento que é ativado quando um botão recebe um click. 
 
Exemplo uma caixa de mensagem chamada através do click do botão. 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
49 de 79 
 
 
 
 
STYLE LOOKUP 
Essa propriedade determina a aparência do componente, ela é fundamental pois é através 
dela que o compilador irá determinar a aparência 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 Botão configurado como botão de informação no Android 
 
Mesmo botão configurado como botão de informação no Iphone 
 
 
Botão Delete no Android 
 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
51 de 79 
 
Botão 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 posições: 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 aplicação com uma Label, um Edit e um botão conforme modelo acima, 
configure o tipo do teclado como VktDefault, troque propriedade name do Edit paraEDTNOME 
No click do botão mostraremos uma mensagem com o que foi digitado e alteraremos o texto 
do Edit via código. 
Exemplo de código do click do botão 
 
 
COMPONENTE RADIOBUTTON 
O rádio Button é usado para seleções de opções, 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 
não. 
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 execução 
Neste APP foram adicionados 3 radios buttons, a propriedade TEXT de cada um foi alterada de 
acordo com a função que ele irá executar (esse texto é livre) 
 
 
Em cada OnClick dos radios foi adicionado um código para alterar o tipo do teclado do Edit. 
 
Código do OnClick dos Radios Buttons 
O tipo de teclado foi trocado via código, o número entre parênteses é o indice do tipo 
escolhido, consulte o Help para esta listagem de códigos. 
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 botão 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 criação 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 botão direito sobre o componente e escolha a opção 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 = Posição 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 não mostra nenhuma opção visual para troca de Abas, a mesma 
pode ser feita através de código. 
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 botão direito sobre o componente e escolha a opção Items Editor 
 
 
Escolha a opção 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 = Acessório que será usado no item (checkmark, detail...) 
 Bitmap = Imagem com o ícone do Item 
 Detail = Texto secundário do item (detalhe) 
 Text = Texto do Item, mesmo da propriedade TEXT 
StyleLookup = Esta propriedade indica aparencia do ITEM, determinando se terá ou não detail, 
a posição do detail entre outras opções. 
 
 
 
EXEMPLO PARA ADICIONAR ITENS VIA CÓDIGO 
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 variável 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 botão direito sobre a listbox, escolha a opção 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 variável do tipo TLISTBOXGROUPHEADER 
Exemplo de como adicionar via código 
ListBoxGroupheader:=TListBoxGroupHeader.Create(ListBoxPalestras); 
ListBoxGroupheader.Text:='TERÇA'; 
ListBoxPalestras.AddObject(ListBoxGroupheader); 
 
 
 
 
II JTI-MS – Mini Curso - APLICATIVOSMOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
71 de 79 
 
 
USANDO MÚLTIPLOS FORMULÁRIOS 
Para que seu aplicativo tenha múltiplas telas é necessário adicionar novos formulários ao seu 
projeto, para isso clique no Menu File \ New \ FireMonkey Mobile Form - Delphi 
 
 
Escolha a opção HD FireMonkey Form e clique em OK 
 
Será criado uma nova Unit e um novo formulário 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 formulário para FSEGUNDO 
 
 
II JTI-MS – Mini Curso - APLICATIVOS MOBILE PARA ANDROID E IOS COM DELPHI XE 5 
 
73 de 79 
 
No formulário principal adicione um botão para “chamarmos” o FSEGUNDO 
 
 
E adicione o código abaixo no evento OnClick 
 
Neste exemplo acima estamos chamando a função do Show do Formulário FSegundo que é a 
função que “mostra” o formulário na tela. 
Na primeira compilação obteremos um erro que o Fsegundo não foi encontrado na lista de 
USES, ou seja, se vamos utilizá-lo precisamos indicar sua unit na lista de Uses do nosso 
formulário principal, porém 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 formulário aberto precisamos adicionar um código, no exemplo abaixo adicionei 
um botão em uma toolbar e configurei o stylelookup dele para “backtoolbutton” 
 
No onclick desse botão apenas adicionei o código 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 múltiplas linhas de inserção 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 não. 
TextAlign: Alinhamento do Texto 
ReadOnly: Indica somente Leitura 
Enabled: Indica se está ativado ou não 
CharCase: Indica se usará tudo maiúscula, tudo minúscula ou normal. 
 
Exemplo de como inserir informações na propriedades Lines Via Código 
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 FORMULÁRIOS 
Digite o nome do Formulário . 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 opção Edit 
 
 
Clique no botão 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 Formulário (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 formulário. 
 
Na propriedade Touch \ Gestures \ Standard escolha os gestures que deseja ativar 
 
 
No evento OnGesture do Formulário codifique a ação 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 parâmetro EventInfo que indica as informações 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 botão 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 
 
 
 
É possível também capturar o nome do Gesture ocorrido em uma string e trabalhar com ele. 
Exemplo do código: 
 
No código acima a função GestureToIdent converte o GestureID (código do gesture) em uma 
string de nome S (ela deve ter sido declarada), após isso posso “testar” o nome do gesture 
executado, caso a função retorne FALSE é porque ela não conseguiu detectar o gesture.

Continue navegando