Vous êtes sur la page 1sur 188

Tutorial: Uso LiveBindings para crear una aplicacin

FireMonkey Sin Cdigo


LiveBindings es una tecnologa de enlace de datos que le ayuda a desarrollar las bases de datos de
aplicaciones. Este tutorial muestra cmo crear una aplicacin de base de datos pequea pero potente
usando LiveBinding. Usted puede hacer casi todo aqu con unos simples clics de ratn; No se requiere
codificacin.
Este tutorial utiliza la biolife.cds base de datos, por lo general se instala en el directorio de muestras
al inicio | Programas | Embarcadero RAD Studio XE7 | Las muestras y tambin est disponible
con las muestras en SourceForge en: RAD Studio Cdigo de demostracin. Un ejemplo de cdigo
que utiliza una base de datos similar (DBDEMOS) est situado en FishFact (Delphi)ejemplo.
Siga estos pasos para crear una aplicacin de base de datos utilizando LiveBinding:
1. Seleccione Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en
blanco para crear un nuevo proyecto.
2. Arrastre y suelte un ClientDataSet componente en el Diseador de formularios.
3. Agregue los siguientes controles al formulario: una etiqueta, un cuadro de edicin, un memo,
y un control de la imagen de los componentes. Para poder desplazarse por los registros de
la base de datos que eligi para abrir, necesita un adicional TBindNavigator control. En este
punto,

su

aplicacin

debe

ser

similar

la

siguiente

imagen.

4. Antes de utilizar LiveBinding, es necesario especificar un archivo de base de datos para


la ClientDataSet componente. Utilice el NombreArchivo propiedad para especificar un
archivo ClientDataSet (* .cds), y seleccione el biolife.cds archivo.
5. Ajuste el activo propiedad a Verdadero.
6. Ahora usted puede simplemente enlazar cada control grfico en el formulario a su campo
apropiado en la base de datos.
1. Seleccione el componente Etiqueta y haga clic en l. A continuacin, seleccione
el

lazo

Visualmente

...

propiedad

en

el

men

contextual.

2. El Diseador LiveBindings aparece. Abra el Asistente LiveBindings haciendo clic en


el ltimo botn

de los botones de comando en el lado izquierdo.

3. En el Asistente para LiveBindings, seleccione Link a propiedad de componente


con un campo.
4. Seleccione el Label1 componente y el texto de propiedad y haga clic
en

Siguiente

para

continuar.

5. Seleccione el ClientDataSet1 componente como fuente. Haga clic en Siguiente.

6. Seleccione la Especie Nombre de campo y haga clic en Finalizar para completar la


LiveBinding.

Haga

clic

en

Siguiente

para

continuar.

7. Repita los pasos anteriores para conectar el resto de los controles en los formularios de la
siguiente manera:
1. Obligar a la propiedad Text del componente de cuadro de edicin para la Categora
de campo.
2. Obligar a la propiedad Text del componente del memorndum a la Notas de campo.
3. Enlazar la propiedad de mapa de bits del componente de imagen a la grfica.
8. Por ltimo, vincular el navegador se unen a la fuente vinculante asignando el origen de
datos propiedad del Inspector de Objetos para BindSourceDB1.
Nota: Puede vincular los componentes visualmente usando el Diseador LiveBindings.
9. Usted puede ver que los dos nuevos componentes, BindSourceDB1 y BindingsList1, se
han aadido a la forma. Estos componentes no son visuales y son parte del motor
LiveBindings.(Para modificar manualmente los enlaces de la BindingsList1 componente,
haga doble clic en l, pero ese no es el propsito de este tutorial.) Ahora que su aplicacin
debe

ser

similar

la

siguiente

imagen.

10. En este punto, puede ejecutar la aplicacin (ya sea elegir Ejecutar> Ejecutar o presione F9).
11. Despus de la aplicacin se est ejecutando, puede desplazarse a travs de los registros de
base de datos, agregue un registro, eliminar un registro, o actualizar la base de datos.
La aplicacin que se ejecuta completado:

Creacin de una aplicacin FireMonkey 3D


1. Seleccione Archivo> Nuevo> Aplicacin Multi-Device - Delphi. En la aplicacin de
mltiples dispositivos asistente, elija Aplicacin 3Dy pulse el Aceptar botn.
2. El Diseador de formularios aparece, mostrando una FMX.Forms.TForm3D.

Adicin y ajuste de componentes


1. Desde la paleta de herramientas, agregue los siguientes componentes FireMonkey 3D
(introduciendo el nombre del componente en la bsqueda de campo y pulsando Return):

Un TLight

Dos TCube

2. En el Diseador de formularios, ajustar la posicin y el tamao de los componentes


FireMonkey 3D para satisfacer sus necesidades:

Para mover un objeto, basta con arrastrar y soltar.

Para girar un componente 3D, utilice los tres azules asas que aparecen al hacer clic en
el componente. Cada mango gira el componente en el plano asociado en el espacio (es
decir, el x, y, z o vrtice). Al hacer clic en un mango, se convierte en rojo para indicar
que es el mango activo. Nota: Tambin puede utilizar las RotationAngle propiedades
en el Inspector de Objetos (x, y, z).

Para cambiar el tamao de un componente, utilice el control de cambiar el tamao, que


es un pequeo cubo azul situado en una esquina de la componente. El Resizer trabaja
en una dimensin a la vez; el Resizer es de color rojo en el lado del cubo que es la
dimensin (activo) seleccionado. Nota: Tambin puede utilizar las propiedades en
el inspector de objetos (porTCube, las propiedades de tamao relacionadas
son profundidad, anchura y altura).

3. Para cambiar el material de los dos cubos:

1.

Aadir un TTextureMaterialSource al formulario.

En el Inspector de Objetos, utilizando TTextureMaterialSource, ajustar


la

textura

de

propiedades

haciendo

clic

puntos

suspensivos [...]> Editar. El mapa de bits Editor abre asistente. Haga clic en
la carga botn del Editor de mapa de bits para cargar la textura
deseada. Despus de cargar la textura, haga clic en el Aceptar botn en
el Editor de mapa de bits.

En el inspector de objetos, con el primer cubo en el enfoque, ajuste


el MaterialSource propiedades haciendo clic puntos suspensivos [...]> y elija
el aadidoTTextureMaterialSource de la lista.

TTextureMaterialSource slo aade textura al cubo.


2.

Aadir un TLightMaterialSource al formulario.


Para

especificar

el

color

la

textura

del

material,

utilizar

los TLightMaterialSource propiedades.

En el Inspector de Objetos, utilizando TLightMaterialSource:

Ajuste

la

textura

suspensivos

[...]>

de

propiedades

Editar.

El

mapa

haciendo
de

bits

clic

puntos

Editor

abre

asistente. Haga clic en la carga de botn en el Editor de mapa de


bits para cargar la textura deseada. Despus de cargar la textura,
haga clic en el Aceptar botn en el Editor de mapa de bits.

Ambiente, difusa, emisivo y especular se establecen de forma


predeterminada, como en la siguiente imagen.

4. El resultado en tiempo de diseo se muestra en la siguiente imagen.

5. En este punto, puede hacer clic F9 para compilar, construir y ejecutar su primera aplicacin
FireMonkey 3D.

Paso 1: Crear una nueva aplicacin de FireMonkey para


Android o iOS
1. Seleccione:

Archivo> Nuevo> Aplicacin de mltiples dispositivos - Delphi

Archivo> Nuevo> Aplicacin de mltiples dispositivos - C ++ Builder

La aplicacin multi-dispositivo aparece asistente:

2. Seleccione Aplicacin en blanco. El Diseador de formularios muestra una nueva forma:

3. Seleccione la plataforma de destino del Project Manager.


1.

Android: Ver Configuracin del sistema para detectar su dispositivo


Android de utilizar un dispositivo Android. Si usted no tiene un dispositivo Android,
puedes alternativamentecrear un emulador de Android.

2.

iOS: Si desea crear un iOS aplicacin, abra la plataforma de destino nodo en


el Project Manager y haga doble clic simulador de iOS (slo para Delphi) o un
dispositivo iOS conectado (ya sea para Delphi o C ++):

Nota: Al seleccionar una plataforma, los componentes no disponible para esta plataforma en
particular aparecen en gris.

Paso 2: Seleccionar un Estilo


1. Seleccione iOS o Android desde el estilo de men desplegable con el fin de definir la vista
principal para mostrar todas las propiedades relacionadas con este estilo.
Nota: Ver Selector de Estilo para ms informacin.

Paso 3: Coloque los componentes en el Formulario de


mltiples dispositivos
Recomendamos leer este tutorial antes de empezar componentes colocacin: Tutorial mvil: El uso
de Layout para ajustar el tamao o Orientaciones (iOS y Android) forma diferente.
El primer paso en la creacin de una aplicacin multi-dispositivo est diseando la interfaz de
usuario. Hay muchos componentes reutilizables disponibles en el IDE para la creacin de interfaces
de usuario.
1. Mueva el puntero del ratn sobre la paleta de herramientas, y ampliar el Standard categora
haciendo clic en el signo ms (+) junto al nombre de la categora.

2. Seleccione el TEdit componente y, o bien haga doble clic en TEdit o colquelo en


el Diseador de formularios.
3. Repita estos pasos, pero ahora agregar un TLabel y TButton componente al formulario.
4. Seleccione el cuadro de edicin y ajuste el KillFocusByReturn propiedad en el inspector de
objetos a Verdadero.
5. Seleccione el botn y cambiar el texto de propiedad en el inspector de objetos para "Say
Hello".
6. Ahora debera ver tres componentes en el Diseador de formularios. Aqu es una aplicacin
para iOS:

7. Despus de colocar estos componentes en el Diseador de formularios, el IDE establece


automticamente los nombres de los componentes.
Para ver o cambiar el nombre de un componente, haga clic en el componente en el Diseador
de formularios, y luego encontrar su Nombre propiedad en el inspector de objetos y
laEstructura Ver:
Para una TButton componente, el nombre del componente est configurado por defecto
para Button1 (o Button2 Button3, dependiendo del nmero de TButtons que ha creado en
esta solicitud).
8. La forma en la que se encuentran estos componentes tambin tiene un nombre. Seleccione
el fondo del Diseador de formularios y seleccione el nombre de la propiedad en el Inspector

de Objetos. El nombre del formulario Form1 se muestra (o Form2, Form3, ...). Tambin
puede buscar el nombre de la forma en la Estructura Ver:

Nota: los nombres de formulario establecido por defecto como Form1, Form2, Form3, ... son
de

las

nombran

opiniones

Maestro.

FormName_ViewName

Vistas

comoForm1_iPhone

de

dispositivos
(iPhone

3.5

se
"forma)

y Form1_NmXhdpiPh (Android 4" forma de telfono).


9. Usted puede cambiar fcilmente al cdigo fuente seleccionando el Cdigo (para Delphi)
o <unidad de nombre> .cpp / <nombre de unidad> .h (para C ++) pestaa en la parte
inferior
del
Diseador
de
formularios.
Tambin puede pulsar el F12 clave para cambiar entre el Diseador de formularios y el Editor
de cdigo:
Delphi

C ++

El Editor de cdigo muestra el cdigo fuente que el IDE ha generado. Usted debe encontrar tres
componentes definidos (Edit1, Label1 y Button1):
Delphi

C ++

Nota: Al guardar o ejecutar su proyecto, los usos y de incluir clusulas se actualizan (aadir
FMX.StdCtrls para TLabel y FMX.Edit para TEdit).

Paso 4: Agregar Vistas a su proyecto


Si desea personalizar que la solicitud de un determinado tipo de dispositivo, puede hacerlo
utilizando Vistas.
1.

Ir al Vistas selector.

2.

Seleccione las vistas disponibles que desea agregar simplemente haciendo clic
sobre ellos.

3.

Vaya a la vista de hacer los cambios que desee incluir.

Para aadir una vista personalizada, consulte Adicin de una vista personalizada al selector
de Vista.

Paso 5: Escribir un controlador de eventos para un


botn Haga clic por el usuario
El siguiente paso es definir un controlador de eventos para el TButton componente. Puede
definir controladores de eventos para su aplicacin de la misma manera a definir
controladores de eventos para plataformas de escritorio. Para el TButton componente, el
caso ms tpico es un clic de botn.
Haga doble clic en el botn en el Diseador de formularios, y RAD Studio crea cdigo
esqueleto que puede utilizar para implementar un controlador de eventos para el evento click
del botn:
Delphi

C ++

Ahora puede implementar respuestas dentro de la Button1Click mtodo.


Los siguientes fragmentos de cdigo (Delphi y C ++) implementar una respuesta que muestra
un pequeo cuadro de dilogo que dice "Hola + <nombre entr en el cuadro de
edicin>":

Label1.

cdigo

Texto: =

de

'Hola'

+ Edit1. Texto

Delphi:

'!';

Cdigo C ++:

Label1 -> Texto = "Hola" + Edit1 -> Texto + "!";


En Delphi, las comillas que rodean literales de cadena deben ser comillas simples rectas (es
decir, 'cadena'). Usted puede usar el signo ms (+ signo) para concatenar cadenas. Si
necesita una comilla dentro de una cadena, puede utilizar dos comillas simples consecutivas
dentro de una cadena, que produce una sola cotizacin.
Mientras que usted est escribiendo cdigo, algunos consejos tooltip aparecen, indicando
el tipo de parmetro que debe especificar. Los consejos tooltip tambin muestran los tipos
de miembros que se admiten en una clase determinada:

Delphi

C ++

Paso 6: probar la aplicacin mvil


La implementacin de esta aplicacin ha terminado, por lo que ahora se puede ejecutar la
aplicacin.
Puede hacer clic en Ejecutar botn

() en el IDE, pulse F9 o seleccione Ejecutar>

Ejecutar en el men principal RAD Studio:

Delphi

C ++

Evale su Aplicacin para Android


Prueba en el emulador de Android
Antes de ejecutar la aplicacin para Android, confirme la plataforma de destino en
el Project Manager:

Prueba en el dispositivo Android


Si completa los pasos descritos en Mobile Tutorial: Configurar el entorno de desarrollo
en Windows PC (Android) antes de la creacin de su nuevo proyecto, ahora se puede
ejecutar su aplicacin para Android en un dispositivo Android conectado a su PC mediante
un cable USB.

Probar la aplicacin iOS


Prueba en el Mac (simulador de iOS)
Por defecto, las aplicaciones FireMonkey Delphi iOS se ejecutan en el simulador de
iOS plataforma de destino. Puede confirmar la plataforma de destino en el Project Manager:

Cuando se ejecuta la aplicacin, que se implementa en el Mac y luego al simulador de iOS


en el Mac. Para nuestra aplicacin, se muestra un formulario con un cuadro de edicin y un
botn.Introduzca el texto en el cuadro de edicin y haga clic en el Say Hello botn:

Nota: En los simuladores de iOS, puede probar solamente sus aplicaciones Delphi.

Las pruebas en un dispositivo iOS Connected


Si completa los pasos descritos en Mobile Tutorial: Configurar el entorno de desarrollo
en el Mac (iOS) y Mobile Tutorial: Configurar el entorno de desarrollo en Windows PC
(iOS) antes de la creacin de su nuevo proyecto, ahora se puede ejecutar su aplicacin para
iOS en un dispositivo iOS conectado a su Mac mediante un cable USB.
Para ejecutar la aplicacin de iOS en un dispositivo iOS conectado, primero seleccione
el dispositivo iOS plataforma de destino para que el Asistente Plataforma despliega la
aplicacin en el dispositivo iOS conectado:

Despus de seleccionar el dispositivo iOS plataforma de destino, ejecute su aplicacin para


iOS haciendo clic en el Run botn en el IDE, presionando F9 o
seleccionando Ejecutar> Ejecutar.

En el Mac, es posible que vea un cuadro de dilogo pidiendo su permiso para firmar el cdigo
de aplicaciones iOS. Seleccione "Permitir siempre" o "Permitir" para firmar su aplicacin.

A continuacin, vaya a su dispositivo iOS y espere a que aparezca su aplicacin FireMonkey


iOS. Est atento a la imagen FireMonkey lanzamiento (el icono est disponible en $ (BDS) \
bin \ ilustraciones \ iOS, y se puede establecer la imagen lanzamiento en Opciones de
la aplicacin):

Cada FireMonkey componente puede tener un propietario, un


padre y hijos
En primer lugar, todos los componentes FireMonkey tiene la idea de Propietario, Padres y Hijos. Si
coloca un componente en un formulario, el formulario se convierte en el dueo y padre del
componente.
Si aade componentes (por ejemplo, un botn, una etiqueta, y otros) a otro componente (por
ejemplo, una barra de herramientas), la barra de herramientas es el padre y el dueo de los
botones, de etiquetas, y otros. Usted puede ver esta relacin padre-hijo grficamente representado
en la vista de rbol en la vista de estructura.
El diseo para un nio se define como un valor relativo a su padre. En la siguiente imagen, Label1
es hijo de Toolbar1, y el diseo de Label1 es relativa a Toolbar1.

Uso de propiedades relacionadas con el diseo comn de un


Componente FireMonkey
Usando la propiedad Align
De un control de Align propiedad determina si se vuelve a colocar de forma automtica y / o
cambiar de tamao a lo largo de cuatro lados o centro de su matriz, tanto inicialmente como que el
padre se cambia el tamao.
El valor por defecto para el Align propiedad es Ninguno, lo que significa que no hay clculos
automticos se realizan: las estancias de control donde se coloca:
Align = Ninguno

Los valores tpicos para el Align propiedad son los siguientes (Dodgerblue indica el rea para el
nio):
Cima

Fondo

Izquierda

Correcto

Centro

Cliente

Si utiliza un Alinear valor de Arriba, Abajo, Izquierda o Derecha para un componente,


las Alinear propiedades en otros componentes utilizan el rea restante.

El tamao y la forma del rea restante (Client) tambin cambios en funcin de la orientacin del
dispositivo, y con base en el factor de forma (iPhone o iPad).
Las siguientes imgenes muestran el diseo de paisaje (horizontal) y para el retrato (vertical)
cuando se tienen dos (2) componentes que utilizan Top, y un (1) componente que utiliza Client.

El uso de los mrgenes de la propiedad


Mrgenes asegurar la separacin entre los controles colocados automticamente por un padre.
En la siguiente imagen, el lado derecho del componente (Align = Client) utiliza
el Mrgenes propiedad para garantizar el espacio alrededor del componente.

Utilizando la propiedad Padding


Relleno conjuntos de lado el espacio en el interior de la caja de contenidos de los padres. En el
Inspector de Objetos, puede establecer los valores (en pxeles) para el relleno:

Izquierda

Correcto

Fondo

Cima

En la siguiente imagen, el componente principal (que contiene dos regiones) utiliza


el Relleno propiedad para garantizar el espacio dentro del componente de los padres:

Utilizando el Anclas Propiedad


Se necesitan Anchors cuando un control debe mantener su posicin a una cierta distancia de los
bordes de su padre, o debe estirar mientras se mantiene la distancia original entre sus bordes y los
bordes de su matriz. Controles anclados 'palo' a los lados de los contenedores y de estiramiento, de
ser as se especifica.

Anclas Propiedad en el control de edicin


Si usted tiene una edicin de control en la parte superior de una barra de herramientas, es posible
que desee mantener una distancia fija entre el borde derecho de la edicin de control y el borde de
la forma (barra de herramientas). Anclas le permiten especificar que un control es para permanecer
fija en relacin a los lados de su padre.
Si desea que la edicin de control para mantener la misma posicin relativa en relacin con la barra
de herramientas (su padre), se puede establecer el Anclas propiedad a akLeft,
akTop, akRight.Cuando se cambia el tamao de la barra de herramientas, el control de edicin se
cambia el tamao de acuerdo a la configuracin Anclajes:
iOS

Android

Anclas propiedad para el Control Button


Si usted tiene un control Button en el extremo derecho de la barra de herramientas, es posible que
desee mantener la misma distancia entre el derecho borde del control Button y el borde de la
Forma. Sin embargo, no puede ser que desee para mantener la misma distancia entre
la izquierda borde del control Button y la izquierda borde de la Forma. En este caso, se puede
establecer elAnclas propiedad a akTop, akRight (de-seleccione akLeft), por lo que el control
Button mantiene las mismas distancias con la Barra de herramientas (matriz)
para Top y derecho.
iOS:

Android:

Uso del componente TLayout


TLayout, un componente que no es visible en tiempo de ejecucin, se puede utilizar para su
grupo de controles secundarios para ser manipulado como un todo. Por ejemplo, puede
establecer la visibilidad de un grupo de controles a la vez estableciendo el Visible propiedad del
diseo. TLayout no configura automticamente cualquiera de las propiedades de sus hijos.
Para hacer controles hijos seleccionados de TLayout, utilice la vista de estructura.
Destacar los controles que desea mover. A continuacin, arrastre el grupo de los controles sobre el
control que debe ser el padre de familia, y soltar los controles all. En la vista de estructura, el grupo
de controles ahora son hijos de la nueva matriz:
1. Estado inicial

2. Resalte los controles para mover

3. Arrastre a Padres

Puede utilizar Align, relleno, mrgenes, anclas, y otras propiedades de TLayout para definir el
diseo de un rea especfica. Usted puede utilizar el componente TLayout al igual que el DIVtag
en HTML.

Paso 1: Crear el proyecto


1. Crear un nuevo proyecto. Elija una aplicacin multi-dispositivo para este ejemplo. En el
asistente, seleccione Aplicacin enblanco.

2. En la paleta de herramientas, busque un TListView componente y sultelo en el formulario.


3. Aadir un TPrototypeBindSource componente al formulario.
4. En el formulario, seleccione el ListView1 componente, y despus en el Inspector
de Objetos, establezca la Align propiedad a cliente y la SearchVisible propiedad
a Verdadero.
La forma debe parecerse a la siguiente pantalla, antes de establecer el estilo o Ver en
el Diseador de formularios:

Nota: Para obtener ms informacin acerca de la seleccin del estilo y Vistas,


vase Selector de Estilo y Uso FireMonkey Vistas.

Paso 2: Agregar campos


1. Haga clic con el TPrototypeBindSource componente y seleccione Agregar campo ....

2. Desde el Agregar campo cuadro de dilogo, seleccione ColorsNames y haga clic


en Aceptar.

Paso 3: Crear LiveBindings


1. Abra el Diseador LiveBindings (elija Ver> LiveBindings Diseador) y arrastre
el ColorsName1 propiedad del TPrototypeBindSource al Item.Text propiedad del
ListView para unir estas propiedades.
El componente ListView rellena automticamente sus artculos con nombres de colores del
componente de datos de prototipos:

2. Conjunto TListView.ItemAppearance a ImageListItemRightButton, como sigue:

Ponga nfasis en el componente ListView seleccionndolo


(en Vista Estructura, el Diseador de formularios, o el Inspector de Objetos).

Luego, en el Inspector de Objetos, localice el ItemAppearance propiedad y cambie su


valor a ImageListItemRightButton:

3.
4. Opcionalmente, se puede aplicar un tinte a los TListView botones de texto. Haz lo
siguiente:

Ponga nfasis en el componente ListView seleccionndolo


(en Vista Estructura, el Diseador de formularios, o el Inspector de Objetos).

En la vista de estructura, bajo ItemAppearance, ampliar artculo y luego


seleccione TEXTBUTTON.

En el Inspector de Objetos, localice el tintColor propiedad y establezca su valor en un


valor adecuado, como verdemar.

La siguiente imagen muestra tanto la vista de estructura y al Inspector de Objetos. En


la vista de estructura, de artculos se expande y TEXTBUTTON se selecciona, y en
el Inspector de Objetos, tintColor se establece en verdemar:
5.

6.
7.
Nota: En tiempo de diseo, el color de tinte que aplic al texto botones no podra ser
visible. Para establecer los cambios visibles, elija el Maestro vista en el selector de estilopara
cambiar el estilo actual de su Diseador de formularios ya sea Android o iOS. Para ms detalles,
vea Diseador de formularios.
En este punto en el tutorial, ha configurado el componente ListView para mostrar una imagen en el
lado izquierdo del elemento de texto y para mostrar un botn en la parte derecha del texto del
elemento.
En el siguiente paso, poblar la imagen y el botn con datos de la muestra.

Paso 4: Aadir ms campos (mapas de bits, moneda)


Usted necesita agregar dos campos ms a fin de que el componente de vista de lista muestra una
imagen y un texto en el botn asociado a cada elemento de la lista.
1. Haga clic con el TPrototypeBindSource componente y seleccione Agregar campo ....
2. En el Agregar campo cuadro de dilogo, Ctrl

+ Clic para seleccionar mapas de

bits y moneda datos de campo. Cuando haya terminado, haga clic en Aceptar.
3. Vaya al Diseador LiveBindings y haga lo siguiente:
1. Conecte el Bitmap1 propiedad de los datos de origen a la creacin de un
prototipo Item.Bitmap propiedad del componente de vista de lista.
Este paso agrega un botn que representa el color y el nmero de cada elemento de la
vista de lista, como el azul 19.
2. Conecte el CurrencyField1 propiedad de los datos de origen a la creacin
de un prototipo Item.ButtonText propiedad del componente de vista de
lista.
Este paso muestra el valor del campo de moneda en el botn situado en la parte derecha
de cada elemento de lista.

Ahora la vista de lista muestra algunos datos de color asociados a cada elemento y tambin muestra
datos de moneda muestra en el botn asociado a cada elemento de la lista.

Paso 5: Agregar el controlador de eventos onButtonClick


Para crear una aplicacin practica, se puede aadir el onButtonClick controlador de eventos que se
activa cuando se hace clic en un elemento ListView.
Para agregar el controlador de eventos onButtonClick
1. En el formulario de aplicacin multi-dispositivo, seleccione el ListView1 componente.
2. En el Inspector de Objetos, abra el Eventos ficha y, a continuacin, haga doble clic
en OnButtonClick.
3. En el Editor de cdigo, aplicar una adecuada OnButtonClick controlador de eventos.
El siguiente cdigo de ejemplo agrega el controlador de eventos que muestra un cuadro de mensaje
al hacer clic en un elemento ListView:
Delphi:

procedure TForm1 . ListView1ButtonClick ( const Sender :


TObject ;
const AItem : TListViewItem ; const AObject :
TListItemSimpleControl ) ;
begin
ShowMessage ( AItem . Text + ' '+ AItem. ButtonText +'
se hace clic en '.); Finales;
C ++ Builder:

anular __fastcall TForm1 :: ListView1ButtonClick (TObject *


const remitente,
TListViewItem * const AItem, TListItemSimpleControl *
const AObject)
{ShowMessage (AItem -> Texto + "" + AItem ->
ButtonText + "se hace clic".);}

Los resultados
Para ver su aplicacin mvil como aparecera en un dispositivo mvil, es necesario configurar el
sistema como se describe en la adecuada instalacin de tutorial, disponible aqu, y establecer la
vista en un dispositivo mvil de destino (como el iPhone 4 ") en el Formulario Diseador. Luego hay
que completar los pasos necesarios para la implementacin de su aplicacin para la plataforma
mvil de destino.
A continuacin, puede ejecutar la aplicacin en su dispositivo mvil, ya sea presionando F9 o
seleccionando Ejecutar> Ejecutar.
iOS

Android

iPad

Galaxy s4

Si hace clic en el azul del tema, la aplicacin muestra el siguiente cuadro de mensaje:

Utilizacin de componentes ListBox para mostrar una vista


de tabla en plataformas mviles
En la plataforma mvil, FireMonkey utiliza el FMX.ListBox.TListBox componente para presentar
una vista de tabla en un estilo mvil, como los siguientes ListBoxes.
Nota:
FMX.ListBox.TListBox rendimiento puede ser lento en el mvil. Utilice TListView si quieres
desarrollar aplicaciones ms complejas, especialmente las aplicaciones con grandes bases de
datos.

Lista Llanura
iOS

Android (LG E-612)

Lista Agrupados

Nota: Slo los dispositivos iOS compatibles con las listas agrupadas.

Caja de bsqeda
Usted puede agregar un cuadro de bsqueda para un ListBox. Con un cuadro de bsqueda, los
usuarios pueden reducir fcilmente por una seleccin a partir de una larga lista como en los
siguientes cuadros.

Este tutorial describe los pasos bsicos para la construccin de elementos para una vista de tabla
en las aplicaciones multi-dispositivo para plataformas mviles.

Crear artculos por el componente ListBox


1. Seleccionar:

Para Delphi: Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en


blanco

Para C ++ Builder: Archivo> Aplicacin Nuevo> Multi-Device - C ++


Builder> Aplicacin en blanco

2. Seleccione el TListBox componente en la paleta de herramientas y colquelo en


el Diseador de formularios. Para encontrar TListBox, introduzca unos pocos caracteres
(como "TList") en elBuscar cuadro de la paleta de herramientas:

3. Seleccione el TListBox componente en el Diseador de formularios, vaya al inspector de


objetos y seleccione Cliente para la Align propiedad.
4. En el Diseador de formularios, haga clic en el componente TListBox y
seleccione artculos Editor:

5. En el Diseador artculos, haga clic en el Add Item botn varias veces para agregar varios
elementos a la ListBox:

6. Cierre el Diseador de artculos. Ahora usted puede encontrar sus ListBox artculos por el
componente TListBox. Por ejemplo:

Aadir un encabezado
Puede definir un encabezado en el componente TListBox mediante el uso de los siguientes pasos:

Un encabezado por un TListBox

1. En el Diseador de formularios, haga clic en el componente TListBox y seleccione Agregar


elemento> TListBoxHeader:

2. En la paleta de herramientas, seleccione la TLabel componente y colquelo en la parte


superior de la TListBoxHeader componente que acaba de aadir:

3. En el Inspector de Objetos, cambiar las propiedades de la TLabel componente de la


siguiente manera:
Valor

Propiedad
Alinear

Cliente

StyleLookup

toollabel

TextSettings.HorzAlign

Centro

Texto

(Valor de texto como desee)

Agregar un grupo encabezado / pie de pgina a la Lista


Se puede definir un encabezado de grupo y un pie de pgina de grupo para los artculos en TListBox
de la siguiente manera:

1. En el Diseador de formularios, haga clic en el TListBox componente y


seleccione artculos Editor.
2. En el artculo Designer, seleccione TListBoxGroupHeader de la lista desplegable y, a
continuacin, seleccione Agregar elemento:

3. Seleccione TListBoxGroupFooter de la lista desplegable y seleccione Agregar elemento.

4. Seleccione ListBoxGroupHeader1 en la lista de elementos y haga clic en el arriba botn


varias veces hasta que este elemento se convierte en el primer elemento de la lista:

5. Cierre el cuadro de dilogo. Ahora usted tiene un encabezado de grupo y un pie de pgina
de grupo en el componente TListBox.

Mostrar elementos de lista como elementos agrupados separados


Artculos por un ListBox se pueden mostrar ya sea como una llanura de lista o un Agrupados lista
(slo para plataforma de destino iOS). Esta eleccin es controlado por el GroupingKind propiedad y
el StyleLookup propiedad, como se muestra en el siguiente grfico:
Mostrar elementos como Lista Llanura

Mostrar elementos como Lista Agrupados

Llanura = GroupingKind Propiedad Valor

Agrupados = GroupingKind Propiedad Valor

listboxstyle = StyleLookup Propiedad Valor

transparentlistboxstyle = StyleLookup Propiedad


Valor

Importante: Para los dispositivos iOS, puede especificar cualquiera de los estilos para su
componente TListBox en el Inspector de Objetos. Para los dispositivos Android, puede especificar
slo la lista sin formato.
Puede seleccionar el GroupingKind propiedad y el StyleLookup propiedad en el inspector de objetos
cuando se selecciona el ListBox en el Diseador de formularios.

Aadir una casilla de verificacin u otro accesorio a un artculo ListBox


Cada artculo en un TListBox puede utilizar un accesorio, como marca de verificacin a travs de
la ItemData.Accessory propiedad. La siguiente imagen muestra el valor que se puede asignar a
ItemData.Accessory y el Accesorio asignado:

Puede seleccionar la propiedad de accesorios en el inspector de objetos cuando se selecciona


ListBox artculo en el Diseador de formularios.

Aadir un icono a un elemento ListBox


Cada artculo en un componente ListBox puede contener datos de mapa de bits, como un icono, a
travs de la ItemData.Bitmap propiedad:

Puede seleccionar el mapa de bits propiedad en el inspector de objetos cuando se selecciona la


ListBoxItem en el Diseador de formularios.
Para ver el icono, debe seleccionar un StyleLookup que apoya la Bitmap propiedad. Cambie la
propiedad StyleLookup a listboxitemleftdetail.

Aadir informacin detallada a un elemento


Puede agregar informacin de texto adicional para cada elemento en el componente ListBox.
Especifique texto adicional en el ItemData.Detail propiedad, y seleccione la ubicacin del Texto
Detalle travs del StyleLookup propiedad, como se muestra en la siguiente tabla:

Propiedad StyleLookup

Look & Feel

listboxitemnodetail

listboxitembottomdetail

listboxitemrightdetail

listboxitemleftdetail

Ejecucin de su Aplicacin
Ejecutar la aplicacin, ya sea seleccionando Ejecutar> Ejecutar o presionando F9.

Crear su Aplicacin ListBox


1. Seleccionar:

Para Delphi: Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en


blanco

Para C ++ Builder: Archivo> Aplicacin Nuevo> Multi-Device - C ++


Builder> Aplicacin en blanco

2. Seleccione el TListBox componente en la paleta de herramientas y colquelo en


el Diseador de formularios.
3. Seleccione el TListBox componente en el Diseador de formularios, vaya al inspector de
objetos y seleccione Cliente para la Align propiedad.

Aadir elementos a un ListBox de Su Cdigo


Para aadir elementos regulares a un ListBox, puede simplemente llamar a
los elementos. Aadir mtodo como se muestra en el siguiente fragmento de cdigo:

Delphi:

ListBox1. Artculos. Aadir ('Texto para aadir');

C ++:

ListBox1 -> Artculos -> Aadir ("Texto para agregar");


Si desea crear artculos que no sean un elemento simple, o controlar otras propiedades, se puede
crear una instancia del elemento primero y, a continuacin, agregarlo a la lista.
Los siguientes cdigos de muestra aadir elementos a un ListBox, como se muestra en la imagen:
iOS

Android (LG E-612)

Delphi:

procedure TForm1 . FormCreate ( Sender : TObject ) ;


var
c : Char ;
i : Integer ;
Buffer : String ;
ListBoxItem : TListBoxItem ;
ListBoxGroupHeader : TListBoxGroupHeader ;
begin
ListBox1 . BeginUpdate ;
for c : = 'a' to 'z' do
begin
// Aadir cabecera ('A' a 'Z') a la List
ListBoxGroupHeader : = TListBoxGroupHeader . Create (
ListBox1 ) ;
ListBoxGroupHeader . Text : = UpperCase ( c ) ;
ListBox1 . AddObject ( ListBoxGroupHeader ) ;
// Aadir elementos ('a', 'aa', 'aaa', 'b', 'bb', 'BBB',
'c', ...) a la lista

para i: = 1 a tres do
comienzan
/ / StringOfChar devuelve una cadena con un nmero
determinado de caracteres que se repiten.
Buffer: = StringOfChar (c, i); // Simplemente aadir
el artculo // ListBox1.Items.Add (Buffer);

// O, puede agregar elementos al crear una instancia de


TListBoxItem solo
ListBoxItem: = TListBoxItem. Crear (ListBox1);
ListBoxItem. Texto: = Buffer; // (anone = 0, amore = 1,
aDetail = 2, aCheckmark=3)
ListBoxItem . ItemData . Accessory : = TListBoxItemData
. TAccessory ( i ) ;
ListBox1 . AddObject ( ListBoxItem ) ; end ; end ;
ListBox1 . EndUpdate ; end ;

C ++:

void __fastcall TForm1 :: FormCreate (TObject * Remitente)


{
Char c;
int i;
bfer de cadena;
TListBoxItem *
ListBoxItem;
TListBoxGroupHeader *
ListBoxGroupHeader;
ListBox1 -> BeginUpdate (); para (c = 'a'; c <= 'z'; c ++)
{// Aadir cabecera ('A' a 'Z') a la List
ListBoxGroupHeader = new TListBoxGroupHeader (
ListBox1 ) ;
ListBoxGroupHeader - > Text = UpperCase ( c ) ;
ListBox1 - > AddObject ( ListBoxGroupHeader ) ;

// Aadir elementos ('a', 'aa', 'aaa', 'b', 'bb',


'BBB', 'c', -> -> ->) a la lista
de (i = 1; i <4; i ++) {// StringOfChar devuelve
una cadena con un nmero determinado de repetir personajes->
Buffer = StringOfChar (c, i); // Simplemente aadir
el artculo // ListBox1-> Productos-> Aadir (Buffer);

// O, puede agregar elementos al crear una


instancia de TListBoxItem solo
ListBoxItem = nueva TListBoxItem (ListBox1);
ListBoxItem -> Texto = Buffer; // (anone = 0, amore
= 1, aDetail = 2, aCheckmark=3)
ListBoxItem - > ItemData - > Accessory =
static_cast < TListBoxItemData :: TAccessory > ( i ) ;
ListBox1 - > AddObject ( ListBoxItem ) ; } ; } ;
ListBox1 - > EndUpdate ( ) ; }

Crear un men de desbordamiento


Se accede a un men emergente desbordamiento a travs de la barra de accin y se utiliza para
proporcionar acceso a los elementos adicionales o elementos que se utilizan con menos frecuencia.
En FireMonkey, puede implementar fcilmente un men de desbordamiento usando TListBox:
1. Aadir un TToolBar componente en el formulario y establezca la alineacin de Arriba.
2. Coloque tres TSpeedButton componentes en el TToolBar componente:

Por primera TSpeedButton:

Ajuste el Align propiedad a izquierda.

Cambiar el nombre de propiedad para OrganizeButton.

Ajuste el StyleLookup a organizetoolbutton.

Para el segundo TSpeedButton:

Ajuste el Align propiedad a Derecho.

En el inspector de objetos ampliar el Mrgenes nodo y establecer


el derecho de margen a 5.

Cambiar el nombre de propiedad para SearchButton.

Ajuste el StyleLookup a searchtoolbutton.

Para el ltimo TSpeedButton:

Ajuste el Align propiedad a Derecho.

Cambiar el nombre de propiedad para OverflowButton.

Seleccione detailstoolbutton para el StyleLookup propiedad.

3. Cada de una TListBox al formulario.

Agregue cinco TListBoxItem de Artculos Editor.

Compruebe akTop y akRight del Anclas propiedad del TListBox componente.

Ajuste de altura a 220.

Cambiar Nombre de OverflowMenu.

Ajuste el Visible propiedad a False.

4. Durante los primeros cuatro TListBoxItem componentes en TListBox ir


a Object Inspector, ampliar ItemData y definir Bitmap propiedad y cambiar texto alojamiento
hasta el valor de texto que desea.
5. Para el ltimo TListBoxItem establece accesorio para Amore y texto a ms.
6. Aadir un TShadowEffect componente al men de desbordamiento.
Estructura Ver

Android LG-E612

Crear el controlador de eventos para el botn de desbordamiento


En el Diseador de formularios, haga doble clic en el OverflowButton componente. Agregue el
cdigo siguiente a este controlador de eventos:

Delphi:

procedure TForm1 . OverflowButtonClick ( Sender : TObject )


;
begin
OverflowMenu . Visible : = not OverflowMenu . Visible ;
//change el estado de visibilidad
if OverflowMenu. Visible then // Se muestra el men de
desbordamiento
begin
ListBox1. SendToBack;

OverflowMenu. BringToFront;
OverflowMenu. ItemIndex: = - 1; // la propiedad
ItemIndex especifica el elemento seleccionado actualmente
(valor predeterminado es -1 que los medios que ningn
elemento est seleccionado)
OverflowMenu. ApplyStyleLookup;
OverflowMenu. RealignContent; // vuelve a alinear
controles del OverflowMenu TListBox los nios TListBoxItem
end;
end;

Aadir un cuadro de bsqueda

Para agregar un cuadro de bsqueda al componente ListBox, haga clic en


el TListBox componente y simplemente seleccione Agregar elemento> TSearchBox en el
men contextual:

Para aadirlo a la barra de accin:

Ajuste el Visible propiedad a False.

Para crear el controlador de eventos para el SearchButton, haga doble clic en l y


aadir el siguiente cdigo:

Delphi:

procedure TForm1 . SearchButtonClick ( Sender : TObject ) ;


begin
SearchBox1 . Visible : = not SearchBox1 . Visible ;
//change el estado de visibilidad
final;
C ++:

anular __fastcall TForm1 :: SearchButtonClick (TObject *


Remitente)
{SearchBox1 -> Visible =! (SearchBox1 -> Visible); //
cambiar el estado de visibilidad}

Ejecucin de su Aplicacin
1. Seleccione:

Ejecutar> Ejecutar

Ejecutar> Ejecutar sin depurar

2. Para invocar el men de desbordamiento, haga clic en los puntos suspensivos vertical en la
barra de accin.
3. Para ver el cuadro de bsqueda, haga clic en el SearchButton.
Android (Samsung Tab 2.0)

Android (Samsung Tab 2.0)

Visualizacin del men de desbordamiento

Viendo el cuadro de bsqueda

Tutorial mvil: Uso del explorador Web Component


(iOS y Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Para las plataformas mviles, FireMonkey envuelve el componente navegador web como

el TWebBrowser componente. En este tema se describe cmo crear una aplicacin Web Browser
FireMonkey simple para iOS y Android plataformas.

Contenidos
[Ocultar]

1 Diseo de la interfaz de usuario

2 Escribir un controlador de eventos para abrir una pgina Web cuando el usuario cambia la direccin URL en
el control de edicin

2.1 Implementar un mtodo comn para abrir una pgina Web

2.2 Implementar un controlador de eventos para el evento OnChange

2.3 Implementar un controlador de eventos para el botn Atrs

3 Seleccin del teclado virtual adecuada para el navegador Web Application

4 WebBrowser Cdigo mvil de fragmentos

5 Vase tambin

Diseo de la interfaz de usuario


1. Seleccione:

Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en blanco

Archivo> Aplicacin Nuevo> Multi-Device - C ++ Builder> Aplicacin en blanco

2. Seleccione el TToolBar componente en la paleta de herramientas y colquelo en


el Diseador deformularios.
Para encontrar TToolBar, introduzca unos pocos caracteres (como "herramienta") en
el Buscarcuadro de la paleta de herramientas:

3. Despus se le cae el componente, se puede ver el TToolBar componente en la parte


superior del Diseador de formularios. Aqu hay una captura de pantalla despus de
establecer el estilo de iOS en el Diseador de formularios:

4. Seleccione el TButton componente en la paleta de herramientas y colquelo en


el TToolBar.
5. Seleccione el TButton componente en el Diseador de formularios, y despus en
el Inspector de Objetos, establezca la StyleLookup propiedad a priortoolbutton.

El priortoolbutton valor StyleLookup para TButton aade una etiqueta Volver

botn. En los dispositivos IOS, la etiqueta es similar a la siguiente imagen:

Para ms detalles acerca de cmo seleccionar un estilo en aplicaciones multidispositivo, consulte mvil Tutorial: Utilizar un componente Button con diferentes
estilos (iOS y Android).

6. Seleccione el TEdit componente en la paleta de herramientas y colquelo en


el TToolBar. Asegrese de que el tamao del control de edicin es lo suficientemente
amplia como para cubrir la zona de la TToolBar:

7. Seleccione la casilla de edicin en el Diseador de formularios, y despus en el Inspector


de Objetos, establezca la ReturnKeyType propiedad a Hecho,
KeyboardType propiedad a la

el

URL y el KillFocusByReturn propiedad a Verdadero.

Para obtener ms informacin sobre cmo seleccionar el tipo de teclado virtual ms


apropiado en las plataformas mviles, consulte Seleccin del teclado virtual adecuada para
la aplicacin Web Browser.
8. Seleccione el TWebBrowser componente en la paleta de herramientas y colquelo en el
formulario. Nota: Si el TWebBrowser componente est desactivado, seleccione la
plataforma de destino para Android o iOS.
9. Seleccione el componente navegador web en el Diseador de formularios, vaya al inspector
de objetos y seleccione Cliente para la Align propiedad.
Despus de completar estos pasos, el formulario debe ser similar a la siguiente imagen:

Escribir un controlador de eventos para abrir una pgina


Web cuando el usuario cambia la direccin URL en el control
de edicin
A diferencia de las plataformas de escritorio, plataformas mviles utilizan el teclado virtual para
introducir texto como en las siguientes imgenes. El usuario puede completar la accin haciendo clic
en "Hecho".
iOS

Android

iPad

Android (LG - E612

FireMonkey ofrece muchos tipos de controladores de eventos para cubrir la mayora de las acciones
tomadas por los usuarios. Despus se selecciona el botn "Done", el marco FireMonkey enva
unOnChange evento para el control TEdit. Por otra parte, no hay ningn evento especfico para el
botn "Back". En esta seccin, implementar controladores de eventos para apoyar a ambos
escenarios.

Implementar un mtodo comn para abrir una pgina Web


Antes de implementar controladores de eventos, primero aplicar un mtodo comn para abrir una
pgina Web basada en el texto de propiedades del control de edicin.
1. En el Editor de cdigo, cree la siguiente OpenURL nuevo mtodo privado:
Delphi:

type
TForm1 = Class ( TForm )
ToolBar1 : TToolBar ;
Button1 : TButton ;
Edit1 : TEdit ;
WebBrowser1 : TWebBrowser ;

private
{ Declaraciones privadas}
procedimiento OpenURL;
pblico
declaraciones pblicas}
{final;
C ++ Builder:

privada:
declaraciones // usuario
vaco OpenUrl __fastcall ();
2. Implementar el openURL mtodo de la siguiente manera:
Delphi:

procedimiento TForm1. OpenURL;


comenzar
WebBrowser1. Navigate (Edit1. texto);
finales;

C ++ Builder:

anular __fastcall TForm1 :: openURL ()


{WebBrowser1 -> Navigate (Edit1 -> texto);}

Implementar un controlador de eventos para el evento OnChange


1. Crear el controlador de eventos seleccionando el Editar componente (en el Diseador de
formularios), y haga doble clic en el espacio en blanco al lado de la OnChange evento (en
el Inspector de Objetos Eventos pestaa).
El Inspector de Objetos crea un nuevo controlador de eventos denominado Edit1Change:

2. Complete el controlador de eventos agregando el siguiente cdigo:


Delphi:

procedimiento TForm1. Edit1Change (Remitente:


comienzan
OpenURL;
final;
C ++ Builder:

TObject):

anular __fastcall TForm1 :: Edit1Change (TObject *


Remitente)
{openURL ();}

Implementar un controlador de eventos para el botn Atrs


Para implementar el nuevo botn de su navegador web, slo tiene que llamar al GoBack mtodo en
el componente navegador web:
Delphi:

procedimiento TForm1. Button1Click (Remitente:


comenzar
WebBrowser1. GoBack,
finales;

TObject);

C ++ Builder:

anular __fastcall TForm1 :: Button1Click (TObject *


Remitente)
{WebBrowser1 -> GoBack ();}
El comportamiento bsico ahora se implementa para esta aplicacin Web Browser. Intente ejecutar
la aplicacin en su dispositivo Android, el simulador de iOS, o su dispositivo iOS.

Seleccin del teclado virtual adecuada para el navegador


Web Application
Despus de ejecutar su aplicacin de navegador Web primero, es posible darse cuenta de que el
teclado virtual no est optimizado.
iOS proporciona varios teclados virtuales como sigue:
Alfabeto:

Por defecto:

Direccin de correo
electrnico:

NamePhonePad:

Numrico:

NumbersAndPunctuati
on:

PhonePad:

URL:

Android proporciona varios teclados virtuales como sigue:


Alfabeto:

Por defecto:

Direccin de correo
electrnico:

NamePhonePad:

Numrico:

NumbersAndPunctuati
on:

PhonePad:

URL:

El tipo de teclado virtual ms adecuado para los componentes de navegador Web es el URL. Como
ya hemos discutido en Diseo de la interfaz de usuario, los pasos siguientes establecen
la URLcomo el tipo de teclado virtual para el componente navegador web en este
ejemplo. Seleccione la casilla de edicin en el Diseador de formularios, y despus en el Inspector
de Objetos, establezca la KeyboardType propiedad a la URL.

Tutorial mvil: Usando LiveBindings rellenar un


ListBox en aplicaciones mviles (iOS y Android)
Ir hasta Tutoriales mviles
Ir hasta LiveBindings en RAD Studio

Este tutorial le gua a travs de los pasos de la conexin de datos a un control ListBox FireMonkey
en sus dispositivos mviles, utilizando LiveBindings.
Contenidos
[Ocultar]

1 Paso 1: Crear el proyecto

2 Paso 2: Creacin de los LiveBindings

3 Los Resultados

4 Vase tambin

Paso 1: Crear el proyecto


En este proyecto, se necesita un cuadro de lista, un rectngulo, y tambin una fuente de unin de
prototipos. Para agregar estos componentes, siga los siguientes pasos:
1. Seleccionar:

Para Delphi: Archivo> Nuevo> Aplicacin de mltiples dispositivos - Delphi

Para C ++: Archivo> Nuevo> Aplicacin de mltiples dispositivos - C ++ Builder

2. Seleccione el TListBox componente en la paleta de herramientas y colquelo en


el Diseador de formularios.
3. Seleccione el componente de cuadro de lista en el Diseador de formularios, y en
el Inspector de Objetos, localice
el DefaultItemStyles.ItemStyle propiedad. Ajstelo a
lalistboxitemrightdetail estilo.

4. Deseleccione el componente de cuadro de lista, haga clic en un rea en blanco del


Diseador de formularios.
5. Seleccione el TRectangle componente en la paleta de herramientas y colquelo en
el Diseador de formularios.
6. Seleccione el componente de rectngulo en el Diseador de formularios, y en el Inspector
de Objetos, establezca la Align propiedad a la

parte inferior.

7. Seleccione el componente de cuadro de lista y establezca su Align propiedad a cliente.


8. Ahora soltar un TPrototypeBindSource de la paleta de herramientas hasta el formulario.
En este punto, el formulario debe ser similar a la pantalla de iOS siguiente:

Es necesario agregar datos de muestra de colores y nombres de colores a


la TPrototypeBindSource componente con el fin de apoyar el objetivo de este tutorial y de ligar el
cuadro de lista y el rectngulo.
1. Haga clic con el TPrototypeBindSource componente y, a continuacin, haga clic en Agregar
campo en el men contextual.

2. Seleccione AlphaColors y ColorsNames del Campo de datos de lista y borrar los valores
Aleatorio casilla de verificacin.
Esta operacin se suma la muestra de datos ordenados alfabticamente (valores de color
alfa y nombres).

3. Validar la seleccin haciendo clic en el Aceptar botn. Ahora los datos de la muestra est
listo para ser utilizado a travs LiveBindings.

Paso 2: Creacin de los LiveBindings


Abra el Diseador LiveBindings. El diagrama sin conexiones es similar a la siguiente imagen:

1. Enlazar ColorsName1 de PrototypeBindSource1 a Item.Text de ListBox1. (Instrucciones


ColorsName1 y arrastre el ratn para Item.Text.) Ahora el cuadro de lista muestra
todos los nombres de los colores en la fuente de unin de prototipos.
2. Enlazar ColorsName1 de PrototypeBindSource1 a ItemHeader.Text de ListBox1. Ahora
el cuadro de lista tambin muestra encabezados con todos los nombres de los colores en
la fuente de unin de prototipos.
3. En el Diseador LiveBindings, haga clic en el enlace que
conecta ColorsName1 a ItemHeader.Text.
4. En el Inspector de Objetos, localice el FillHeaderCustomFormat propiedad y
seleccione la subcadena (% s, 0, 1) expresin de enlace de la lista desplegable.
En este punto, la lista de los grupos de la caja de todos los nombres de los colores en
categoras alfabticas:

5. Enlazar AlphaColor1 de PrototypeBindSource1 a Item.LookupData de ListBox1. Esto


asegura que la seleccin del nombre del color tambin seala el valor de color alfa
correcta.

6. Enlazar AlphaColor1 de PrototypeBindSource1 a Item.Detail de ListBox1. Esto asegura


que el valor de color alfa aparece en la parte derecha del elemento del cuadro de lista.
7. Haga clic en el botn de puntos suspensivos [...] en el Rectngulo1 bloque diagrama en
el Diseador LiveBindings, y en la ventana que se abre, escriba Fill.Color. Seleccione
el Fill.colorcasilla de verificacin y haga clic en OK:

8. Enlazar Fill.Color de Rectngulo1 a SelectedValue de ListBox1. Esto asegura cambios de


color de relleno del rectngulo de acuerdo a la seleccin de lista de elementos caja.
Nota: Cuando se trata de obligar Fill.Color a SelectedValue, se abre un cuadro de mensaje de
confirmacin. En este cuadro de mensaje, elija S.
Despus de completar los pasos anteriores, el diagrama LiveBindings ser similar a la siguiente
imagen:

La aplicacin ya est listo para funcionar en el dispositivo mvil.

Los resultados
Para ejecutar la aplicacin, pulse F9 o seleccione Ejecutar> Ejecutar.

Al seleccionar un elemento del cuadro de lista, los cambios de color del rectngulo en consecuencia:

iOS (iPad)

Android (LG-E612)

Tutorial mvil: El uso de un componente de


calendario para seleccionar una fecha (iOS y
Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 Calendario de plataformas mviles

2 La implementacin de un controlador de eventos para los cambios de los usuarios a la Fecha

3 Vase tambin

Calendario en plataformas mviles


FireMonkey utiliza el TDateEdit componente para envolver un componente de calendario o selector
de fechas para la plataforma de destino mvil:
iOS7

Android

iPad2
LG-E612
Nota: El TCalendarEdit componente utilizado en RAD Studio XE5 o anterior es obsoleto. Utilice
la TDateEdit componente en su lugar.

Para utilizar el TDateEdit componente, siga estos pasos sencillos:


1. Seleccione el TDateEdit componente en la paleta de herramientas, y colocar el componente
en el Diseador de formularios. Para encontrar el componente en la paleta de
herramientas, introduzca los primeros caracteres (como "que") en el cuadro de
bsqueda

():

Despus se le cae el componente, se puede ver el TDateEdit componente en el Diseador


de formularios:

Opcionalmente, en el inspector de objetos, puede configurar las siguientes propiedades


de TDateEdit:

ShowCheckBox: cuando verdadera,

muestra una

casilla de verificacin en la
TDateEdit control. Esta casilla de verificacin permite activar /
desactivar elTDateEdit el control en tiempo de ejecucin.

ShowClearButton: cuando verdadera,

muestra un

botn en el TDateEdit control. Haga clic en este botn para


borrar los valores en este control en tiempo de ejecucin.

2. Bsicamente, eso es todo. Ejecute la aplicacin ya sea en un simulador / emulador o


dispositivo mvil conectado. Despus de tocar TDateEdit, aparece el control de
calendario, y usted puede seleccionar una fecha.

iOS6 (iPhone5)

Android (LG-E612)

La implementacin de un controlador de eventos para los


cambios de los usuarios a la Fecha
Despus de que el usuario cambia la fecha, el OnChange evento se activa. Se puede implementar
un controlador de eventos para el OnChange evento para reaccionar a la accin del usuario.
Para implementar el controlador de eventos OnChange '
1. Seleccione el TDateEdit componente.
2. En el Inspector de Objetos, abra el Events pgina y haga doble clic en el espacio vaco al
lado de OnChange.
3. Escribe cdigo como sigue:
Delphi:

procedure TForm25 . DateEdit1Change ( Sender : TObject ) ;


begin
ShowMessage ( FormatDateTime ( 'dddddd' , DateEdit1 .
Date ) ) ;
end ;
C ++ Builder:

anular __fastcall TForm25 :: DateEdit1Change (TObject *


Remitente)
{ShowMessage (FormatDateTime ("dddddd", DateEdit1 ->
Fecha));}

Este cdigo muestra un cuadro de dilogo de mensaje con una fecha


seleccionada. El FormatDateTime funcin convierte la fecha seleccionada en un formato
especificado (en este caso dddddd da formato de fecha al estilo de largo):
iOS (iPad)

Android (LG-E612)

Tutorial mvil: Usando Combo Box Componentes


escoger elementos de una lista (iOS y Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 La implementacin de un selector de aplicaciones multi-dispositivo

2 La construccin de una lista de artculos mediante cdigo

3 Visualizacin de un artculo especfico

4 La implementacin de un controlador de eventos para la seleccin del usuario

5 Vase tambin

La implementacin de un selector de aplicaciones multidispositivo


Para las plataformas mviles, FireMonkey envuelve el componente Selector con
el TComboBox componente:
iOS 7 (iPad2)

Android (LG-E612)

Para definir un selector y los elementos de la lista asociados:


1. Seleccione una de las siguientes:

Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en blanco

Archivo> Aplicacin Nuevo> Multi-Device - C ++ Builder> Aplicacin en blanco

2. Seleccione el TComboBox componente en la paleta de herramientas y colquelo en


el Diseador de formularios.
Para encontrar TComboBox, introduzca los primeros caracteres ("Com") en el cuadro de
bsqueda de la paleta de herramientas:

3. Despus se le cae el componente, se puede ver el componente TComboBox en el


Diseador de formularios.
Haga clic con el TComboBox componente y seleccione artculos Editor ...:

4. Para definir los elementos, haga clic en Agregar elemento varias veces.

5. En la vista de estructura, seleccione ListBoxItem1 (el primer elemento de la lista).


6. En el Inspector de Objetos, editar el texto inmuebles en ListBoxItem1.
En este ejemplo (los cincuenta estados de los EE.UU.), introduzca "Alabama" como el
primer elemento de la lista:

7. Edite otros artculos, as, como Alaska, Arizona, Arkansas, California, Colorado, y as
sucesivamente.
8. Ejecutar la aplicacin en su plataforma de destino mvil elegido (simulador de iOS (para
Delphi solamente), iOS dispositivo, Android emulador o dispositivo Android).
Despus de tocar TComboBox, aparece el control de selector, y se puede seleccionar un
elemento.

La construccin de una lista de artculos mediante cdigo


Para crear una lista de elementos mediante cdigo, debe implementar el onFormCreate controlador
de eventos de la siguiente manera:
Delphi:

procedure TForm27 . FormCreate ( Sender : TObject ) ;


begin
ComboBox1 . Items . Add ( 'Alabama' ) ;
ComboBox1 . Items . Add ( 'Alaska' ) ;
ComboBox1 . Items . Add ( 'Arizona' ) ;
ComboBox1 . Items . Add ( 'Arkansas' ) ;
ComboBox1 . Items . Add ( 'California' ) ;
// Otros estados pueden enumerar aqu
ComboBox1. Artculos. Aadir ('Virginia');
ComboBox1. Artculos. Aadir ('Washington');
ComboBox1. Artculos. Aadir ('West Virginia');
ComboBox1. Artculos. Aadir ('Wisconsin) ;
ComboBox1. Artculos. Aadir ('Wyoming');
finales;
C ++ Builder:

void __fastcall Otros estados pueden enumerar Virginia ");

ComboBox1 -> Artculos -> Aadir (" Wisconsin ");


ComboBox1 -> Artculos -> Aadir (" Wyoming ");}

Viendo un artculo especfico


El elemento seleccionado es especificado por el ItemIndex propiedad. ItemIndex es un valor entero
que se especifica el uso de un ndice basado en cero (es decir, el primer elemento es cero).
Para mostrar la lista con el quinto elemento seleccionado ("California" en el cdigo de ejemplo
siguiente), especifique ItemIndex de la siguiente manera:
Delphi:

procedure TForm27 . FormCreate ( Sender : TObject ) ;


begin
ComboBox1 . Items . Add ( 'Alabama' ) ;
ComboBox1 . Items . Add ( 'Alaska' ) ;
ComboBox1 . Items . Add ( 'Arizona' ) ;
ComboBox1 . Items . Add ( 'Arkansas' ) ;
ComboBox1 . Items . Add ( 'California' ) ;
// Otros estados pueden enumerar aqu
// ndice de quinto elemento es "4"
ComboBox1. ItemIndex: = 4;
final;
C ++ Builder:

void __fastcall Otros estados pueden enumerar aqu

// ndice de quinto elemento es "4"


ComboBox1 -> ItemIndex = 4;}
Si usted no sabe el valor del ndice, se puede encontrar el valor utilizando el IndexOf mtodo de la
siguiente manera:
Delphi:

procedure TForm27 . FormCreate ( Sender : TObject ) ;


begin
ComboBox1 . Items . Add ( 'Alabama' ) ;
ComboBox1 . Items . Add ( 'Alaska' ) ;
ComboBox1 . Items . Add ( 'Arizona' ) ;
ComboBox1 . Items . Add ( 'Arkansas' ) ;
ComboBox1 . Items . Add ( 'California' ) ;
// Otros estados pueden enumerar aqu

ComboBox1. ItemIndex: = ComboBox1. Artculos. IndexOf


('California');
finales;
C ++ Builder:

void __fastcall Otros estados pueden enumerar aqu

ComboBox1 -> ItemIndex = ComboBox1 -> Artculos -> IndexOf


("California");}

La implementacin de un controlador de eventos para la


seleccin del usuario
Despus de que el usuario selecciona un elemento, el OnChange evento se activa. Para responder
a la accin del usuario, se puede implementar un controlador de eventos para el evento OnChange.
Nota: Antes de continuar con este escenario, realice los siguientes pasos:
1. Seleccione el TMemo componente en la paleta de herramientas y colquelo en
el Diseador de formularios.
2. En el Inspector de Objetos, establezca la TMemo.Align propiedad a Monte.
Para implementar un controlador de eventos OnChange:
1. Seleccione el TComboBox componente.
2. En el Inspector de Objetos, abra el Events pgina y haga doble clic en el espacio vaco al
lado de OnChange.
3. El Editor de cdigo se abre. Escribe cdigo como sigue:
Delphi:

procedimiento TForm27. ComboBox1Change (Remitente: TObject);


comenzar
Memo1. Lneas. Inserte (0, (Formato ('fue seleccionado% s
en el ndice% d del artculo.', [ComboBox1. seleccionada.
Texto,
ComboBox1. ItemIndex])));
terminar;
C ++ Builder:

anular __fastcall TForm27 :: ComboBox1Change (TObject *


Remitente)
{Memo1 -> Lneas -> Insert (0, "elemento" + ComboBox1 ->
Seleccionado -> Texto + "en el ndice" + IntToStr (ComboBox1
-> ItemIndex) + "fue seleccionado . ");}

Este controlador de eventos muestra un dilogo de mensaje que indica el elemento seleccionado.
En el cdigo de Delphi, el Formato funcin devuelve una cadena con formato montado a partir de
una cadena de formato y una serie de argumentos:

Android (LG - E612)

iOS6 (iPad)

Tutorial mvil: El uso de un componente MultiView


para Mostrar Alternar vistas de la Informacin (iOS y
Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 Sobre el Componente TMultiView

1.1 Maestro Panel de Presentacin Modos

1.1.1 Modo de cajn

1.1.2 Modo Popover

1.1.3 Plataforma Modo Comportamiento dependiente

1.1.4 Modo personalizado

2 El diseo de la interfaz de usuario

2.1 Disear el Maestro Pane

2.2 El diseo del panel Detalle

2.3 Configuracin de las Propiedades TMultiView componentes

2.4 Pasos finales

3 Ejecutar la aplicacin Ejemplo

4 Mobile muestras de productos que uso TMultiView

5 Vase tambin

Acerca del Componente TMultiView


El FMX.MultiView.TMultiView componente representa un recipiente (el panel principal) para otros
controles, y proporciona una forma para que usted pueda fcilmente presentes vistas alternativas de
informacin. El TMultiView componente le permite implementar una interfaz maestro-detalle, que
puede ser utilizado para cualquier plataforma de destino apoyado.

El panel principal puede mostrar una coleccin de controles visuales, tales como cuadros de
edicin, etiquetas, listas, y as sucesivamente.

El panel de detalles tpicamente muestra la informacin basada en las propiedades de los


controles en el panel principal.

La siguiente pantalla muestra un ejemplo de interfaz maestro-detalle. En el panel principal (el panel
atracado izquierda), se introduce una posicin geogrfica y, a continuacin, haga clic
en Buscar para hacer que el panel de detalles (panel derecho) para ver el mapa Google
correspondiente.

Maestro Panel de Presentacin Modos


El TMultiView clase define un conjunto de propiedades que le permiten controlar el comportamiento
de la interfaz. Por ejemplo, el TMultiView.Mode propiedad especifica el modo de presentacin panel
principal como se describe en la siguiente tabla:
TMultiView.Mode

Maestro Panel de Presentacin

Cajn

Cajn (Push / Overlap)

Panel

Panel acoplado

PlatformBehaviour

(vase el cuadro siguiente)

Popover

Men emergente

Personalizado

Para obtener ms informacin, consulte el Modo


personalizado subseccin.

Nota: En tiempo de diseo, despus de cambiar el TMultiView.Mode valor de la propiedad en


el inspector de objetos, el panel principal podra llegar a ser invisible. Para solucionar este problema,
en el Diseador de formularios, seleccione la TMultiView componente, y despus en el Inspector
de Objetos, establezca el Visible propiedad a Verdadero.

Modo de cajn
Si establece el TMultiView.Mode propiedad
a cajn (usando TDrawerAppearance.Mode = OverlapDetailView),

el panel

principal se oculta inicialmente. Para mostrar el panel principal, el usuario


pasa la derecha desde el borde izquierdo de la pantalla, como se muestra en la siguiente imagen
animada:

Modo Popover
Tambin puede establecer la TMultiView.Mode propiedad a Popover para hacer el panel principal
de un men emergente que aparece al lado del botn principal especificado en
elTMultiView.MasterButton propiedad.

Importante: En el modo Popover, debe establecer el TMultiView.MasterButton propiedad. Esta


propiedad se refiere a un elemento de la interfaz de usuario que muestra u oculta el panel
principal. En la pantalla de arriba, el botn principal es el Mostrar / Ocultar botn.

Plataforma Modo Comportamiento dependiente


Usted puede dejar que la aplicacin selecciona automticamente el modo de presentacin panel
principal, si el TMultiView.Mode propiedad se establece en PlatformBehaviour. Para esta
configuracin, el comportamiento de la aplicacin depende del tipo y orientacin del dispositivo,
como se describe en la siguiente tabla:
Tipo de dispositivo Orientacin dispositivo Maestro Panel de Presentacin

Telfono

Paisaje, Retrato

Cajn (push / superposicin)

Tablet

Paisaje

Panel acoplado

Tablet

Retrato

Cajn (push / superposicin)

Modo personalizable
En el modo personalizado, puede personalizar la presentacin panel principal para cumplir con sus
tareas. Para personalizar la presentacin panel principal, realice los siguientes pasos bsicos:
1. Declare su propia clase, como MyPresentationClass que desciende
desde TMultiViewPresentation o de otras clases que fueron declaradas en la unidad
FMX.MultiView.Presentations.
2. En el MyPresentationClass,

opcionalmente, anular los

siguientes mtodos virtuales definidos en la clase base:

DoOpen

DoClose

GetDisplayName

DoInstall

DoUninstall

Estos mtodos definen el comportamiento panel principal.


3. En el Diseador de formularios, seleccione la TMultiView componente, y despus en
el Inspector de Objetos, establezca su propiedad Modo de encargo.
4. Implementar el onFormCreate controlador de eventos de la siguiente manera:
Delphi:

procedure TForm1 . FormCreate ( Sender : TObject ) ;


begin
MultiView1 . CustomPresentationClass : =
MyPresentationClass ;
end ;
C ++ Builder:

void __fastcall TForm1 :: FormCreate ( TObject * Sender


)
{
MultiView1 - > CustomPresentationClass = __classid (
MyPresentationClass ) ;
}

Este tema le ayuda a desarrollar una sencilla aplicacin que muestra el uso de
la TMultiView componente.

El diseo de la interfaz de usuario


1. Seleccione Archivo> Nuevo> FireMonkey Aplicacin Multi-Device - Delphi> Aplicacin
en blanco o Archivo> Nuevo> Aplicacin FireMonkey Multi-Device - C ++
Builder>Aplicacin en blanco.
2. Seleccione el TMultiView componente en la paleta de herramientas y colquelo en
el Diseador de formularios.
3. Cada de otros controles, como botones, cuadros de edicin o cualquier otro control que
necesita sobre el recipiente MultiView.
4. En la paleta de herramientas, seleccione un componente que desea utilizar como un panel
de detalles (como TPanel), y colocar los controles en este panel.
5. En el Inspector de Objetos, especifique las propiedades apropiadas
del TMultiView componente.
Para aclarar este procedimiento, las siguientes secciones consideran un ejemplo particular: una
aplicacin que controla la cmara del dispositivo mvil.

Disear el Maestro Pane


1. Seleccione el TMultiView componente en la paleta de herramientas y colquelo en
el Diseador de formularios.
2. Cada de dos TButton componentes en el TMultiview contenedor, y despus en
el Inspector de Objetos especificar las siguientes propiedades de los botones:

Establezca el Nombre propiedad a bStartCamera y bStopCamera,


respectivamente.

Ajuste el texto propiedad a Comience Cmara y Detener


la cmara, respectivamente.

3. Cada de una TLabel componente en el TMultiview contenedor, y despus en el Inspector


de Objetos, establezca su texto propiedad a Tipo de cmara:.
4. Cada de dos TButton componentes en el TMultiview contenedor, y despus en
el Inspector de Objetos especificar las siguientes propiedades de los botones:

Establezca el Nombre propiedad a bFrontCamera y bBackCamera,


respectivamente.

Ajuste el texto propiedad a Frente y Atrs, respectivamente.

El diseo del panel Detalle


1. Seleccione el TPanel componente en la paleta de herramientas y colquelo en el Diseador
de formularios.

2. En el Inspector de Objetos, establezca la TPanel.Align propiedad a cliente.


3. La cada de la TCameraComponent en el TPanel contenedor.
4. La cada de la TImage en el TPanel contenedor, y establezca las siguientes propiedades:

Nombre = imgCameraView

Align = Cliente

Consejo: Ponga todos los elementos del panel de detalles en un recipiente nico
(un TPanel componente en nuestro ejemplo). Este recipiente se debe especificar en
elTMultiView.TargetControl propiedad.
Nota: No se recomienda poner controles nativos en el panel de detalles, ya que no son compatibles
con el orden Z de la forma: un control natal es siempre en la parte superior de otros controles
disponibles en el formulario.

Establecer las propiedades de TMultiView componentes


En el Diseador de formularios, seleccione la TMultiView componente, y despus en el Inspector
de Objetos, establezca las siguientes propiedades:

TargetControl = Panel1

Modo = Cajn

Ampliar el DrawerOptions nodo, y establecer el modo de propiedad a OverlapDetailView.

Ampliar el ShadowOptions nodo, y establecer el color de propiedad a beige. (Esta propiedad


define el color de la sombra del panel principal. Se puede utilizar cualquier color disponibles.)

Pasos finales
Para completar el desarrollo de la aplicacin, se debe implementar controladores de eventos para
los botones de aplicacin y la GetImage mtodo privado que obtiene una imagen de la cmara
del dispositivo.

Para implementar los controladores de eventos OnClick


1. En el Diseador de formularios, haga doble clic en la Cmara de inicio botn e inserte el
siguiente cdigo:
Delphi:

procedimiento TForm7. bStartCameraClick (Remitente:


TObject);
comenzar
CameraComponent1. Activo: = cierto;
final;
C ++ Builder:

anular __fastcall TForm7 :: bStartCameraClick (TObject *


Remitente)
{CameraComponent1 -> Activo = verdadero;}
2. Haga doble clic en la cmara Deje botn e inserte el siguiente cdigo:
Delphi:

procedimiento TForm7. bStopCameraClick (Remitente:


TObject);
comenzar
CameraComponent1. Activo: = false;
final;
C ++ Builder:

anular __fastcall TForm7 :: bStopCameraClick (TObject *


Remitente)
{CameraComponent1 -> Activo = false;}
3. Haga doble clic en el Frente botn e inserte el siguiente cdigo:
Delphi:

procedure TForm7 .
) ;
begin
CameraComponent1
CameraComponent1
. FrontCamera ;
CameraComponent1
end ;
C ++ Builder:

bFrontCameraClick ( Sender :

TObject

. Active : = False ;
. Kind : = FMX . Media . TCameraKind
. Active

: =

True ;

anular __fastcall TForm7 :: bFrontCameraClick (TObject *


Remitente) {//
seleccione Frente Camera
CameraComponent1 - > Active = false ;
CameraComponent1 - > Kind = TCameraKind ::
ckFrontCamera ;
CameraComponent1 - > Active = true ;
}
4. Haga doble clic en el nuevo botn, e inserte el siguiente cdigo:
Delphi:

procedure TForm7 .
) ;
begin
CameraComponent1
CameraComponent1
. BackCamera ;
CameraComponent1
end ;

bBackCameraClick ( Sender :

TObject

. Active : = False ;
. Kind : = FMX . Media . TCameraKind
. Active

: =

True ;

C ++ Builder:

anular __fastcall TForm7 :: bBackCameraClick (TObject *


Remitente) {//
seleccione Atrs Camera
CameraComponent1 - > Active = false ;
CameraComponent1 - > Kind = TCameraKind ::
ckBackCamera ;
CameraComponent1 - > Active = true ;
}
Para implementar el controlador de eventos onSampleBufferReady

En el Diseador de formularios, haga doble clic en el CameraComponent1 y aplicar el


siguiente cdigo:
Delphi:

procedure TForm7 . CameraComponent1SampleBufferReady (


Sender : TObject ;
const ATime : Int64 ) ;
begin
TThread . Synchronize ( TThread . CurrentThread ,
GetImage ) ;
end ;
C ++ Builder:

anular __fastcall TForm7 ::


CameraComponent1SampleBufferReady (TObject * Sender,

const __int64 ATIME)


{GetImage ();}
Para el TForm7 clase, debe implementar el mtodo privado GetImage. El controlador de eventos
onSampleBufferReady llama a este mtodo para obtener la imagen de la cmara del dispositivo.
Haz lo siguiente:
1. En la seccin privada de la TForm7 clase, declarar la GetImage mtodo:
Delphi:

privados
{declaraciones privadas}
procedimiento GetImage;
C ++ Builder:

privada:
declaraciones // usuario
vaco getImage __fastcall ();
2. Implementar el GetImage mtodo de la siguiente manera:
Delphi:

procedimiento TForm7. GetImage;


comenzar
CameraComponent1. SampleBufferToBitmap (imgCameraView.
Bitmap, Verdadero);
finales;
C ++ Builder:

anular __fastcall TForm7 :: GetImage ()


{CameraComponent1 -> SampleBufferToBitmap
(imgCameraView -> Mapa de bits, verdadera);}

Ejecutar la aplicacin Ejemplo


Para ejecutar esta aplicacin, haga lo siguiente:
1. En el Project Manager, seleccione la plataforma de destino (con el apoyo de plataformas:
Android o iOS).
2. Presione Mays

+ Ctrl + F9 para ejecutar la aplicacin sin depurar.

3. Para abrir el panel principal, deslizar derecha desde el borde izquierdo de la pantalla del
dispositivo.
4. Para activar la cmara del dispositivo, en el panel principal, haga clic en Inicio de
la cmara.

5. Opcionalmente, se puede seleccionar la cmara frontal o trasera (si est disponible)


utilizando el Frente o Volver botn, respectivamente.

Para cerrar el panel principal, deslcelo hacia la izquierda.

Tutorial mvil: Utilizacin de componentes ficha para


mostrar pginas (iOS y Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Aqu se definen por FMX.TabControl.TTabControl, que es un contenedor que puede contener


varias pginas de ficha. Cada pestaa puede contener ningn tipo de control como un elemento de
interfaz de usuario. Puede ocultar la pestaa de estas pginas, y cambiar pginas sin mostrar
pestaas.

Para cada pestaa, puede especificar:

Una etiqueta de texto - tanto para iOS y Android

Iconos predefinidos - para iOS solamente

Los iconos personalizados - tanto para iOS y Android


Contenidos
[Ocultar]

1 Utilizando el estilo nativo de aqu en iOS y Android

2 Proyectos Tab Pginas Usando el Diseador de formularios

2.1 Comparacin de los Parmetros de la ficha en iOS y Android

3 Utilizando personalizados iconos multi-resolucin para sus ms aqu

3.1 Viendo Multi-Resolucin iconos personalizados en la ms aqu

3.2 El uso de un solo Resolucin de mapa de bits para un icono personalizado

4 Definicin de controles dentro de un TabControl

5 Cambio de la pgina en tiempo de ejecucin

5.1 Por el Usuario Aprovechar el Tab

5.2 Por acciones y un ActionList

5.3 Por Cdigo Fuente

5.3.1 Asignar una instancia de TTabItem a la propiedad activeTab

5.3.2 Cambiar la propiedad TabIndex a un valor diferente

5.3.3 Si se define ChangeTabAction, puede ejecutar una accin en su cdigo

6 Vase tambin

Usando el estilo nativo de aqu en iOS y Android


. Este tutorial muestra fichas con el mismo estilo tanto en iOS y Android, pero no se recomienda esta
prctica
Le recomendamos que usted observa el estilo nativo de cada plataforma, de la siguiente manera:

En Android:

Aqu se colocan habitualmente en la parte superior de la pantalla (por lo que debe


establecer TTabPositionya sea para arriba o para PlatformDefault).

Aqu tradicionalmente slo muestran texto. Sin embargo, FireMonkey permite especificar
iconos personalizados que se muestran en las fichas (vase Uso de encargo iconos multiresolucin para sus msaqu).

En iOS:

Aqu se muestran normalmente en la parte inferior de la pantalla (por lo que debe


establecer TTabPositionya sea para la parte inferior o para PlatformDefault).

Artculos Tab siempre muestran el texto y un icono, que se puede ajustar a travs de
la StyleLookuppropiedad para cada ficha.

Nota: Puede utilizar el PlatformDefault valor del TTabPosition enumeracin para ajustar la posicin
del tabulador de acuerdo con el comportamiento predeterminado de la plataforma de
destino. CuandoPlatformDefault se establece para TTabPosition:

En aplicaciones de iOS, pestaas estn alineados en el borde inferior de la TTabControl.

En aplicaciones de Android, pestaas estn alineados en el borde superior de la TTabControl.

Proyectos Tab Pginas Usando el Diseador de formularios


Para crear pginas con pestaas en su aplicacin, utilice el TTabControl componente con los
siguientes pasos:
1. Seleccionar:

Para Delphi: Archivo> Nuevo> Aplicacin de mltiples dispositivos Delphi> Aplicacin en blanco

Para C ++: Archivo> Nuevo> Aplicacin de mltiples dispositivos - C ++


Builder> Aplicacin en blanco

2. En Vistas de campo en el Diseador de formularios, crear una vista para cada plataforma
desea apoyarnos. Este tutorial utiliza un iOS y una vista Android.

3. Seleccione TTabControl de la paleta de herramientas:

4. Despus se le cae el TTabControl, un vaco TabControl se muestra en el Diseador de


formularios (puede que tenga que ajustar manualmente la posicin del TabControl):
iOS

Android

5.

Normalmente, las aplicaciones que utilizan TabControl utilizan la pantalla


completa para mostrar las pginas.
Para ello, es necesario cambiar la alineacin predeterminada del TabControl. En
el Inspector de Objetos, cambie el Align propiedad del TabControl al Cliente:

6.

Haga clic con el TabControl y seleccione artculos Editor ... en el men


contextual:

7.

Haga clic en Agregar elemento tres veces, por lo que ahora usted tiene tres
instancias de TabItem aqu. Cierre el cuadro de dilogo.

8.

En el Diseador de formularios, seleccione la primera TabItem y cambiar


su StyleLookup propiedad:
iOS7

Android

10.

11. Usted puede colocar cualquier componente en cada pgina.


Para ir a una pgina diferente, basta con hacer clic en la pestaa que desee en el
Diseador de formularios, o cambiar el activeTab propiedad en el Inspector de

Objetos::

12. Para cambiar la ubicacin de las pestaas, seleccione la TabPosition propiedad


para el componente TabControls.
Para cada ficha, puede seleccionar cualquiera de los siguientes valores de la
propiedad TabPosition en el Inspector de Objetos:

Comparando la ficha Configuracin en iOS y Android


Las siguientes figuras muestran dos aplicaciones con los
mismos TabPosition ajustes (Arriba, Abajo, puntos, y ninguno) en iOS y Android. Sin
embargo, debe establecer los diferentes ajustes de la ficha apropiados para cada
plataforma mvil, como se indica en #using el estilo nativo de aqu en iOS y Android.
Cima

iOS

Android

Aqu se muestran en la parte superior.

Fondo

iOS

Android

Aqu se muestran en la parte inferior.

Puntos

iOS

Android

No se muestran aqu.
En su lugar, tres puntos ([...]) se muestran para indicar pginas adicionales.

Ninguno

iOS

Android

No hay aqu o puntos se muestran en tiempo de ejecucin, aunque se pueden ver en tiempo de
diseo.
Pgina slo puede cambiarse a travs de cdigo o accin.

Plataforma por defecto

iOS

Android

Aqu se muestran con sus ajustes por defecto de la plataforma.

Usando personalizada multi-resolucin de los iconos


para tus pestaas
. Puede utilizar iconos personalizados multi-resolucin, as como el texto de encargo en
pestaas en su aplicacin de
este tutorial se muestra cmo construir las siguientes tres fichas que tienen iconos y el
texto de encargo:

Notas:

En Android aplicaciones, iconos predefinidos no son compatibles, por lo que debe


utilizar iconos personalizados.

En iOS aplicaciones, puede utilizar cualquiera de los iconos predefinidos o iconos


personalizados.

Para utilizar iconos personalizados a cada iOS o Android, seleccione los dispositivo
iOS o Android de diseo apropiados en el Diseador de formularios, establezca
la StyleLookup propiedad de TTabItem a tabitemcustom, especificar su icono
personalizado como se describe en esta seccin, y luego construir su aplicacin.

Para iOS, puede utilizar nuestros iconos predefinidos ajustando


el StyleLookup propiedad de TTabItem al icono de su eleccin, tales
como (tabitemsearch).

Los glifos personalizados utilizados en esta seccin estn disponibles en un archivo zip
que se entrega en tu $ (BDS) \ Images \ GlyFX directorio.
Los tres archivos PNG utilizados aqu se encuentran en el directorio de Aero:

users_32 (Gente)

unlock_32 (Seguridad)

tree_32 (Organizacin)

Descomprimir el glyFX.zip archivo antes de utilizar el Editor MultiResBitmap si usted desea


utilizar estas imgenes o cualquier otros disponibles en la coleccin GlyFX.

Viendo Multi-Resolucin iconos personalizados en la ms aqu


1.

Para una aplicacin multi-dispositivo, deje caer


un TabControl componente en el Diseador de formularios, establezca
su Align propiedad a cliente, y aade varias pestaas en la
TabControl:

2.

Seleccione una ficha y haga clic en el botn de puntos suspensivos [...]


en el CustomIcon propiedad de TTabItem en el Inspector de Objetos:

3.

El Editor MultiResBitmap abre:

La entrada inicial Escala vaca se supone que tienen una escala de 1.000.
Haga clic en el Tamao selector de tamao, elija el tamao predeterminado y establecer
el tamao de 32 x 32:

4.

Repita el siguiente paso para aadir cualquier escalas adicionales que


desea apoyar:
1.

Haga clic en Agregar nuevo

elemento.

2.

Introduzca la Escala adicional que desee apoyar, como 1,5, 2


3.

Cuando haya aadido todas las escalas que desea, el editor se ve


as:

5.

Haga clic en el relleno Todo lo de Archivo

botn, vaya al archivo

.png que desea utilizar y haga clic en Abrir.


La imagen seleccionada aparece ahora apropiadamente escala en cada una de las
entradas de escala en el Editor de MultiResBitmap:

6.

Cierre el Editor MultiResBitmap.

7.

Repita los pasos 2-6 para cada uno de los TabItems restantes, y asignar
cada TabItem una imagen de icono personalizado.

8.

En el texto de propiedad, cambie el texto en cada ficha:

Despus de definir un icono personalizado, el marco FireMonkey genera


una imagen seleccionada y no seleccionada (atenuado) Imagen basado en el
archivo .png dado. Esta transformacin se realiza mediante el canal alfa de los
datos de mapa de bits. Por ejemplo:
Imagen original

Imagen seleccionada

No Seleccionado Imagen

Utilizando una sola resolucin de mapa de bits para un icono


personalizado
Tambin puede utilizar solamente un mapa de bits de una sola resolucin
utilizando el Editor de mapa de bits. Un mapa de bits de una sola resolucin
muestra slo una escala en la Estructura Ver:

Para especificar un mapa de bits de una sola resolucin de un icono


personalizado, realice el primer paso del procedimiento anterior y luego haga
lo siguiente:
1.

En la vista de estructura, seleccione Vaciar bajo CustomIcon:

2.

Ahora, en el Inspector de Objetos, haga clic en el botn de puntos


suspensivos [...] en el mapa de bits de campo
(del TabItem1.CustomIcon [0]). Esto abre el Editor de mapa de bits:

3.

En el Editor de mapa de bits, haga clic en el ... de carga. Botn y


seleccionar un archivo PNG
El tamao recomendado es de 30x30 pxeles de resolucin de la
normalidad, y 60x60 pxeles para alta resolucin:

4.

Haga clic en Aceptar para cerrar el Editor de mapa de bits.

5.

En el Inspector de Objetos, establezca la StyleLookup propiedad a


ser tabitemcustom:

Definicin de controles dentro de un


TabControl
Como se mencion, cada pgina de la ficha puede contener cualquier
nmero de controles incluyendo otra TabControl. En tal caso, usted puede
navegar con facilidad y gestionar diferentes pginas con pestaas en
la Estructura Ver:
iOS

Android

Cambio de la pgina en tiempo de ejecucin


Por el Usuario Aprovechar el Tab
Si aqu son visibles (cuando el TabPosition propiedad se establece un valor
distinto de None),

un usuario final puede simplemente

toque una pestaa para abrir la pgina


correspondiente.

Por acciones y un ActionList


Una accin corresponde a uno o ms elementos de la interfaz de usuario,
tales como comandos de men, botones de la barra, y controles. Acciones
cumplen dos funciones:

Acciones representan las propiedades comunes a los elementos de la


interfaz de usuario, como si un control est habilitada o si una casilla de
verificacin est seleccionada.

Acciones responden cuando un incendio de control, por ejemplo, cuando


el usuario hace clic en un botn de la aplicacin o elige un elemento del
men.

Aqu estn los pasos para habilitar un usuario para mover a diferentes
pginas de la ficha haciendo clic en un botn:
1.

En una aplicacin multi-dispositivo, coloque un TabControl, y aadir


varios elementos de la ficha en el mismo (TabItem1, TabItem2 y
TabItem3).

2.

Desde la paleta de herramientas, agregue un TButton a la forma, y


luego aadir una ActionList componente:

iOS:

Android:

3.

En el Diseador de formularios, activar el Maestro vista. A


continuacin, seleccione el componente de botn en el Inspector de
Objetos y seleccione Accin | Nueva Accin estndar
| Tab>TChangeTabAction en el men desplegable. Despus de
que el usuario hace clic en este botn, la accin que acaba de
definir se lleva a cabo (la pgina pestaa cambios):

iOS:

Android:

4.

Seleccione ChangeTabAction1 en Vista Estructura, y luego


seleccione TabItem2 para la Tab propiedad en el Inspector de
Objetos. Al vincular a TabItem2, esta accin puede cambiar la
pgina a TabItem2:

iOS:

Android:

5.

Con el paso anterior, el ttulo (la propiedad Text) del botn se


cambia automticamente a "Ir a la seguridad", porque el ttulo
de TabItem2 es "Seguridad" en nuestro ejemplo. Cambiar el tamao
del botn para ajustar el nuevo texto de la leyenda, o cambiar
el CustomText propiedad del componente ChangeTabAction1 como
se muestra aqu:

iOS:

Android:

6.

ChangeTabAction tambin apoya la diapositiva de animacin para


indicar una transicin entre pginas. Para usarlo, establezca
la Transicin propiedad a Slide:

Por cdigo fuente


Puede utilizar cualquiera de las siguientes tres maneras de cambiar la pgina
de pestaa activa desde el cdigo fuente:

Asigne una instancia de TTabItem al activeTab propiedad


Delphi:

TabControl1.

ActiveTab: = TabItem1;

C ++:

TabControl1 -> activeTab = TabItem1;


Cambie el TabIndex propiedad a un valor diferente
La propiedad TabIndex es un valor entero de base cero. Se puede especificar
cualquier nmero entre 0 y TabControl1.TabCount
Delphi:

TabControl1.

TabIndex: =

1;

C ++:

TabControl1 -> TabIndex = 1;

- 1.

Si ChangeTabAction se define, puede ejecutar una accin en su


cdigo
Delphi:

// Puede establecer el destino en tiempo de


ejecucin si no se define todava.
ChangeTabAction1. Tab: = TabItem2;
// Llamar a la accin
ChangeTabAction1. Ejecutar;
Esta funcionalidad se proporciona como acciones, y tiene que escribir una sola lnea de cdigo para
cada tarea.
Una accin corresponde a uno o ms elementos de la interfaz de usuario, tales como comandos de
men, botones de la barra, y controles.
Acciones sirven para dos propsitos:

Una accin puede representar propiedades comunes a los elementos de la interfaz de usuario,
como por ejemplo si un control est habilitada o si una casilla de verificacin est seleccionada.

Una accin puede responder cuando un control de incendios-por ejemplo, cuando el usuario
hace clic en un botn o elige un elemento del men.

En este tutorial, aprender cmo asignar acciones a elementos de la interfaz de usuario (como un
botn) para cada funcionalidad que desea apoyar.

La construccin de la interfaz de usuario de la aplicacin


La interfaz de usuario de esta aplicacin de ejemplo es bastante simple, como se muestra en la
siguiente imagen:

Coloque los siguientes componentes en el Diseador de formularios:

TToolBar componente

En la barra de herramientas, poner tres componentes TButton. Cada botn utiliza


diferentes iconos.

Ajuste el StyleLookup viviendas en los tres botones


a cameratoolbuttonbordered, searchtoolbuttonbordered y actiontoolbuttonbordered,
respectivamente.

TImage componente

Ajuste el Align propiedad a cliente.

TActionList componente

Tomar una foto con una cmara del dispositivo mvil


Se puede definir una accin para tomar una fotografa usando la cmara en su dispositivo
mvil. Lleve a cabo los siguientes pasos:
1. En el Diseador de formularios, seleccione el botn (para tomar una foto).
2. En el Inspector de Objetos, seleccione la lista desplegable para la Accin propiedad.
3. Seleccione Accin Nuevo Estndar | Biblioteca
multimedia | TTakePhotoFromCameraAction:

4. Por Eventos ficha, expanda la Accin nodo y, a continuacin, haga doble clic en
el OnDidFinishTaking evento.

5. Agregue el cdigo siguiente a la OnDidFinishTaking controlador de eventos:


Delphi:

procedure TForm1 . TakePhotoFromCameraAction1DidFinishTaking


( Image : TBitmap ) ;
begin
Image1 . Bitmap . Assign ( Image ) ;
end ;
C ++:

anular __fastcall TForm1 ::


TakePhotoFromCameraAction1DidFinishTaking (TBitmap * Imagen)
{Image1 -> Mapa de bits -> Asignar (imagen);}
Este cdigo asigna una imagen tomada de la cmara del dispositivo mvil a la Bitmap propiedad
del TImage componente.

Usando una Imagen del Dispositivo Mvil Fototeca


Se puede definir una accin de usar una foto de la Biblioteca de fotos con los siguientes pasos:
1. En el Diseador de formularios, elija el botn que desea utilizar (para recoger a una foto).
2. En el Inspector de Objetos, haga clic en la lista desplegable para la propiedad Accin y
seleccione Nuevo Accin estndar | Biblioteca
multimedia | TTakePhotoFromLibraryAction.
3. En el Eventos ficha, expanda la Accin nodo y, a continuacin, haga doble clic en
el OnDidFinishTaking evento.
4. Agregue el cdigo siguiente a la OnDidFinishTaking controlador de eventos:
Delphi:

procedure TForm1 . TakePhotoFromLibraryAction1DidFinishTaking


( Image : TBitmap ) ;
begin
Image1 . Bitmap . Assign ( Image ) ;
end ;
C ++:

anular __fastcall TForm1 ::


TakePhotoFromLibraryAction1DidFinishTaking (TBitmap * Imagen)
{Image1 -> Mapa de bits -> Asignar (imagen);}
El cdigo anterior asigna una imagen tomada a la fototeca de la Bitmap propiedad
del TImage componente.

Edicin de Habilitacin Imagen


Puede activar la editable propiedad de las
acciones TTakePhotoFromCameraAction y TTakePhotoFromLibraryAction para permitir recortar la
imagen despus de tomar o de cargarlo.

Para activar la editable propiedad siga los pasos:


1. En el panel de Estructura, vaya a la accin:
1. ActionList1 | TakePhotoFromCameraAction1
2. ActionList1 | TakePhotoFromLibraryAction1
2. En el Object Inspector establece la editable propiedad a Verdadero.

Despus de habilitar la editable propiedad puede recortar las fotos en iOS y Android.
En los dispositivos iOS:

Carga de la Imagen

Ampliacin de la Imagen

Recorte de la imagen

En dispositivos Android:

Android Men para la


Carga de la Imagen

Recorte de la imagen
Accin

Compartir o Impresin de una imagen


Desde la aplicacin, puede compartir una foto en los sitios de redes sociales (como Facebook y
Twitter), puede enviar la imagen a una impresora, usar la imagen como un archivo adjunto a un
correo electrnico, asignarla a contactos, y as sucesivamente. Este servicio multi-accin se
llama Compartir Hoja de funcionalidad, y se puede implementar esta funcionalidad utilizando los
siguientes pasos:

1. En el Diseador de formularios, seleccione el botn (para compartir una foto).


2. En el Inspector de Objetos, haga clic en la lista desplegable para la Accin propiedad, y
seleccione Nueva Accin estndar | Biblioteca multimedia | TShowShareSheetAction.
3. Por Eventos ficha, expanda la Accin nodo y, a continuacin, haga doble clic en
el OnBeforeExecute evento.
4. Agregue el cdigo siguiente a la OnBeforeExecute controlador de eventos:
Delphi:

procedure TForm1 . ShowShareSheetAction1BeforeExecute (


Sender : TObject ) ;
begin
ShowShareSheetAction1 . Bitmap . Assign ( Image1 . Bitmap )
;
end ;
C ++:

void __fastcall TForm1 :: ShowShareSheetAction1BeforeExecute


( TObject * Sender )
{
ShowShareSheetAction1 - > Bitmap - > Assign ( Image1 - >
Bitmap ) ;
}
El cdigo anterior asigna una imagen en el componente TImage a "Compartir Hoja Funcionalidad".
Despus de seleccionar Facebook de la lista de servicios, puede publicar la foto en Facebook con
su comentario:

Nota: En este apartado, capturas de pantalla de los dispositivos iOS se utilizan como un ejemplo.
Para una aplicacin de ejemplo que utiliza la funcionalidad de hoja de participacin, consulte
la Muestra FMX.Mobile.PhotoEditorDemo (Delphi).

Compartiendo texto
Desde la aplicacin, puede compartir el texto usando hoja de la parte del dispositivo mvil. Las
aplicaciones que aparecen en la hoja compartimos dependen del dispositivo:

En un iOS dispositivo, se muestra una lista de opciones de uso compartido adecuados en


funcin del contenido que su aplicacin quiere compartir, pero no hay un mecanismo de
aplicacin de intercambio de lleno.

En un dispositivo Android, las opciones dependen de compartir opciones y aplicaciones


instaladas.

Desde la aplicacin, puede compartir el texto en sitios de redes sociales (como Facebook y Twitter),
puede enviarlo por correo electrnico, SMS (Short Message Service), y otros mtodos disponibles.
Puede implementar esta funcionalidad con el servicio multi-recurso llamado Compartir
Hoja funcionalidad. El TShowShareSheetAction es la accin estndar para compartir imgenes y
texto.TShowShareSheetAction muestra las opciones de comparticin disponibles en funcin del
tipo de contenido que est compartiendo. Es decir, las opciones que se muestran para el texto son
diferentes que para un mapa de bits.
Este ejemplo muestra una implementacin simple de esta funcionalidad. Compartimos el texto que
el usuario ha escrito en un Memo.
1. Crear una aplicacin multi-dispositivo. En nuestro ejemplo, el formulario se
denomina demostracin.
2. Coloque los siguientes componentes en el Diseador de formularios:

TToolBar componente

En la barra de herramientas, agregue un TButton componente.

Ajuste el StyleLookup viviendas en el botn de la siguiente manera:

actiontoolbuttonbordered o actiontoolbutton para iOS

actiontoolbutton para Android

Nota: El actiontoolbuttonbordered propiedad incluye el botn con una frontera,


mientras actiontoolbutton muestra el botn sin un borde.

TMemo componente
TActionList componente
Despus de agregar los componentes a la aplicacin de ejemplo:
1. En el Diseador de formularios, seleccione el botn (por compartir el texto).
2. En el Inspector de Objetos, haga clic en la lista desplegable para la Accin propiedad, y
seleccione Nueva Accin estndar | Biblioteca multimedia | TShowShareSheetAction.

3. Por Eventos ficha, expanda la Accin nodo y, a continuacin, haga doble clic en
el OnBeforeExecute evento.
4. Agregue el cdigo siguiente a la OnBeforeExecute controlador de eventos:
Delphi:

procedure TDemonstration . ShowShareSheetAction1BeforeExecute


( Sender : TObject ) ;
begin
ShowShareSheetAction1 . TextMessage : = Memo1 . Lines .
Text ;
end ;
C ++:

void __fastcall TDemonstration ::


ShowShareSheetAction1BeforeExecute ( TObject * Sender )
{
ShowShareSheetAction1 - > TextMessage = Memo1 - >
Lines - > Text ;

El cdigo anterior utiliza la TextMessage propiedad para asignar el texto para ser compartido, como
escrito previamente en un TMemo.

Tutorial mvil: Usando Ubicacin Sensores (iOS y


Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 Diseo de la interfaz de usuario

2 La Ubicacin del sensor

3 Lea la informacin Ubicacin (Latitud, Longitud) del Componente LocationSensor

4 Consultar Ubicacin actual Uso de Google Maps a travs de un componente TWebBrowser

5 Uso de geocodificacin inversa

6 Mostrar una Direccin de lectura mecnica en el componente ListBox

7 Vase tambin

Antes de comenzar este tutorial, usted debe leer y realizar las siguientes sesiones de tutora:

Tutorial mvil: Utilizacin de componentes ListBox para mostrar una vista de tabla (iOS y
Android)

Tutorial mvil: Uso del explorador Web Component (iOS y Android)

Tutorial mvil: El uso de Diseo para Ajuste forma diferente tamaos u orientaciones (iOS y
Android)

Nota: En los dispositivos Android, TLocationSensor requiere especfica utiliza permisos que se
establezcan, en concreto Acceda ubicacin gruesa y accede buena ubicacin.
Este tutorial describe los pasos bsicos para localizar su dispositivo mvil (usando latitud y longitud),
y para utilizargeocodificacin inversa para convertir a una direccin legible, como en la siguiente
imagen:

Diseo de la interfaz de usuario


Esta aplicacin Demo est diseado con dos componentes principales: un TListBox (en el lado
izquierdo) y un TWebBrowser.
Nota: Antes de continuar con este escenario, en el Project Manager, establezca la plataforma de
destino activo para dispositivos iOS o Android. De lo contrario, no se puede aadir
el TWebBrowser componente.

En el TListBox, establezca la Align propiedad a la

izquierda para reservar la parte

izquierda de la interfaz de usuario. A continuacin, cree los siguientes subcomponentes bajo el


ListBox:

Un componente TListBoxHeader con los siguientes subcomponentes:

Un componente TLabel para mostrar el ttulo "Situacin Demo"

Un TSwitch (Switch1) componente para seleccionar on / off de TLocationSensor

Un TListBoxGroupHeader con el texto "Tu Lugar"

Un TListBoxItem con el nombre "ListBoxItemLatitude" y "Latitud" como texto

Un TListBoxItem con el nombre "ListBoxItemLongitude" y "Longitud" como texto

Un TListBoxGroupHeader con el texto "Direccin actual"

Un TListBoxItem con el nombre "ListBoxItemAdminArea" y "AdminArea" como texto

Un TListBoxItem con el nombre "ListBoxItemCountryCode" y "countryCode" como texto

Un TListBoxItem con el nombre "ListBoxItemCountryName" y "CountryName" como texto

Un TListBoxItem con el nombre "ListBoxItemFeatureName" y "FeatureName" como texto

Un TListBoxItem con el nombre "ListBoxItemLocality" y "Localidad" como texto

Un TListBoxItem con el nombre "ListBoxItemPostalCode" y "PostalCode" como texto

Un TListBoxItem con el nombre "ListBoxItemSubAdminArea" y "SubAdminArea" como texto

Un TListBoxItem con el nombre "ListBoxItemSubLocality" y "SubLocality" como texto

Un TListBoxItem con el nombre "ListBoxItemSubThoroughfare" y "SubThoroughfare" como


texto

Un TListBoxItem con el nombre "ListBoxItemThoroughfare" y "Va" como texto

Un componente TWebBrowser (WebBrowser1) para mostrar la pgina web (Google


Maps). Ajuste el Align propiedad a cliente.

Despus de crear estos componentes, seleccione todos TListBoxItem elementos y


seleccione listboxitemleftdetail en el StyleLookup propiedad. Esto permite TListBoxItem para
mostrar tanto una etiqueta y texto detallado.

El sensor Ubicacin
El sensor de localizacin est envuelto por el TLocationSensor componente.
TLocationSensor dispara un OnLocationChanged evento cuando el dispositivo detecta
movimiento. Se puede ajustar la sensibilidad de TLocationSensor utilizando
las distancias y precisinpropiedades.

La Distancia propiedad especifica la distancia mnima (en metros) por el cual el dispositivo
debe moverse con el fin de hacer que el sensor de localizacin reubicar el dispositivo y volver
nueva informacin de ubicacin. Por ejemplo, si establece Distancia a
"10", TLocationSensor dispara un OnLocationChanged evento cuando se mueve "10 metros".

La Precisin propiedad representa el nivel de precisin (en metros) por el cual el sensor
localiza el dispositivo geogrficamente, en relacin con el punto geogrfico en el que el
dispositivo se encuentra en realidad.
Sugerencia: Usted debe especificar la precisin ms bajo que funcione para su
aplicacin; cuanto mayor sea la precisin, ms tiempo y energa que requiere el sensor
para determinar la ubicacin. Los valores recomendados: Distancia = 0; Precisin = 0.

Leer sobre la ubicacin (Latitud, Longitud) del


Componente LocationSensor
El TLocationSensor componente necesita ser activado para su uso. Puede activar /
desactivar TLocationSensor basado en su entrada, como un TSwitch componente, u otros
eventos de la aplicacin.
1.

Coloque una TLocationSensor componente de la paleta de herramientas.

2.

En el Diseador de formularios, seleccione la TSwitch componente.

3.

En el Inspector de Objetos, en Eventos pestaa doble clic OnSwitch evento.

4.

Agregue el cdigo siguiente a la OnSwitch controlador de eventos:

Delphi:

procedimiento TForm1. Switch1Switch (Remitente: TObject);


comenzar
LocationSensor1. Activo: = Switch1. IsChecked;
final;
C ++:

anular __fastcall TForm1 :: Switch1Switch (TObject *


Remitente)
{LocationSensor1 -> Activo = Switch1 ->
IsChecked;}
Como se seal anteriormente, TLocationSensor dispara un OnLocationChanged evento
cuando se mueve el dispositivo mvil. Usted puede mostrar la ubicacin actual (latitud y
longitud) usando los parmetros con un controlador de eventos.
1.

En el Diseador de formularios, seleccione la TLocationSensor.

2.

En el Inspector de Objetos, en Eventos pestaa doble


clic OnLocationChange evento.

3.

Agregue el cdigo siguiente a la OnLocationChange controlador de eventos:

Delphi:

procedure TForm1 . LocationSensor1LocationChanged ( Sender


: TObject ;
const OldLocation , NewLocation : TLocationCoord2D ) ;
var
LDecSeparator : String ;
begin
LDecSeparator : = FormatSettings . DecimalSeparator ;
FormatSettings . DecimalSeparator : = '.' ;
// Mostrar actual location
ListBoxItemLatitude . ItemData . Detail
: = Format (
'%2.6f' , [ NewLocation . Latitude ] ) ;
ListBoxItemLongitude . ItemData . Detail : = Format (
'%2.6f' , [ NewLocation . Longitude ] ) ;
end ;
C ++:

void __fastcall Mostrar actual . NewLocation Longitud);}

Mostrar el Ubicacin actual Uso de Google Maps a travs


de un componente TWebBrowser
Como se explica en el Tutorial mvil: Uso del explorador Web Component (iOS
y Android), el TWebBrowser componente envuelve un navegador web para plataformas
mviles.
Usted puede llamar a Google Maps desde el componente TWebBrowser con los siguientes
parmetros de URL:

https://maps.google.com/maps?q=(Latitudevalue),(Longitude-value)
As que usted puede agregar este URL para el controlador de eventos creado
previamente OnLocationChanged de la siguiente manera:
Delphi:

procedure TForm1 . LocationSensor1LocationChanged ( Sender


: TObject ;
const OldLocation , NewLocation : TLocationCoord2D ) ;
var
URLString : String ;
begin
// cdigo de paso anterior va aqu
// Ver mapa a travs de Google Maps
URLString : = Format (
'https://maps.google.com/maps?q=%s,%s' ,
[ Format ( '%2.6f' , [ NewLocation . Latitude ] ) ,
Format ( '%2.6f' , [ NewLocation . Longitude ] ) ] ) ;
WebBrowser1 . Navigate ( URLString ) ;
end ;
C ++:

void __fastcall cdigo de paso anterior va aqu

// Ver mapa usando Google Mapas


Cadena LLongitude = FloatToStr (newLocation.
Longitud, FormatSettings);
Cadena URLString = "";
URLString =. URLString sprintf (L
"https://maps.google.com/maps?q=%2.6f ,% 2.6f ",
. NewLocation Latitud, newLocation.
Longitud);
FormatSettings. DecimalSeparator = LDecSeparator;
WebBrowser1 -> Navigate (URLString);}

Uso de geocodificacin inversa


TGeocoder es un objeto que envuelve la geocodificacin (o geocodificacin inversa) servicio.
Geocodificacin es el proceso de transformacin de los datos geogrficos, tales como la
direccin y el cdigo postal, en coordenadas geogrficas. Geocodificacin inversa es el proceso

de transformacin de coordenadas geogrficas en otros datos geogrficos, tales como la


direccin.
En este caso, utilizamos TGeocoder atrs "Reverse Geocode" nuestra ubicacin (en latitud y
longitud) de informacin de la direccin legible.
Esta es la secuencia bsica de acciones con TGeocoder:
1.

Crear una instancia de TGeocoder.

2.

Definir un evento OnGeocodeReverse para que pueda recibir el evento ms tarde.

3.

Conjunto de datos para ejecutar "geocodificacin inversa".

4.

TGeocoder accede al servicio en la red para resolver la informacin de la direccin.

5.

TGeocoder dispara un OnGeocodeReverse evento.

6.

Su iOS App recibe la informacin de la direccin a travs del parmetro en el caso


OnGeocodeReverse y actualiza la interfaz de usuario.

Nota: Como TGeocoder no es un componente (esto es slo una clase), es necesario


definir los pasos a travs de su cdigo (no se puede colocar un componente, ni asignar un
controlador de eventos a travs del inspector de objetos).
En primer lugar, definir un nuevo campo "FGeocoder" en la seccin privada de la
forma. Tambin puede definir un "procedimiento OnGeocodeReverseEvent", como en los
siguientes fragmentos de cdigo.
Delphi:

escriba
TForm1 = clase (TForm)
// IDE define componentes visibles (o no visuales)
aqu automticamente
privado
{declaraciones privadas}
FGeocoder: TGeocoder;
procedimiento OnGeocodeReverseEvent (const
Direccin: TCivicAddress); pblica {declaraciones
pblicas} final;

C ++:
Nota: Coloque este fragmento de cdigo en el archivo de cabecera (.h)

clase TForm1: pblica TForm


{// IDE define componentes visibles (o no visuales)
aqu automticamente
privado:

// declaraciones usuario

TGeocoder * FGeocoder;
anulan __fastcall OnGeocodeReverseEvent
(TCivicAddress * const Direccin); pblica: //
declaraciones usuario
__fastcall TForm1 (TComponent *
Propietario);};

Ahora usted puede crear una instancia de TGeocoder y configurarlo con los datos con
el siguiente cdigo de Delphi o C ++.
TGeocoder.Current da el tipo de clase que en realidad implementa el servicio de
geocodificacin. El cdigo en "TGeocoder.Current.Create" llama al
constructor (Crear) para el tipo especificado, y lo guarda en
el FGeocoder campo. Tambin es necesario especificar un controlador de eventos,
que se activa cuando TGeocoder completa geocodificacin
inversa. AsignarOnGeocodeReverseEvent (que acaba de definir en el paso anterior)
para FGeocoder.OnGeocodeReverse.
Por ltimo, si ha creado con xito una instancia de TGeocoder y TGeocoder no est
funcionando, llame TGeocoder.GeocodeReverse con informacin de
ubicacin. Despus TGeocoder recibe datos, el OnGeocodeReverseEvent evento se
activa.
Delphi:

procedure TForm1 . LocationSensor1LocationChanged (


Sender : TObject ;
const OldLocation , NewLocation : TLocationCoord2D
) ;
begin
// cdigo de pasos previos va aqu
intentar
// Configuracin de una instancia de TGeocoder
if not Assigned ( FGeocoder ) then
begin
if Assigned ( TGeocoder . Current ) then
FGeocoder : = TGeocoder . Current . Create ;
if Assigned ( FGeocoder ) then
FGeocoder . OnGeocodeReverse : =
OnGeocodeReverseEvent ;
end ;
// Traducir ubicacin para
error de servicio '; final; final;

C ++:

void __fastcall cdigo de pasos previos va aqu

// Configuracin de una instancia de


Traducir ubicacin para abordar

if ( ( FGeocoder ! = NULL ) && (


FGeocoder - > Geocoding ) ) {
FGeocoder - > GeocodeReverse (
NewLocation ) ;
}
}
catch ( ... ) {
ListBoxGroupHeader1 - > Text = "Geocoder
error de servicio
";}
}

Mostrar una Direccin de lectura mecnica en el


componente ListBox
Como se describi anteriormente, despus de geocodificacin inversa se ha
completado, un OnGeocodeReverseEvent se dispara.
A continuacin, asignar propiedades en el TCivicAddress parmetro de direccin para
mostrar informacin de la direccin de lectura en los campos del cuadro de lista:
Delphi:

procedure TForm1 . OnGeocodeReverseEvent ( const


Address : TCivicAddress ) ;
begin
ListBoxItemAdminArea . ItemData . Detail
Address . AdminArea ;
ListBoxItemCountryCode . ItemData . Detail
Address . CountryCode ;
ListBoxItemCountryName . ItemData . Detail
Address . CountryName ;

: =
: =
: =

ListBoxItemFeatureName . ItemData . Detail


Address . FeatureName ;
ListBoxItemLocality . ItemData . Detail
Address . Locality ;
ListBoxItemPostalCode . ItemData . Detail
Address . PostalCode ;
ListBoxItemSubAdminArea . ItemData . Detail
Address . SubAdminArea ;
ListBoxItemSubLocality . ItemData . Detail
Address . SubLocality ;
ListBoxItemSubThoroughfare . ItemData . Detail
Address . SubThoroughfare ;
ListBoxItemThoroughfare . ItemData . Detail
Address . Thoroughfare ;
end ;

: =
: =
: =
: =
: =
: =
: =

C ++:

void __fastcall TForm1 :: OnGeocodeReverseEvent (


TCivicAddress * const Address )
{
if ( Address ! = NULL ) {
ListBoxItemAdminArea - > ItemData - >
Detail
= Address - > AdminArea ;
ListBoxItemCountryCode - > ItemData > Detail
= Address - > CountryCode ;
ListBoxItemCountryName - > ItemData > Detail
= Address - > CountryName ;
ListBoxItemFeatureName - > ItemData > Detail
= Address - > FeatureName ;
ListBoxItemLocality - > ItemData - >
Detail
= Address - > Locality ;
ListBoxItemPostalCode - > ItemData > Detail
= Address - > PostalCode ;
ListBoxItemSubAdminArea - > ItemData
- > Detail
= Address - > SubAdminArea ;
ListBoxItemSubLocality - > ItemData > Detail
= Address - > SubLocality ;
ListBoxItemSubThoroughfare - >
ItemData - > Detail = Address - > SubThoroughfare ;
ListBoxItemThoroughfare - > ItemData
- > Detail
= Address - > Thoroughfare ;
}
}

Acceder al servicio de notificacin


En las plataformas mviles, FireMonkey proporciona la TNotificationCenter componente que le
permite acceder fcilmente al servicio de notificacin.
Para acceder al servicio de notificacin, haga lo siguiente:

Crear una nueva aplicacin mvil:

Archivo> Nuevo> Multi-dispositivo de aplicacin-Delphi

Archivo> Nuevo> Multi-dispositivo de aplicacin C ++ Builder

Para aplicaciones de Delphi, aada las siguientes 2 unidades a la clusula uses si no


estn presentes:

utiliza
FMX. Plataforma, FMX. Notificacin;

Para aplicaciones C ++, agregue las siguientes incluyen operadores en el fichero de


cabecera del proyecto:

#include <FMX.Platform.hpp>
#include <FMX.Notification.hpp>

Seleccione el TNotificationCenter componente en la paleta de herramientas y


colquelo en el Diseador de formularios. Nota: Si
el TNotificationCenter componente est desactivado, seleccione la plataforma de
destino para Android o iOS.

El FMX.Notification.TNotificationCenter.CreateNotification mtodo le permite crear una


instancia de la TNotification objeto de clase.
Nota: En el cdigo fuente, llame a los siguientes mtodos en
diferentes OnClick acontecimientos de TButton componentes.

Establezca el icono de nmero de placa y nmero de


notificacin del Cdigo
TNotification.Number define el Nmero Icono Insignia (para dispositivos iOS) y el nmero
de notificacin (para dispositivos Android).
Para establecer el nmero iOS icono insignia (para Delphi o C ++) o el nmero de
notificacin de Android (slo para aplicaciones de Delphi), puede aplicar los mtodos
siguientes:
Delphi:

procedimiento TForm1. setNumber;


var
MyNotification: TNotification;
comienzan
// Crear una instancia de TNotification
MyNotification: = NotificationCenter1.
CreateNotification;
intente
// --- su cdigo va aqu --// Establecer el icono o notificacin nmero
MyNotification. Nmero: = 18;

// Establecer el mensaje de alerta


MyNotification. AlertBody: = 'Delphi para su
dispositivo mvil est aqu!';
// Nota: Debe enviar la notificacin al centro de
notificacin para el nmero de placa del icono de ser
displayed.
NotificationCenter1 . PresentNotification (
MyNotification ) ;
finally
MyNotification . DisposeOf ;
end ;
end ;

C ++:

void __fastcall para su dispositivo mvil es

}
Despus de configurar el campo MyNotification.Number a 18, se puede ver lo siguiente:

Una insignia en el icono de la aplicacin (en la pantalla Inicio iOS):

Un nmero al lado del mensaje de notificacin en el centro de notificaciones (en


Android):

Android

Planificacin notificacin
Tambin puede programar los mensajes de notificacin utilizando
el ScheduleNotification mtodo que el TNotificationCenter clase hereda
de TCustomNotificationCenter.

Para mostrar un mensaje de notificacin, es necesario crear una instancia de


la TNotification clase y, a continuacin, definir el nombre, AlertBody y FireDate campos:
Delphi:

procedure TForm1 . ScheduleNotification ;


var
MyNotification : TNotification ;
begin
MyNotification : = NotificationCenter1 .
CreateNotification ;
try
MyNotification . Name : = 'MyNotification' ;
MyNotification . AlertBody : = 'Delphi para su
dispositivo mvil est aqu '!;
// Fired en 10 segundos
MyNotification. FireDate: = Ahora + EncodeTime
(0, 0, 10, 0);
// Enviar notificacin a la notificacin center
NotificationCenter1 . ScheduleNotification (
MyNotification ) ;
finally
MyNotification . DisposeOf ;
end ;
end ;
C ++:

void __fastcall para su dispositivo mvil est aqu! ";


// fuego en 10 segundos
myNotification -> FireDate =
Ahora () + EncodeTime (0, 0, 10, 0); // Enviar
notificacin a la notificacin

}}
Despus de configurar la notificacin de mensajes (AlertBody), se puede ver en la parte
superior de su dispositivo Pantalla de inicio. Para los dispositivos iOS, este mensaje es
similar a la siguiente pantalla:

Actualizar o cancelar una notificacin de mensaje


Programado
Cada notificacin de mensaje programado se identifica por el nombre de la propiedad
del TNotification objeto.
Nota: Para la plataforma iOS, CancelNotification y ScheduleNotification pueden cancelar o
actualizar slo aquellas notificaciones que no se han presentado todava. Si una
notificacin ya ha aparecido en la lista de notificaciones de dispositivos, que no puede ni
actualizacin ni cancelar la notificacin en iOS.
Para actualizar una notificacin programada, simplemente llame
al ScheduleNotification mtodo nuevo con una instancia de TNotificationCenter que tiene
el mismo nombre (propiedad Name).
Para cancelar una notificacin programada, slo tiene que llamar
al CancelNotification mtodo con el identificador que utiliz:
Delphi:

procedimiento TForm1. CancelNotification;


comenzar
NotificationCenter1. CancelNotification
('MyNotification');
finales;
C ++:

anular __fastcall TForm1 :: cancelNotification ()


{NotificationCenter1 -> CancelNotification
("MyNotification");}

Presentar el mensaje de notificacin inmediata


Tambin puede mostrar el mensaje de notificacin de inmediato a travs de
la PresentNotification funcin.
Para mostrar un mensaje de notificacin, es necesario crear una instancia de
la TNotification clase y, a continuacin, definir los nombre y AlertBody campos.
Delphi:

procedure TForm1 . PresentNotification ;


var
MyNotification : TNotification ;

begin
MyNotification : = NotificationCenter1 .
CreateNotification ;
try
MyNotification . Name : = 'MyNotification' ;
MyNotification . AlertBody : = 'Delphi para su
dispositivo mvil est aqu '!;
// Conjunto del icono del nmero de placa (para iOS)
o el nmero de mensajes (para Android), as
MyNotification. Nmero: = 18;
MyNotification. EnableSound: = False;
// Enviar mensaje a la notificacin center
NotificationCenter1 . PresentNotification (
MyNotification ) ;
finally
MyNotification . DisposeOf ;
end ;
end ;
C ++:

void __fastcall para su dispositivo mvil est aqu! ";


// Conjunto del icono del nmero de placa (para iOS) o
el nmero de mensajes (para Android), as
myNotification -> Nmero = 18;
myNotification -> EnableSound =
False; // Enviar notificacin a la notificacin

Banner notificacin o notificacin de alertas


Por defecto, la aplicacin muestra la bandera de notificacin:

Banner Notificacin en el iPad

Banner Notificacin en los dispositivos Android

Android

Notificacin de alertas (slo para dispositivos iOS)

Para utilizar una alerta de notificacin en lugar de una bandera de aviso (slo para
dispositivos iOS), el usuario final tiene que cambiar la alerta de estilo al Agente virtual a
travs de la pgina de configuracin del Centro de Notificacin, disponible en la
configuracin del dispositivo:

Agregar accin a la notificacin de alertas (Slo iOS)


Tambin puede personalizar una alerta mediante la adicin de un botn de accin que abre
la aplicacin.

Para personalizar una accin de alerta, es necesario establecer el alertaction campo para
el nombre del botn de accin, y luego establecer el HasAction campo para Verdadero, de
la siguiente manera.
Delphi:

procedure TForm1 . ActionNotification ;


var
MyNotification : TNotification ;
begin
MyNotification : = NotificationCenter1 .
CreateNotification ;
try
MyNotification . Name : = 'MyNotification' ;
MyNotification . AlertBody : = 'Delphi para iOS ya
est aqu! ' ;
MyNotification . Number : = 2 ;
MyNotification . AlertAction : = 'Launch' ;
MyNotification . HasAction : = True ;
MyNotification . FireDate : = Now + EncodeTime (
0 , 0 , 20 , 0 ) ;
NotificationCenter1 . ScheduleNotification (
MyNotification ) ;
finally
MyNotification . DisposeOf ;
end ;
end ;
C ++:

void __fastcall para iOS es

Nota: Slo los dispositivos iOS compatibles con la funcin de alerta de notificacin.
La notificacin de alerta se abre en el momento en que se ha especificado a travs de
la FireDate campo.

Agregar accin para Notificaciones


El TNotificationCenter clase proporciona la onReceiveLocalNotification controlador de
eventos que le permite escribir una respuesta cuando el usuario hace clic en el mensaje de
notificacin en el centro de notificaciones. Para escribir la respuesta, haga doble clic en
el TNotificationCenter componente en el Diseador de formularios, y luego implementar
el OnReceiveLocalNotificationcontrolador de eventos.
El siguiente fragmento de cdigo implementa una respuesta para mostrar un cuadro de
mensaje que dice "El <nombre Notificacin>" notificacin clic ".
Delphi:

procedure TForm1 .
NotificationCenter1ReceiveLocalNotification ( Sender :
TObject ;
ANotification : TNotification ) ;
begin
ShowMessage ( 'The '+ ANotification. Nombre +'
notificacin clic '.); Finales;

C ++:

anular __fastcall TForm1 ::


NotificationCenter1ReceiveLocalNotification (TObject *
Sender, TNotification * ANotification)
{ShowMessage ("El" + ANotification -> Nombre +
"notificacin clic en l.");}

Tutorial mvil: Usando el Marcador de telfono en


dispositivos mviles (iOS y Android)
Contenidos
[Ocultar]

1 Acerca del telfono Dialer Servicios en dispositivos mviles

2 Acceso al Telfono Servicios Dialer

3 El diseo de la interfaz de usuario

4 Obtencin de los Propiedades Carrier

4.1 Ejecutar la aplicacin

5 Realizacin de una llamada

6 La deteccin de los cambios de estado de llamada

6.1 Implementacin del controlador de eventos OnCallStateChanged

7 Vase tambin

Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Este tutorial describe los pasos bsicos para utilizar los servicios del marcador del telfono en su
dispositivo mvil.

Acerca del telfono Servicios Dialer en dispositivos mviles


En las plataformas mviles, FireMonkey proporciona la IFMXPhoneDialerService interfaz que define
la estructura de las clases de servicio del marcador del telfono, tales como TPhoneDialerService.
Los servicios del marcador del telfono le permiten realizar las siguientes operaciones:

Obtener la informacin relacionada carrier-

Haz una llamada

Detectar los cambios de estado de llamada.

Acceso al Telfono Servicios Dialer


Para crear una aplicacin que utiliza los servicios del marcador del telfono, realice los siguientes
pasos bsicos:
1. Seleccionar:

Para Delphi: Archivo> Nuevo> Aplicacin de mltiples dispositivos - Delphi

Para C ++: Archivo> Nuevo> Aplicacin de mltiples dispositivos - C ++ Builder

2. Abra el Editor de cdigo y haga lo siguiente:

Aada las siguientes lneas a su cdigo si no estn presentes:

Delphi:

utiliza
FMX. Plataforma, FMX. PhoneDialer;
C ++:

#include <FMX.Platform.hpp>
#include <FMX.PhoneDialer.hpp>

Slo para aplicaciones de Delphi: Agregue la siguiente lnea a la seccin pblica de la definicin
del formulario:

constructor Create (AOwner: TComponent); anular;

Agregue las siguientes propiedades a la seccin privada de la definicin del formulario:

Delphi:

privada: declaraciones // usuario


PhoneDialerService: IFMXPhoneDialerService;
C ++:

privados: // declaraciones usuario


_di_IFMXPhoneDialerService phoneDialerService;
bool serviceSupported;

Slo para Delphi aplicaciones: en la seccin de implementacin, anular el constructor de la


siguiente forma:

constructor TForm1 . Create ( AOwner : TComponent ) ;


begin
inherited Create ( AOwner ) ;
TPlatformServices . Current . SupportsPlatformService (
IFMXPhoneDialerService , IInterface ( PhoneDialerService ) )
;
end ;

Slo para C ++ Builder aplicaciones: en el Vista Estructura, haga clic en la forma y en


el Inspector de Objetos, abra el Eventos ficha y haga doble clic en onCreate. Implementar la
siguienteonCreate controlador de eventos para el formulario de solicitud:

void __fastcall TForm1 :: FormCreate ( TObject * Sender )


{
serviceSupported = ( TPlatformServices :: Current > SupportsPlatformService ( __uuidof ( IFMXPhoneDialerService
) ) &&
( phoneDialerService =
TPlatformServices :: Current - > GetPlatformService (
__uuidof ( IFMXPhoneDialerService ) ) ) ) ;
}
Ahora la aplicacin puede acceder a los servicios del marcador del telfono.

El diseo de la interfaz de usuario


Este tutorial utiliza los TLabel, TButton y TEdit componentes como los elementos de la interfaz de
usuario.
Para configurar los elementos de interfaz de usuario, realice los siguientes pasos:
1. Cada de dos TLabel componentes en el Diseador de formularios, y luego establecer
sus Name propiedades a lblCarrierName y lblISOCountryCode, respectivamente.
2. Ajuste el texto de propiedad para las etiquetas a nombre del portador y el cdigo de
pas ISO, respectivamente.
3. Cada de una TButton componente en el Diseador de formularios, y en el Inspector de
Objetos, establezca las siguientes propiedades de este botn:

Nombre de btnGetCarrierInfo

Texto de Consulta Info Carrier

Obtener las Propiedades Carrier


Para obtener informacin sobre el soporte, realizar los siguientes cambios:
1. En el Diseador de formularios, seleccione la Consulta Info Carrier botn.
2. En el Inspector de Objetos, haga doble clic en el onClick caso, e implementar
el onClick controlador de eventos de la siguiente manera:
Delphi:

procedimiento TForm1. btnGetCarrierInfoClick (Remitente:


TObject);
comenzar
{prueba de si los servicios PhoneDialer son compatibles con
su dispositivo}

si Asignado (PhoneDialerService) entonces


comenzar
{en caso afirmativo, a continuacin, actualizar las
etiquetas con la informacin recuperada}
lblCarrierName. Texto: = Carrier ' Nombre:
"+
PhoneDialerService. GetCarrier. GetCarrierName;
lblISOCountryCode. Texto: =" Cdigo de pas ISO:
'+
PhoneDialerService. GetCarrier. GetIsoCountryCode;
final;
final;
C ++:

anular __fastcall TForm1 :: btnGetCarrierInfoClick (TObject *


Remitente)
{si (serviceSupported)
{lblCarrierName -> Texto = "Nombre de la
compaa:" + phoneDialerService -> GetCarrier () ->
GetCarrierName ();
lblISOCountryCode -> Texto = "Cdigo de pas ISO:
"+ phoneDialerService -> GetCarrier () -> GetIsoCountryCode
();} dems ShowMessage (". Este dispositivo no es compatible
con los servicios del marcador del telfono ");

Ejecutar la aplicacin
Importante: Antes de ejecutar su aplicacin Delphi en un dispositivo Android, compruebe que los
siguientes permisos se establecen en Proyecto> Opciones> Usos permisos para losTodas las
configuraciones - plataforma Android de destino:

Llamada de telfono

Leer el estado del telfono

Para obtener ms informacin, consulte utiliza permisos.


Para ejecutar la aplicacin, seleccione Ejecutar> Ejecutar o presione F9.
Despus de hacer clic en el Obtener informacin Carrier botn, la aplicacin muestra la
informacin bsica sobre el portador, similar a las siguientes pantallas:
iOS

Android

Realizacin de una llamada


FireMonkey proporciona la IFMXPhoneDialerService.Call mtodo que hace una llamada telefnica a
un nmero de telfono especificado.
Para su aplicacin para realizar llamadas, agregue los siguientes elementos en el Diseador de
formularios:
1. Aadir un TLabel componente, a continuacin, establezca su texto propiedad a nmero
de telfono.
2. Aadir un TEdit componente, y en el Inspector de Objetos, establezca las siguientes
propiedades:

Nombre de edtTelephoneNumber.

KillFocusByReturn a Verdadero.

KEYBOARDTYPE a PhonePad.

ReturnKeyType a Ir.

3. Aadir un TButton componente, y en el Inspector de Objetos, haga lo siguiente:

Establezca el Nombre propiedad a btnMakeCall.

Ajuste el texto propiedad a Hacer llamada.

Por Eventos ficha, haga doble clic en onClick y, a continuacin, aplicar


el onClick controlador de eventos de la siguiente manera:

Delphi:

procedimiento TForm1. btnMakeCallClick (Remitente:


TObject);
comenzar
{prueba de si los servicios PhoneDialer son compatibles
con su dispositivo}
si Asignado (PhoneDialerService) entonces
comenzar
{si se introduce el nmero de telfono en el cuadro de
edicin y luego hacer la llamada, lo dems
mostrar un mensaje de error
escribir en un nmero de telfono ".);
edtTelephoneNumber. SetFocus; final; final; final;

C ++:

void __fastcall escribir en un nmero de telfono ".);


edtTelephoneNumber -> SetFocus ();}} dems
ShowMessage (" Este dispositivo no es compatible con los
servicios del marcador del telfono ".);}

Hacer una llamada:


1.

Ejecute la aplicacin.

2.

En el campo TEdit bajo Nmero de telfono, escriba el nmero de telfono.

3.

Haga clic en la pgina Realizar una llamada botn.


iOS

Android

La deteccin de los cambios de estado de llamada


El IFMXPhoneDialerService interfaz proporciona la OnCallStateChanged caso de que le permite
manejar los cambios de estado de llamada. El TCallState enumeracin describe los posibles
estados de llamada telefnica.
En la siguiente tabla se describen los elementos de la TCallState enumeracin (los estados
admitidos para cada plataforma estn marcados con "+").
Artculo

Descripcin

iOS Android

Ninguno

Sin estado de la llamada.

Conectado

La persona que llama telfono est conectado a la parte llamada. +

Entrante

Una llamada telefnica entrante.

Marcacin

El telfono est en un estado de marcacin.

Desconectado Llamada se desconecta.

Implementacin del controlador de eventos OnCallStateChanged


Para implementar el OnCallStateChanged controlador de eventos, realice los siguientes pasos:
1.

Aadir el siguiente encabezado procedimiento para la seccin privada de la definicin


del formulario:
Delphi:

procedimiento MyOnCallStateChanged (const ACallID:


Cadena; const ACallState: TCallState);
C ++:

void __fastcall MyOnCallStateChanged (const


UnicodeString aCallID, const TCallState aCallState);
2.

Vuelva a escribir la forma constructor (aplicaciones Delphi) o


el onFormCreate controlador de eventos (aplicaciones C ++) que ha definido en el de
los Servicios del marcador del telfono #Accessing seccin de la siguiente manera:
Delphi:

constructor TForm1 . Create ( AOwner : TComponent )


;
begin
inherited Create ( AOwner ) ;
TPlatformServices . Current .
SupportsPlatformService ( IFMXPhoneDialerService ,
IInterface ( PhoneDialerService ) ) ;
if Assigned ( PhoneDialerService ) then
PhoneDialerService . OnCallStateChanged : =
MyOnCallStateChanged ;
end ;
C ++:

void __fastcall TForm1 :: FormCreate ( TObject *


Sender )
{
serviceSupported = ( TPlatformServices ::
Current - > SupportsPlatformService ( __uuidof (
IFMXPhoneDialerService ) ) &&

( phoneDialerService = TPlatformServices
:: Current - > GetPlatformService ( __uuidof (
IFMXPhoneDialerService ) ) ) ) ;
if ( serviceSupported ) {
phoneDialerService - > OnCallStateChanged
= MyOnCallStateChanged ;
}
}
3.

Aadir un TLabel componente para el Diseador de formularios, y en el Inspector


de Objetos, establezca su Nombre propiedad a lblCallState.

4.

En el Editor de cdigo, agregue el siguiente cdigo de controlador de eventos:


Delphi:

procedure TForm1 . MyOnCallStateChanged ( const


ACallID : String ; const ACallState : TCallState )
;
var outText : String ;
Begin
case ACallState of
TCallState . None :
outText : =
'No llama ';
TCallState. Conectado:
OUTTEXT: ='
conectado ';
TCallState. entrante:
OUTTEXT: ='
Incoming call' ;
TCallState . Dialing :
outText : =
'Dialing' ;
TCallState . Disconnected : outText : =
'Disconnected' ;
end ;
lblCallState . Text : = outText ;
End ;
C ++:

anular __fastcall TForm1 :: MyOnCallStateChanged


(const UnicodeString aCallID, const TCallState
aCallState)
{interruptor (aCallState)
{caso TCallState :: Ninguno:
lblCallState -> Texto = "n calls" ;
break ; case TCallState :: Connected :
lblCallState - > Text = "Connected" ;
break ; case TCallState :: Incoming :
lblCallState - > Text = "Incoming
call" ; break ; case TCallState :: Dialing :

lblCallState - > Text = "Dialing" ;


break ; case TCallState :: Disconnected :
lblCallState - > Text =
"Disconnected" ; break ; } }

Despus de implementar este controlador de eventos, la aplicacin muestra el estado de la


llamada de telfono.
Por ejemplo, la pantalla de iOS siguiente indica que el telfono est en un estado de marcacin:

Nota: En este proyecto de ejemplo, el TLabel componente es junto al cuadro TEdit y la llamada
Make botn, bajo nmero de telfono.

Usando FireDAC para conectarse a la base de datos


FireDAC es un conjunto nico de Universal Data Access componentes para el desarrollo de
aplicaciones de bases de datos multiplataforma para Delphi y C ++ Builder. Con su potente
arquitectura comn, FireDAC permite el acceso directo de alta velocidad nativa de Delphi para
InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access,
Firebird, Informix, y ms.

Para las plataformas mviles, FireDAC apoya InterBase Togo, as como SQLite. Estos
productos de base de datos se pueden ejecutar en dispositivos iOS y Android.

Para otras bases de datos, como Oracle, es necesario tener al menos una biblioteca cliente. En
plataformas Windows, la biblioteca cliente se proporciona como un archivo DLL conectarse. Por
lo tanto, es necesario desarrollar aplicaciones utilizando tecnologas de nivel medio como
DataSnap para conectarse a estos productos de base de datos desde un dispositivo mvil.

Otro tutorial se explica cmo conectarse a la base de datos de Enterprise sin usar una biblioteca
cliente en un dispositivo mvil; ver Mvil Tutorial: Conexin a una base de datos de la empresa
desde un cliente mvil (iOS y Android).

Diseo y Configuracin de la interfaz de usuario


Este tutorial usa TListView y TPanel componentes como los elementos de interfaz de usuario.
Para configurar un ListView y un componente Panel, utilice los siguientes pasos:
1. Para crear una aplicacin HD multi-dispositivo, seleccione una de las siguientes:

Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en blanco

Archivo> Aplicacin Nuevo> Multi-Device - C ++ Builder> Aplicacin en blanco

2. Cada de una TListView componente en el formulario.


3. En el Inspector de Objetos, establezca las siguientes propiedades del ListView:

Ajuste el Align propiedad a cliente, por lo que el componente ListView utiliza todo
el formulario.

Ajuste el ItemAppearance a ListItemRightDetail.

Ajuste el SearchVisible de verdad.

4. Aadir un TPanel componente al formulario y establezca las siguientes propiedades en el


Inspector de Objetos:

Ajuste el Align propiedad para el TPanel componente al Top.

5. Aadir un TLabel componente al Grupo Especial, y establezca las siguientes propiedades


en el Inspector de Objetos:

Ajuste el Align propiedad para el TLabel componente al Cliente.

Establezca las Vistas a cualquiera iOS o Android.

Ajuste el StyleLookup propiedad a listboxitemlabel.

Situado detrs de las Vistas al Maestro.

Ajuste el HorzAlign caracterstica en TextSettings al Centro.

Ajuste el texto propiedad a DB DEMO.

Conexin a los Datos


Los siguientes son los pasos bsicos para conectarse a datos en una base de datos utilizando
FireDAC:
1. En la paleta de herramientas, haga doble clic en el TFDConnection componente.

2. Haga clic con el TFDConnection componente y seleccione Editor de conexin.


3. En el Editor de conexin FireDAC, establezca los siguientes parmetros de
la TFDConnection:

1. Ajuste la identificacin del conductor propiedad a IB.


2. Establezca la base de datos de parmetro a:

C: \ Users \ Public \ Documents \ Embarcadero \ Studio \


15.0 \ Samples \ Data \ dbdemos.gdb (ubicacin de la base de datos)
y haga clic en Abrir en el cuadro de dilogo Abrir archivo.
3. Ajuste el nombre_de_usuario parmetro para sysdba.
4. Establezca la contrasea parmetro para llave maestra.
5. Ajuste el Protocolo parmetro para TCPIP.

6. Haga clic en la prueba de botn para probar la conexin.


7. Haga clic en Aceptar para cerrar el Editor de conexin.
4. En el Inspector de Objetos, establezca las siguientes propiedades de TFDConnection:
1. Ajuste el LoginPrompt propiedad a falso, por lo que el usuario no se le solicita
un nombre de usuario.
2. Ajuste el Conectado propiedad a Verdadero.
Nota: Si se produce un error ("base de datos no disponible") en el entorno de desarrollo,
esto significa que usted no tiene una licencia vigente para InterBase. La licencia de

InterBase Developer Edition se incluye como parte del producto para algunas ediciones del
producto. Para obtener ms informacin, consulte Solucin de problemas.
5. Aadir un TFDQuery componente al formulario.
6. Haga clic con el TFDQuery componente y seleccione Editor de consultas.
1. Escribir en el Comando SQL editor de texto seleccione

nombre_comn, SPECIES_NAME desde el pedido BIOLIFE


por nombre_comn.
2. Haga clic en el Ejecutar botn para ver los resultados del comando.

3. Haga clic en Aceptar para cerrar el Editor de consultas.


7. En el Inspector de Objetos, establezca el activo propiedad del TFDQuery componente
al Verdadero.
8. Abra el Diseador LiveBindings y conectar los datos y la interfaz de usuario como sigue:
1. Haga clic nombre_comn en FDQuery1, y arrastrar el cursor del ratn
para Item.Text en ListView1.

En este punto, TBindSourceDB y TBindingsList se aadieron componentes a la forma.


2. Haga clic SPECIES_NAME en BindSourceDB1, y arrastrar el cursor del ratn
para Item.Detail en ListView1.

9. Aadir un TFDPhysIBDriverLink componente al formulario.


10. Aadir un TFDGUIxWaitCursor componente al formulario.
Nota: La Preparacin de una aplicacin FireDAC de Ejecucin tema se explica el uso de los
componentes TFDGUIxWaitCursor y TFDPhysIBDriverLink en una aplicacin FireDAC.

Implementacin de la aplicacin para mvil


Hasta este punto, usted ha utilizado InterBase en su escritorio. Esto significa que la base de
datos real se encuentra en la unidad de disco duro local (por ejemplo, C: \ Users \

Public \ Documents \ Embarcadero \ Studio \ 15.0 \ Samples


\ Data \ dbdemos.gdb). En el dispositivo mvil, la aplicacin es de arena en caja, y por lo
general slo se puede leer y escribir los datos que se encuentran en el Documentos carpeta
(por dispositivo iOS) y interna de almacenamiento (por dispositivo Android) en su carpeta de
aplicaciones.
Para conectarse a una base de datos local en el mvil, es necesario realizar las siguientes
acciones:

Implementar la base de datos al dispositivo mvil.

Compruebe la configuracin (para conectarse a la base de datos de archivo) a un archivo


local en el marco del Documentos carpeta (por dispositivo iOS) o interna de
almacenamiento (por dispositivo Android).

Implementacin de InterBase Togo y el archivo de base de datos para


mvil
Para ejecutar la aplicacin en el mvil, que necesita para implementar los siguientes archivos:

Interbase Togo

El archivo de base de datos (dbdemos.gdb)


1.

Usted puede agregar la base de datos a su proyecto con uno de los dos mtodos
siguientes:

Haga clic en el nombre del proyecto en el Project Manager y seleccione Agregar


... en el men contextual (o Proyecto> Agregar a Proyecto) para mostrar
el Agregar al proyecto cuadro de dilogo. Vaya a la ubicacin de base de
datos C:

\ Users \ Public \ Documents \ Embarcadero

\ Studio \ 15.0 \ Samples \ Data, seleccione la


base de datos dbdemos.gdb y haga clic en Abrir.
Vaya a la ubicacin de base de datos C: \ Users \ Public \

Documents \ Embarcadero \ Studio \ 15.0 \ Samples


\ Data y arrastrar y soltar la base de datos dbdemos.gdb al proyecto en el
Administrador de proyectos. Haga clic en S para confirmar que desea agregar el
archivo a su proyecto.
2.

Despus de agregar el archivo de base de datos, los destacados


Archivos escaparates. Seleccione los siguientes mdulos de base de datos y, a
continuacin, haga clic en Aceptar para cerrar el cuadro de dilogo Archivos del da:

InterBase Togo. Es necesario seleccionar la licencia para ser utilizado al desplegar


la aplicacin en el dispositivo.

El Consejo al comienzo de este tutorial se describe cmo activar una licencia


InterBase.

Los nombres sugeridos para los archivos de licencias disponibles se


muestran en el cuadro de dilogo Archivos destacado, bajo el siguiente
patrn de nombre:. Reg _ * txt.

Como se puede ver en la imagen de abajo, el reg_ibtogo.txt se selecciona el archivo de


licencia para este tutorial.

Es posible que haya recibido de Embarcadero un archivo de licencia para


IBToGo o IBLite que tiene un patrn de reg_nnnnnnn.txt,
donde nnnnnnn es un nmero generado:

Si ha guardado el archivo sobre reg_ibtogo.txt o reg_iblite.txt en la


ubicacin de abajo (por ejemplo, C:

\ Users \ Public \

Documents \ Embarcadero \ InterBase \ Redist


\ InterBaseXE3), slo puede utilizar la licencia que se desea.

Si ha guardado el archivo con su nombre original, a continuacin,


seleccione Agregar archivos (que se muestra en el siguiente paso) e
incluir el archivo de licencia en la lista de archivos que necesitan ser
desplegado con la aplicacin.

3.

Abra el Gestor de despliegue seleccionando Proyecto> Despliegue.

4.

Seleccione la configuracin de depuracin - plataforma de dispositivos


iOS o configuracin de depuracin - plataforma Android en la lista desplegable de
las plataformas de destino en la parte superior del Gestor de despliegue y ver que la
base de datos dbdemos.gdb se ha aadido a las plataformas.

5.

Ver cmo el Camino remoto de dbdemos.gdb se ha fijado para iOS y plataformas


Android:

Ruta remota en la plataforma de dispositivos iOS: Inicio \ Documentos

Ruta remota en la plataforma Android: activos

\ \ interna

Como se acaba de configurar, al ejecutar la aplicacin en el dispositivo mvil, el archivo de


base de datos (dbdemos.gdb) se va a desplegar a la Documentos carpeta (para la plataforma
iOS) ointerna de almacenamiento (para plataforma Android) en el rea de caja de arena de su
aplicacin multi-dispositivo.
Delphi:

procedimiento TForm1. FDConnection1BeforeConnect


(Remitente: TObject);
comenzar
{$ SI SE DEFINE (iOS) o DEFINED(ANDROID)}
FDConnection1 . Params . Values [ 'Protocol' ] : =
'Local' ;
FDConnection1 . Params . Values [ 'Database' ] : =
TPath . Combine ( TPath . GetDocumentsPath ,
'dbdemos.gdb' ) ;
{$ENDIF}
end ;
El TPath registro se declara en System.IOUtils unidad, por lo que necesita para
agregar System.IOUtils en la clusula usos.
C ++:

anular __fastcall TForm1 :: SQLConnection1BeforeConnect


(TObject * Remitente)
{#if
((definido (__ arm__) && definido (__ APPLE__)) ||
defined(__ANDROID__))
FDConnection1 - > Params - > Values [ "Protocol" ]
= "Local" ;

FDConnection1 - > Params - > Values [ "Database" ]


=
System :: Ioutils :: TPath :: Combine ( System
:: Ioutils :: TPath :: GetDocumentsPath ( ) ,
"dbdemos.gdb" ) ;
#endif
}
Usted necesita agregar #include <System.IOUtils.hpp>.

Ejecutar su aplicacin en un simulador o en un dispositivo


mvil
Ahora la aplicacin est lista para funcionar. Usted debe ser capaz de navegar por los datos del
mismo modo que en el IDE. Puede reducir la lista usando el cuadro de bsqueda.
iOS

Android

Solucin de problemas
Cuestiones InterBase
Consulte la siguiente seccin con informacin detallada sobre Cuestiones Licencia Interbase.
Nota: Siga los pasos en IBLite y IBToGo Prueba Despliegue Licensing para obtener un
archivo de licencia vlida.

Problemas de manejo de excepciones


Si su aplicacin plantea una excepcin sin tener cdigo de manejo adecuado excepcin, su
aplicacin multi-dispositivo simplemente se estrella (desaparece) en tiempo de ejecucin.
Si se encuentra con un accidente, es posible que desee conectarse manualmente a la base
de datos, mientras que para solucionar el problema siguiendo los siguientes pasos:
1.

Seleccione el FDConnection1 componente, y cambiar el Conectado propiedad


a False.

2.

Cada de un botn en el formulario, y crear el siguiente controlador de eventos


para conectarse manualmente a la base de datos:
Delphi:

procedure TForm1 . Button1Click ( Sender :


TObject ) ;
begin
try
FDConnection1 . Connected : = True ;
FDQuery1 . Active : = True ;
except
on e : Exception do
begin
ShowMessage ( e . Message ) ;
end ;
end ;
end ;
C ++:

void __fastcall TForm1 :: Button1Click ( TObject *


Sender ) {
try {
FDConnection1 - > Connected = true ;
FDQuery1 - > Active = true ;
}
catch ( Exception & e ) {
ShowMessage ( e. Message ) ;
}
}
3.

Compruebe el mensaje de error.

Tutorial mvil: Usando FireDAC y SQLite (iOS y


Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 Utilizando FireDAC para conectarse a la base de datos

2 Creacin de la base de datos utilizando el framework FireDAC

3 Diseo y Configuracin de la interfaz de usuario

4 Uso del Asistente LiveBindings

4.1 Aadir los componentes LiveBinding

4.2 Conexin a los Datos

4.3 Viendo ShopItem en el ListView

5 Crear el controlador de eventos para que el botn Delete visible cuando el usuario selecciona un
elemento de la lista

6 Crear el controlador de eventos para el botn Agregar para agregar una entrada a la lista

7 Creacin del controlador de eventos para el botn Eliminar para eliminar una entrada de la Lista

8 Preparar la aplicacin de tiempo de ejecucin

9 Configuracin de la base de datos de despliegue para el mvil

9.1 Agregar y configurar su base de datos del archivo en el Gestor de despliegue

10 Modificacin Cdigo conectarse a un archivo de base de datos local en el mvil

10.1 Especificacin de la ubicacin de la base de datos SQLite en el dispositivo mvil

10.2 Creacin de una tabla si no existe ninguno

11 Ejecucin de la aplicacin en un simulador o en un dispositivo mvil

12 Vase tambin

Antes de comenzar este tutorial, usted debe leer y realizar la siguiente sesin de tutora:

Tutorial mvil: Usando LiveBindings rellenar un ListView (iOS y Android)

Este tutorial describe los pasos bsicos para utilizar SQLite como almacenamiento de datos local en
su dispositivo mvil a travs del marco FireDAC.
iOS

Android

Usando FireDAC para conectarse a la base de datos


FireDAC es un conjunto nico de Universal Data Access componentes para el desarrollo de
aplicaciones de bases de datos multiplataforma para Delphi y C ++ Builder. Con su potente
arquitectura comn, FireDAC permite el acceso directo de alta velocidad nativa de Delphi para
InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access,
Firebird, Informix, y ms.

Para las plataformas mviles, FireDAC apoya InterBase Togo, as como SQLite. Estos
productos de base de datos se pueden ejecutar en dispositivos iOS y Android.

Para otras bases de datos, como Oracle, es necesario tener al menos una biblioteca cliente. En
plataformas Windows, la biblioteca cliente se proporciona como un archivo DLL conectarse. Por
lo tanto, es necesario desarrollar aplicaciones utilizando tecnologas de nivel medio como
DataSnap REST para conectarse a estos productos de base de datos desde un dispositivo
mvil.

Otro tutorial se explica cmo conectarse a la base de datos de Enterprise sin usar una biblioteca
cliente en un dispositivo mvil; ver Mvil Tutorial: Conexin a una base de datos de la empresa
desde un cliente mvil (iOS y Android).

La creacin de la base de datos utilizando el framework


FireDAC
En primer lugar, es necesario crear un archivo de base de datos SQLite en su plataforma de
desarrollo de Windows. Utilice los pasos siguientes, de modo que usted puede utilizar el Diseador
de formularios para disear la interfaz de usuario de su aplicacin mvil.
Nota: En el Diseador de formularios, activar el Maestro vista para este tutorial.
1.

Para crear una aplicacin de mltiples dispositivos HD, seleccione:

Para Delphi: Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en


blanco

Para C ++: Archivo> Aplicacin Nuevo> Multi-Device - C ++ Builder>


Aplicacin en blanco
2.

En la paleta de herramientas, haga doble clic en el TFDConnection componente.

3.

Haga clic derecho en el TFDConnection componente y seleccione Editor de conexin.

4.

En el Editor de conexin FireDAC, establezca los siguientes parmetros de


la TFDConnection:

Ajuste la identificacin del conductor propiedad a SQLite.


Establezca la base de datos de parmetro a:

C: \ Users \ Public \ Documents \ Embarcadero \ Studio \


15.0 \ Samples \ Data \ shoplist.s3db (ubicacin de la base de
datos)
y haga clic en Abrir en el cuadro de dilogo Abrir archivo.
Nota: Puede configurar lo anterior base de datos de parmetros incluso
si shoplist.s3db no existe. (Para mostrar Employees.s3db u otros * .s3db archivos en el
cuadro de dilogo Abrir, establezca la Todos los archivos (*. *) Opcin.)

Ajuste el LockingMode parmetro a la normalidad.

Haga clic en la prueba de botn para probar la conexin.


Haga clic en Aceptar para cerrar el Editor de conexin.
5.

En el Inspector de Objetos, establezca las siguientes propiedades de TFDConnection:

Ajuste el LoginPrompt propiedad a falso, por lo que el usuario no se le solicita


un nombre de usuario.

Ajuste el Conectado propiedad a Verdadero.


6.

En la paleta de herramientas, haga doble clic en el TFDQuery componente.

7.

En el Inspector de Objetos, establezca las siguientes propiedades de TFDQuery:

Establezca el Nombre propiedad a FDQueryCreateTable.


Establezca la propiedad SQL de la siguiente manera:

CREATE TABLE IF NOT EXISTS Artculo (ShopItem TEXT NOT


NULL)
8.

Haga clic derecho en el FDQueryCreateTable y seleccione Ejecutar.

Diseo y Configuracin de la interfaz de usuario

Componentes de interfaz de usuario visibles se cargan en el diseador

Este tutorial utiliza uno TListView componente como el elemento de interfaz de usuario.
Para configurar un componente ListView y otros elementos de interfaz de usuario, siga
estos pasos:
1.

Cada de una TToolBar en el formulario.

2.

Cada de una TButton en el componente barra de herramientas y establezca las


siguientes propiedades en el Inspector deObjetos:

Establezca el Nombre propiedad a ButtonAdd.


Ajuste el StyleLookup a addtoolbutton.
Ajuste el Alinear a la derecha.
3.

Cada de una TButton en el componente barra de herramientas y establezca las


siguientes propiedades en el Inspector deObjetos:

Establezca el Nombre propiedad a ButtonDelete.


Ajuste el StyleLookup a deletetoolbutton.
Ajuste el Alinear a la izquierda.

Ajuste el texto a Eliminar.


Ajuste el Visible propiedad a False.
4.

Cada de una TLabel en el componente barra de herramientas y establezca las


siguientes propiedades en el Inspector deObjetos:

Ajuste el Alinear al Cliente.


Ajuste el StyleLookup a toollabel.
Ajuste el texto a la lista de la compra.
Ampliar el TTextSettings nodo y establecer el HorzAlign propiedad a Centro.
5.

Cada de una TListView componente en el formulario y establezca las siguientes


propiedades en el Inspector de Objetos:

Ajuste el Align propiedad a cliente, por lo que el componente ListView utiliza


todo el formulario.

Uso del Asistente LiveBindings


Utilice el Asistente LiveBindings aadir los componentes
LiveBindings (TBindSourceDB, TBindingsList), y el TFDQuery componente.

Aadir los componentes LiveBinding


1.

Seleccione Ver> LiveBindings Diseador y los LiveBindings Diseador abre.

2.

Seleccione Asistente LiveBindings.

3.

Seleccione Crear un origen de datos de tareas vinculante.

4.

Haga clic en el siguiente botn.

5.

Seleccione FireDAC nombre de la clase.

6.

Haga clic en el siguiente botn.

7.

Cambie el Tipo de comando de Consulta.

8.

Ajuste el texto Comando propiedad para seleccionar


artculo.

ShopItem del

9.

Haga clic en el comando de prueba botn.

10. Haga clic en el siguiente botn.


11. Haga clic en el Finalizar botn.
En este punto, TBindSourceDB y TFDQuery se aadieron componentes al formulario.

Conexin a los Datos


1.

Vuelva a abrir el Asistente LiveBindings.

2.

Seleccione Link a control con un campo de trabajo de unin.

3.

Haga clic en el siguiente botn.

4.

Seleccione el control existente ficha.

5.

Seleccione el ListView1 componente.

6.

Haga clic en el siguiente botn.

7.

Seleccione BindSourceDB1.

8.

Haga clic en el siguiente botn.

9.

Seleccione ShopItem Nombre del campo.

10. Haga clic en el siguiente botn.


11. Haga clic en el Finalizar botn para cerrar el asistente.
Nota: Estos ltimos pasos no son obligatorios para este tutorial, ya que slo hay un campo
en BindSourceDB1. Estos pasos son tiles para enlazar con el valor seleccionado si estamos
manejando varios campos de una base de datos.

Viendo ShopItem en el ListView


El siguiente paso muestra el texto de ShopItem en el TListView componente.
1.

En el Diseador LiveBindings seleccione ShopItem en


el BindSourceDB1 componente y arrastre ShopItem a Item.Text en ListView1.

Siguiendo estos pasos se conecta la interfaz de usuario de la aplicacin con los datos en una
base de datos SQLite. Si ha utilizado una tabla con los datos existentes para este tutorial, ahora
debera ver los datos reales en el Diseador de formularios.

Crear el controlador de eventos para que el botn Delete


visible cuando el usuario selecciona un elemento de la
lista
El Visible propiedad para el Borrar botn se establece en False. Por lo tanto, por defecto, el
usuario final no ve este botn. Puede que sea visible cuando el usuario selecciona un elemento
de la lista, de la siguiente manera:

Seleccione ListView1 y definir el siguiente controlador de eventos para


el OnItemClick evento.

Delphi:

procedure TForm1 . ListView1ItemClick ( const Sender :


TObject ;
const AItem : TListViewItem ) ;
begin
ButtonDelete . Visible : = ListView1 . Selected <> nil
;
end ;
C ++:

void __fastcall TForm1 :: ListView1ItemClick ( const


TObject * Sender,
const TListViewItem * AItem ) {
ButtonDelete - > Visible = ( ListView1 - > Selected !
= NULL ) ;
}

Crear el controlador de eventos para el botn Agregar


para agregar una entrada a la lista

Conexiones de bases de datos tambin se configuran

El siguiente paso es la adicin de una caracterstica a esta aplicacin para agregar un elemento
a la lista de la compra.
1.

Cada de una TFDQuery componente en el formulario.

2.

Establezca las siguientes propiedades en el Inspector de Objetos:

Establezca el Nombre propiedad a FDQueryInsert.


Establezca la propiedad SQL de la siguiente manera:

INSERT INTO PUNTO (ShopItem) VALUES (: ShopItem)


Seleccione el Expandir botn (...) en la Parmetros propiedad.
Seleccione el ShopItem parmetro y establecer DataType a ftString:

3.

En la Vista Estructura, haga clic en el ButtonAdd componente y seleccione control>


Traer al frente. Esto hace que el botn de la parte frontal visual de la forma activa.

Delphi:

Declarar el siguiente procedimiento en la seccin privada:

privada
procedimiento OnInputQuery_Close (const aresult:
TModalResult; const a Los valores: matriz de cadena);

Agregue el siguiente procedimiento:

procedure TForm1 . OnInputQuery_Close ( const AResult :


TModalResult ; const AValues : array of string ) ;
var
TaskName : String ;
begin
TaskName : = string . Empty ;
if AResult <> mrOk then
Exit ;
TaskName : = AValues [ 0 ] ;
try
if ( TaskName . Trim <> '' )
then
begin
FDQueryInsert . ParamByName ( 'ShopItem' ) .
AsString : = TaskName ;
FDQueryInsert . ExecSQL ( ) ;
FDQuery1 . Close ( ) ;
FDQuery1 . Open ;

ButtonDelete . Visible : = ListView1 . Selected <>


;
nil
end ;
except
on e : Exception do
begin
ShowMessage ( e . Message ) ;
end ;
end ;
end ;

En el Diseador de formularios, haga doble clic en el ButtonAdd componente. Agregue el


cdigo siguiente a este controlador de eventos:

procedure TForm1 . ButtonAddClick ( Sender :


var
Values : array [ 0 .. 0 ] of String ;
begin
Values [ 0 ] : = String . Empty ;
InputQuery ( 'Enter Nuevo elemento ',
'], Valores, Auto. OnInputQuery_Close)

TObject ) ;

[' nombre

terminar;
C ++:
Para replicar la misma funcionalidad en C ++, se requieren pasos Adicional:

Aadir la siguiente definicin despus de la definicin TForm1:

typedef void __fastcall ( __closure *


TInputCloseQueryProcEvent )
( const System :: Uitypes :: TModalResult AResult,
Sistema :: UnicodeString const * a Los valores,
const int AValues_High);

Agregue la siguiente definicin de clase:

class InputQueryMethod : public TCppInterfacedObject <


TInputCloseQueryProc >
{
private :
TInputCloseQueryProcEvent Evento;
pblica:
InputQueryMethod (TInputCloseQueryProcEvent _Event)
{Evento = _Event;}

void __fastcall Invoke (const Sistema :: Uitypes ::


TModalResult aresult,

Sistema :: UnicodeString const * a Los


valores, const int AValues_High)
{eventos (aresult, a Los valores,
AValues_High);}};

Agregue la siguiente declaracin prevista en la seccin privada de la forma:

privada:
void __fastcall OnInputQuery_Close
(const Sistema :: Uitypes :: TModalResult
aresult,
Sistema :: UnicodeString const * a Los
valores, const int AValues_High);

Agregue el cdigo siguiente:

anular __fastcall TForm1 :: OnInputQuery_Close (const


Sistema :: Uitypes :: TModalResult aresult,
Sistema :: UnicodeString const * a Los
valores, const int AValues_High)
{Cadena TaskName ;
TaskName = "" ;
if ( AResult ! = mrOk )
return ;
TaskName = AValues [ 0 ] ;
try {
if
( ! ( Trim ( TaskName ) == "" ) ) {
FDQueryInsert - > ParamByName (
"ShopItem" ) - > AsString = TaskName ;
FDQueryInsert - > ExecSQL ( ) ;
FDQuery1 - > Close ( ) ;
FDQuery1 - > Open ( ) ;
ButtonDelete - > Visible = ( ListView1 > Selected ! = NULL ) ;
}
}
catch ( Exception & e ) {
ShowMessage ( e. Message ) ;
}
}

En el Diseador de formularios, haga doble clic en el ButtonAdd componente. Agregue el


cdigo siguiente a este controlador de eventos:

anular __fastcall TForm1 :: ButtonAddClick (TObject *


Remitente)
{Cadena subttulo = "Introducir Nuevo
elemento";
Cuerda Avisos [1];

Prompts [0] = "Nombre:";


Cadena predeterminados [1];
predeterminados [0] = "" ;
_di_TInputCloseQueryProc Met = nueva InputQueryMethod
(y OnInputQuery_Close);
InputQuery (ttulo, Avisos, 0, por defecto, 0,
(TInputCloseQueryProc *) Met);}
El InputQuery funcin muestra un cuadro de dilogo preguntando al usuario final para introducir
texto. Esta funcin devuelve Verdadero cuando el usuario selecciona Aceptar, por lo que se
pueden aadir datos a la base de datos slo cuando el usuario selecciona Aceptar y el
texto contiene algunos datos.
iOS

Android

Crear el controlador de eventos para el botn Eliminar


para eliminar una entrada de la Lista
El siguiente paso es la adicin de una caracterstica a esta aplicacin para eliminar un elemento
de la lista de la compra:

1.

Cada de una TFDQuery componente en el formulario.

2.

Establezca las siguientes propiedades en el Inspector de Objetos:

Establezca el Nombre propiedad a FDQueryDelete.


Establezca la propiedad SQL de la siguiente manera:

eliminar del artculo donde ShopItem =: ShopItem


Seleccione el Expandir botn (...) en la Parmetros propiedad.
Seleccione el ShopItem parmetro y establecer DataType a ftString:
3.

En la Vista Estructura, haga clic en el ButtonDelete componente y


seleccione control> Traer al frente. Esto hace que el botn de la parte frontal visual
de la forma activa.

4.

En el Diseador de formularios, haga doble clic en


el ButtonDelete componente. Agregue el cdigo siguiente a este controlador de
eventos.

Delphi:

procedure TForm1 . ButtonDeleteClick ( Sender :


;
var
TaskName : String ;
begin
TaskName : = ListView1 . Selected . Text ;
try
FDQueryDelete . ParamByName
: = TaskName ;
FDQueryDelete . ExecSQL ( )
FDQuery1 . Close ;
FDQuery1 . Open ;
ButtonDelete . Visible : =
nil ;
except
on e : Exception do
begin
SHowMessage ( e . Message
end ;
end ;
end ;

TObject )

( 'ShopItem' ) . AsString
;

ListView1 . Selected <>

) ;

C ++:

anular __fastcall TForm1 :: ButtonDeleteClick (TObject *


Remitente)
{Cadena TaskName = ListView1 - > Selected - > Text ;
try {
FDQueryDelete - > ParamByName ( "ShopItem" ) - >
AsString = TaskName ;

FDQueryDelete - > ExecSQL ( ) ;


FDQuery1 - > Close ( ) ;
FDQuery1 - > Open ( ) ;
ButtonDelete - > Visible = ( ListView1 - >
Selected ! = NULL ) ;
}
catch ( Exception & e ) {
ShowMessage ( e. Message ) ;
}
}

Preparar la aplicacin de tiempo de ejecucin


FireDAC tiene una arquitectura de mltiples capas de acoplamiento flexible, donde las capas
proporcionan servicios. Un API de servicio se define como una interfaz COM que otras capas
pueden solicitar el uso de la fbrica de interfaz.
Para que funcione correctamente FireDAC, debe vincular la aplicacin de
las IFDGUIxWaitCursor y IFDPhysDriver interfaces para su aplicacin.
Para ello, suelte los TFDGUIxWaitCursor y TFDPhysSQLiteDriverLink componentes en el
formulario.

Configuracin de la base de datos de despliegue para el


mvil
Hasta este punto, usted ha utilizado SQLite en su escritorio. Esto significa que la base de datos
real se encuentra en la unidad de disco duro local (por ejemplo, C: \ Users \ Public \ Documents
\ Embarcadero \ Studio \ 15.0 \ Samples \ Data \ shoplist.s3db). En el dispositivo mvil, las
aplicaciones son de arena en caja, y por lo general slo se pueden leer y escribir los datos que
se encuentran en el Documentos carpeta (por dispositivo iOS) y interna de almacenamiento
(por dispositivo Android) en su carpeta de aplicaciones.
Para conectarse a una base de datos local en el mvil, es necesario realizar las siguientes
acciones:

Implementar la base de datos al dispositivo mvil.

Compruebe la configuracin (para conectarse a la base de datos de archivo) a un archivo


local en el marco del Documentos carpeta (por dispositivo iOS) o interna de
almacenamiento (por dispositivo Android).

Agregar y configurar su base de datos del archivo en el Gestor de


despliegue
Antes de poder ejecutar la aplicacin en el mvil, es necesario configurar el despliegue para su
archivo de base de datos (shoplist.s3db).
1.

Usted puede agregar la base de datos a su proyecto con uno de los dos mtodos
siguientes:

Haga clic en el nombre del proyecto en el Project Manager y seleccione Agregar


... en el men contextual (o Proyecto> Agregar a Proyecto) para mostrar
el Agregar al proyecto cuadro de dilogo. Vaya a la ubicacin de base de

datos C:

\ Users \ Public \ Documents \ Embarcadero

\ Studio \ 15.0 \ Samples \ Data, seleccione la


base de datos shoplist.s3db y haga clic en Abrir.
Vaya a la ubicacin de base de datos C: \ Users \ Public \

Documents \ Embarcadero \ Studio \ 15.0 \ Samples


\ Data y arrastrar y soltar la base de datos shoplist.s3db al proyecto en
el Administrador de proyectos. Haga clic en S para confirmar que desea agregar
el archivo a su proyecto.
2.

Despus de agregar el archivo de base de datos, los destacados


Archivos escaparates, haga clic en Cancelar para cerrarlo.

3.

Abra el Gestor de despliegue seleccionando Proyecto> Despliegue.

4.

Seleccione la configuracin de depuracin - plataforma de dispositivos


iOS o configuracin de depuracin - plataforma Android en la lista desplegable de
las plataformas de destino en la parte superior del Gestor de despliegue y ver que la
base de datos shoplist.s3db se ha aadido a las plataformas.

5.

Ver cmo el Camino remoto de shoplist.s3db se ha fijado para iOS y


plataformas Android:

Ruta remota en la plataforma de dispositivos iOS: Inicio \ Documentos

Ruta remota en la plataforma Android: activos

\ \ interna

Como se acaba de configurar, al ejecutar la aplicacin en el dispositivo mvil, el archivo de


base de datos (shoplist.s3db) est dispuesto a ser desplegado en el Documentos carpeta
(para la plataforma iOS) o interna de almacenamiento (para plataforma Android) en el rea de
caja de arena su aplicacin multi-dispositivo.

Modificacin Cdigo para conectarse a un archivo de base


de datos local en el mvil
Las caractersticas bsicas de esta aplicacin ahora estn implementados. Siguiendo los pasos
de este tutorial, que ha creado un archivo de base de datos en Windows. El archivo de base de
datos no est disponible en su dispositivo mvil a menos que copiarlo en el dispositivo mvil o
crear sobre la marcha.
Puede crear una base de datos SQLite y la tabla con los siguientes pasos:

Especificacin de la ubicacin de la base de datos SQLite en el


dispositivo mvil
1.

En el Diseador de formularios, seleccione la FDConnection1 componente.

2.

En el Inspector de Objetos, haga doble clic en el BeforeConnect evento.

3.

Agregue el cdigo siguiente a este controlador de eventos:

Delphi:

procedimiento TForm1. FDConnection1BeforeConnect


(Remitente: TObject);
comenzar
{$ SI SE DEFINE (iOS) o DEFINED(ANDROID)}
FDConnection1 . Params . Values [ 'Database' ] : =
TPath . Combine ( TPath . GetDocumentsPath ,
'shoplist.s3db' ) ;
{$ENDIF}
end ;

El TPath registro se declara en System.IOUtils unidad, por lo que necesita para


agregar System.IOUtils en la clusula usos de su unidad.
C ++:

anular __fastcall TForm1 :: FDConnection1BeforeConnect


(TObject * Remitente) {#if
defined (__ ANDROID__) || defined(__APPLE__)
FDConnection1 - > Params - > Values [ "Database" ] =
System :: Ioutils :: TPath :: Combine ( System
:: Ioutils :: TPath :: GetDocumentsPath
( ) , "shoplist.s3db" ) ;
#endif
}
Usted necesita agregar #include <System.IOUtils.hpp>.

Creacin de una tabla si no existe ninguno


TABLA CREAR
SI NO EXISTE comunicado. Puede crear una tabla despus de que el componente
Con SQLite puede crear una tabla cuando no existe la tabla, utilizando la

TFDConnection se conecta a la base de datos y antes de que el componente TFDQuery


conecta a la mesa. Utilice los siguientes pasos:
1.

En el Diseador de formularios, seleccione la FDConnection1 componente.

2.

En el Inspector de Objetos, haga doble clic en el AfterConnect evento.

3.

Agregue el cdigo siguiente a este controlador de eventos:

Delphi:

procedimiento TForm1. FDConnection1AfterConnect


(Remitente: TObject);
comenzar
FDConnection1. ExecSQL ('CREATE TABLE IF NOT EXISTS
Artculo (ShopItem TEXT NOT NULL)'); finales;
C ++:

anular __fastcall TForm1 :: FDConnection1AfterConnect


(TObject * Remitente)
{FDConnection1 -> ExecSQL ("CREATE TABLE IF NOT EXISTS
Artculo (ShopItem TEXT NOT NULL)");}

Ejecucin de la aplicacin en un simulador o en un


dispositivo mvil
Ahora la aplicacin est lista para funcionar con un simulador o dispositivo mvil
conectado. Para ejecutar la aplicacin
1.

En Project Manager, seleccione la plataforma de destino.

2.

Elija cualquiera de los siguientes comandos:

Ejecutar> Ejecutar
Ejecutar> Ejecutar sin depurar
iOS

Android

Tutorial mvil: El uso de InterBase Togo con


dbExpress (iOS y Android)
Ir hasta Tutoriales mviles: Desarrollo de aplicaciones mviles (iOS y Android)

Contenidos
[Ocultar]

1 Utilizando dbExpress para conectarse a la base de datos

2 Diseo y Configuracin de la interfaz de usuario

3 Conexin con los Datos

4 Distribucin de aplicaciones para mvil

4.1 Conductor Deploy InterBase Togo, dbExpress, y el archivo de base de datos para mvil

4.2 Modificar su cdigo para conectarse a un archivo de base de datos local para mvil

5 Ejecutar su aplicacin en un simulador o en un dispositivo mvil

6 Solucin de problemas

6.1 Cuestiones InterBase

6.2 Excepcin Problemas de manipulacin

7 Vase tambin

Precaucin: dbExpress, que se describe en este tutorial, se est en desuso. Esto


significa que dbExpress ser retirado de RAD Studio en una prxima versin.
En lugar de dbExpress, le recomendamos que utilice nuestra solucin nueva base de
datos, FireDAC, que se describe en un tutorial similar aqu: Tutorial mvil: El uso de
InterBase Togo con FireDAC (iOS yAndroid).
Antes de comenzar este tutorial, usted debe leer y realizar la siguiente sesin de tutora:

Tutorial mvil: Usando LiveBindings rellenar un ListView (iOS y Android)

Consejo: Despus de este tutorial requiere una licencia para IBToGo o IBLite:

Si ha adquirido una de las siguientes versiones de RAD Studio, que ha recibido en el correo
electrnico una clave para un desarrollo ilimitado y la licencia de despliegue para IBLite:

RAD Studio XE7 Profesional o superior

Delphi XE7 Profesional o superior con mvil

Si usted es un usuario de prueba, la instalacin incluye una licencia de prueba para


IBToGo. Puede probar InterBase en iOS y Android mediante la seleccin de su licencia de
prueba durante la fase de despliegue, tal como se describe en este tutorial. Las licencias
de prueba se instalan con el producto de prueba, en C:

\ Users \ Public \

Documents \ Embarcadero \ InterBase \ Redist \ InterBaseXE3.


Nota: En los dispositivos Android, aplicaciones InterBase ToGo requieren
especficas Permisos Usos que se establezcan, en concreto:

Leer almacenamiento externo (la base de datos se coloca en la memoria externa)

Escribe almacenamiento externo (la base de datos se coloca en la memoria externa)

Internet (necesita conectar con un servidor remoto)

Este tutorial describe los pasos bsicos para navegar por los datos gestionados
por InterBase Togo en sus dispositivos iOS y Android a travs del marco dbExpress.
iOS

Android

Nota: Puede utilizar FireDAC, dbExpress y Interbase Express (IBX) componentes para
construir Interbase ToGo aplicaciones. Para una discusin detallada sobre Interbase
expreso el uso de componentes en una aplicacin Delphi, lea la Introduccin a InterBase
expreso artculo. Para este tutorial, vamos a conectar a Interbase Togo usando marco
dbExpress.

Usando dbExpress para conectarse a la base de


datos
dbExpress es un marco de acceso de base de datos muy rpida, escrito en
Delphi. RAD Studio proporciona controladores para la mayora de las principales bases
de datos, tales como Interbase, Oracle, DB2, SQL Server, MySQL, Firebird, SQLite y
ODBC. Puede acceder a estas bases de datos diferentes utilizando procedimientos
similares al procedimiento descrito aqu.

Para las plataformas mviles, dbExpress apoya InterBase Togo, as


como SQLite. Estos productos de base de datos se pueden ejecutar en
dispositivos iOS y Android.

Para otras bases de datos, como Oracle, es necesario tener al menos una
biblioteca cliente. En plataformas Windows, la biblioteca cliente se proporciona
como un archivo DLL conectarse. Por lo tanto, es necesario desarrollar
aplicaciones utilizando tecnologas de nivel medio como DataSnap para
conectarse a estos productos de base de datos desde un dispositivo mvil.

Otro tutorial se explica cmo conectarse a la base de datos de Enterprise sin usar una
biblioteca cliente en un dispositivo mvil; ver Mvil Tutorial: Conexin a una base de
datos de la empresa desde un cliente mvil (iOS y Android).

Diseo y Configuracin de la interfaz de usuario


Este tutorial usa TListView y TPanel componentes como los elementos de interfaz de
usuario.
Para configurar un ListView y un componente Panel, utilice los siguientes pasos:
1.

Para crear una aplicacin HD multi-dispositivo, seleccione una de las


siguientes:

Archivo> Nuevo> Aplicacin Multi-Device - Delphi> Aplicacin en


blanco

Archivo> Aplicacin Nuevo> Multi-Device - C ++ Builder> Aplicacin


en blanco

2.

Cada de una TListView componente en el formulario.

3.

En el Inspector de Objetos, establezca las siguientes propiedades


del ListView:

Ajuste el Align propiedad a cliente, por lo que el componente ListView


utiliza todo el formulario.

Ajuste el ItemAppearance a ListItemRightDetail.


4.

Ajuste el SearchVisible de verdad.

Aadir un TPanel componente al formulario y establezca las siguientes


propiedades en el Inspector de Objetos:

5.

Ajuste el Align propiedad para el TPanel componente al Top.

Aadir un TLabel componente al Grupo Especial, y establezca las siguientes


propiedades en el Inspector de Objetos:

Ajuste el Align propiedad para el TLabel componente al Cliente.

Ajuste el StyleLookup propiedad a toollabel.

Ajuste el HorzAlign propiedad de TextSettings a Centro.

Ajuste el texto propiedad a DB DEMO.

Conexin a los Datos


Los siguientes son los pasos bsicos para conectarse a los datos en una base de
datos usando dbExpress:
1.

En la paleta de herramientas, haga doble clic en


el TSQLConnection componente.

2.

En el Inspector de Objetos, establezca las siguientes propiedades


para TSQLConnection:
1.

Esta aplicacin utiliza InterBase Togo, por lo que establece


el controlador propiedad a IBLite / TOGO.

2.

Ajuste el LoginPrompt propiedad a falso, por lo que el usuario no


se le solicita un nombre de usuario.

3.

Haga clic en los puntos suspensivos [...] para


la Parmetros propiedad, y establecer la base de datos de valor
a C:

\ Users \ Public \ Documents \

Embarcadero \ Studio \ 15.0 \ Samples \


Data \ dbdemos.gdb (ubicacin de la base de datos).
4.

Asegrese de que el vendorlib valor se establece


en ibtogo.dll (biblioteca de software cliente); a continuacin,
haga clic en Aceptar para cerrar el cuadro de dilogo:

5.

Ajuste el Conectado propiedad a Verdadero.

Nota: Si se produce un error ("base de datos no disponible") en el entorno de desarrollo,


esto significa que usted no tiene una licencia vigente para InterBase. La licencia de
InterBase Developer Edition se incluye como parte del producto para algunas ediciones del
producto. Para obtener ms informacin, consulte Solucin de problemas.
3.

Aadir un TSQLDataSet componente al formulario y establezca las


siguientes propiedades:
1.

Ajuste el SQLConnection propiedad a SQLConnection1 (la que


agreg en el paso anterior).

2.

Ajuste el CommandText propiedad para seleccionar

nombre_comn, SPECIES_NAME desde el pedido


BIOLIFE por nombre_comn.
3.
4.

Ajuste el activo propiedad a Verdadero.

Abra el Diseador LiveBindings y conectar los datos y la interfaz de usuario


como sigue:
1.

Haga clic nombre_comn en SQLDataSet1, y arrastrar el cursor del


ratn para Item.Text en ListView1.

En este punto, TBindSourceDB y TBindingsList se aadieron componentes a la forma.


2.

Haga clic SPECIES_NAME en BindSourceDB1, y arrastrar el cursor


del ratn para Item.Detail en ListView1.

Implementacin de la aplicacin para mvil


Hasta este punto, usted ha utilizado InterBase en su escritorio. Esto significa que la
base de datos real se encuentra en la unidad de disco duro local (por ejemplo, C: \

Users \ Public \ Documents \ Embarcadero \ Studio \ 15.0 \ Samples \ Data \


dbdemos.gdb). En el dispositivo mvil, la aplicacin es de arena en caja, y por lo
general slo se puede leer y escribir los datos que se encuentran en
el Documentos carpeta (por dispositivo iOS) y interna de almacenamiento (por
dispositivo Android) en su carpeta de aplicaciones.
Para conectarse a una base de datos local en el mvil, es necesario realizar las
siguientes acciones:

Implementar la base de datos al dispositivo mvil.

Compruebe la configuracin (para conectarse a la base de datos de archivo) a un


archivo local en el marco del Documentos carpeta (por dispositivo iOS)
o interna de almacenamiento (por dispositivo Android).

Implementar InterBase Togo, dbExpress driver, y el archivo de


base de datos para mvil
Para ejecutar la aplicacin en el mvil, que necesita para implementar los siguientes
archivos:

Interbase Togo

dbExpress driver para InterBase (por simulador de iOS)

El archivo de base de datos (dbdemos.gdb)


1.

Usted puede agregar la base de datos a su proyecto con uno de los dos
mtodos siguientes:

Haga clic en el nombre del proyecto en el Project Manager y


seleccione Agregar ... en el men contextual (o Proyecto> Agregar
a Proyecto) para mostrar el Agregar al proyecto cuadro de dilogo. Vaya
a la ubicacin de base de datos C:

\ Users \ Public \

Documents \ Embarcadero \ Studio \ 15.0 \


Samples \ Data, seleccione la base de datos
dbdemos.gdb y haga clic en Abrir.

Vaya a la ubicacin de base de datos C:

\ Users \ Public \

Documents \ Embarcadero \ Studio \ 15.0 \


Samples \ Data y arrastrar y soltar la base de
datos dbdemos.gdb al proyecto en el Administrador de
proyectos. Haga clic en S para confirmar que desea agregar el archivo a
su proyecto.
2.

Despus de agregar el archivo de base de datos, los destacados


Archivos escaparates. Seleccione los siguientes mdulos de base de datos

y, a continuacin, haga clic en Aceptar para cerrar el cuadro de dilogo


Archivos del da:

InterBase Togo. Es necesario seleccionar la licencia para ser utilizado al


desplegar la aplicacin en el dispositivo.

El Consejo al comienzo de este tutorial se describe cmo activar


una licencia InterBase.

Los nombres sugeridos para los archivos de licencias disponibles se


muestran en el cuadro de dilogo Archivos destacado, bajo el
siguiente patrn de nombre:. Reg _ * txt.

Como se puede ver en la imagen de abajo, el reg_ibtogo.txt se selecciona el archivo de


licencia para este tutorial.

Es posible que haya recibido de Embarcadero un archivo de licencia


para IBToGo o IBLite que tiene un patrn de reg_nnnnnnn.txt,
donde nnnnnnn es un nmero generado:

Si ha guardado el archivo sobre reg_ibtogo.txt o reg_iblite.txt en


la ubicacin de abajo (por ejemplo, C:

\ Users \

Public \ Documents \ Embarcadero \


InterBase \ Redist \ InterBaseXE3), slo puede
utilizar la licencia que se desea.

Si ha guardado el archivo con su nombre original, a continuacin,


seleccione Agregar archivos (que se muestra en el siguiente
paso) e incluir el archivo de licencia en la lista de archivos que
necesitan ser desplegado con la aplicacin.

DbExpress InterBase Conductor

Consejo: Si va a probar la aplicacin en el simulador de iOS, entonces tambin tiene que


seleccionar el controlador dbExpress InterBase para simulador de iOS.

3.

Abra el Gestor de despliegue seleccionando Proyecto> Despliegue.

4.

Seleccione la configuracin de depuracin - plataforma de dispositivos


iOS o configuracin de depuracin - plataforma Android en la lista
desplegable de las plataformas de destino en la parte superior del Gestor de
despliegue y ver que la base de datos dbdemos.gdb se ha aadido a las
plataformas.

5.

Ver cmo el Camino remoto de dbdemos.gdb se ha fijado para iOS y


plataformas Android:

Ruta remota en la plataforma de dispositivos iOS: Inicio

Documentos \

Ruta remota en la plataforma Android: activos

interna

\ \

Como se acaba de configurar, al ejecutar la aplicacin en el dispositivo mvil, el


archivo de base de datos (dbdemos.gdb) se va a desplegar a la Documentos carpeta
(para la plataforma iOS) ointerna de almacenamiento (para plataforma Android) en el
rea de caja de arena de su aplicacin multi-dispositivo.

Modificar su cdigo para conectarse a un archivo de base de


datos local para mvil
Como se describe en el paso anterior, el componente TSQLConnection est
conectado a una base de datos en su sistema de archivos local con una ruta
absoluta. As que hay que sustituir la ubicacin del archivo antes de conectarse a la
base de datos, de la siguiente manera:
1.

En el Diseador de formularios, seleccione el componente SQLConnection1.

2.

En el Inspector de Objetos, haga doble clic en el campo Valor de


la BeforeConnect evento.

3.

Agregue el cdigo siguiente a este controlador de eventos:

Delphi:

procedimiento TForm1. SQLConnection1BeforeConnect


(Remitente: TObject);
comenzar
{$ SI SE DEFINE (iOS) o DEFINED(ANDROID)}
SQLConnection1 . Params . Values [ 'Database' ]
=
TPath . Combine ( TPath . GetDocumentsPath ,
'dbdemos.gdb' ) ;
{$ENDIF}
end ;

C ++:

anular __fastcall TForm1 ::


SQLConnection1BeforeConnect (TObject * Remitente)
{#if
(definido (__ arm__) && (definido (__ APPLE__) ||
definido (__ ANDROID__)) )
SQLConnection1 - > Params - > Values [ "Database" ]
= System :: Ioutils :: TPath :: Combine ( System ::
Ioutils :: TPath :: GetDocumentsPath ( ) ,
"dbdemos.gdb" ) ;
#endif

}
El TPath registro se declara en System.IOUtils unidad, por lo que necesita para
agregar System.IOUtils en la clusula usos.

Ejecutar su aplicacin en un simulador o en un


dispositivo mvil
Ahora la aplicacin est lista para funcionar. Usted debe ser capaz de navegar por los
datos del mismo modo que en el IDE. Puede reducir la lista usando el cuadro de
bsqueda.
iOS

Android

Solucin de problemas
Cuestiones InterBase
Consulte la siguiente seccin con informacin detallada sobre Cuestiones Licencia
Interbase.
Nota: Siga los pasos en IBLite y IBToGo Prueba Despliegue Licensing para obtener un
archivo de licencia vlida.

Problemas de manejo de excepciones


Si su aplicacin plantea una excepcin sin tener cdigo de manejo adecuado
excepcin, su aplicacin multi-dispositivo simplemente se estrella (desaparece) en
tiempo de ejecucin.
Si se encuentra con un accidente, es posible que desee conectarse manualmente
a la base de datos, mientras que para solucionar el problema siguiendo los
siguientes pasos:
1.

Seleccione el SQLConnection1 componente, y cambiar


el Conectado propiedad a False.

2.

Cada de un botn en el formulario, y crear el siguiente controlador de


eventos para conectarse manualmente a la base de datos:
Delphi:

procedure TForm1 . Button1Click ( Sender :


TObject ) ;
begin
try
SQLConnection1 . Connected : = True ;
SQLDataSet1 . Active : = True ;
except
on e : Exception do
begin
ShowMessage ( e . Message ) ;
end ;
end ;
end ;
C ++:

void __fastcall TForm1 :: Button1Click (


TObject * Sender ) {
try {
SQLConnection1 - > Connected = True ;
SQLDataSet1 - > Active = True ;
}
catch ( Exception * e ) {

ShowMessage ( e - > Message ) ;


}

Vous aimerez peut-être aussi