FireMonkey (FMX) és un framework de desenvolupament d'aplicacions multiplataforma proporcionat per Embarcadero per a Delphi i C++Builder. Permet als desenvolupadors crear aplicacions per a Windows, macOS, iOS, Android i Linux amb una única base de codi. FMX és conegut per la seva capacitat de crear interfícies d'usuari riques i interactives, aprofitant el maquinari gràfic de cada plataforma.
Objectius d'Aprenentatge
En aquesta secció, aprendràs:
- Què és FireMonkey i les seves característiques principals.
- Com configurar un projecte FireMonkey.
- Les diferències entre VCL i FMX.
- Crear una aplicació bàsica amb FireMonkey.
Característiques Principals de FireMonkey
- Multiplataforma: Desenvolupa una vegada i desplega a múltiples plataformes.
- Interfícies d'Usuari Riques: Suport per a gràfics 2D i 3D, animacions i efectes visuals.
- Accés a Maquinari: Utilitza GPU per a renderitzar gràfics, millorant el rendiment.
- Components Visuals: Una àmplia gamma de components visuals per a la creació d'interfícies d'usuari.
- Estils: Suport per a estils personalitzats que permeten canviar l'aparença de l'aplicació fàcilment.
Configuració d'un Projecte FireMonkey
Pas 1: Crear un Nou Projecte
- Obre Delphi.
- Selecciona File > New > Multi-Device Application - Delphi.
- Tria una plantilla de projecte (per exemple, Blank Application).
Pas 2: Configurar les Plataformes de Destinació
- A la finestra del Project Manager, fes clic dret sobre el projecte i selecciona Add Platform.
- Selecciona les plataformes desitjades (Windows, macOS, iOS, Android, etc.).
Pas 3: Dissenyar la Interfície d'Usuari
- Utilitza el Form Designer per arrossegar i deixar anar components visuals al formulari.
- Configura les propietats dels components utilitzant l'Object Inspector.
Diferències entre VCL i FMX
| Característica | VCL | FMX |
|---|---|---|
| Plataformes | Només Windows | Multiplataforma (Windows, macOS, iOS, Android, Linux) |
| Renderització | GDI/GDI+ | GPU (DirectX, OpenGL, Metal) |
| Components | Components clàssics de Windows | Components moderns i estilitzables |
| Estils | Limitats | Suport complet per a estils personalitzats |
| Gràfics 3D | No | Sí |
Creació d'una Aplicació Bàsica amb FireMonkey
Exemple Pràctic: Aplicació "Hola, Món!"
-
Crear el Projecte:
program HelloWorldFMX; uses System.StartUpCopy, FMX.Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. -
Dissenyar el Formulari:
- Arrossega un TButton i un TLabel al formulari.
- Configura les propietats del botó:
Name:Button1Text:Click Me
- Configura les propietats de l'etiqueta:
Name:Label1Text:Hello, World!Visible:False
-
Escriure el Codi de l'Esdeveniment:
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin Label1.Visible := True; end; end.
Explicació del Codi
- Unit1.pas: Conté la definició del formulari i els components.
- Button1Click: Esdeveniment que es dispara quan es fa clic al botó. Fa visible l'etiqueta
Label1.
Exercici Pràctic
Objectiu
Crea una aplicació FireMonkey que mostri un missatge diferent en funció del botó que es prem.
Instruccions
- Crea un nou projecte FireMonkey.
- Afegeix dos botons (
Button1iButton2) i una etiqueta (Label1). - Configura els botons amb els textos "Hola" i "Adéu".
- Escriu el codi per mostrar "Hola, Món!" quan es prem
Button1i "Adéu, Món!" quan es premButton2.
Solució
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Text := 'Hola, Món!';
Label1.Visible := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Text := 'Adéu, Món!';
Label1.Visible := True;
end;
end.Resum
En aquesta secció, has après què és FireMonkey, com configurar un projecte FireMonkey, les diferències entre VCL i FMX, i com crear una aplicació bàsica amb FireMonkey. Ara estàs preparat per explorar més funcions avançades de FireMonkey i crear aplicacions multiplataforma riques i interactives.
Curs de Programació Delphi/Object Pascal
Mòdul 1: Introducció a Delphi/Object Pascal
- Introducció a Delphi i Object Pascal
- Configuració de l'Entorn de Desenvolupament
- Primera Aplicació Delphi
- Sintaxi i Estructura Bàsiques
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control i Procediments
- Declaracions Condicionals
- Bucles i Iteració
- Procediments i Funcions
- Abast i Durada de les Variables
- Gestió d'Errors i Depuració
Mòdul 3: Treballant amb Dades
- Arrays i Cadenes
- Registres i Conjunts
- Tipus Enumerats i Subrang
- Gestió d'Arxius
- Accés a Bases de Dades
Mòdul 4: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Herència i Polimorfisme
- Interfícies i Classes Abstractes
- Gestió d'Excepcions en POO
Mòdul 5: Funcions Avançades de Delphi
- Generics i Col·leccions
- Multifil i Programació Paral·lela
- Desenvolupament Basat en Components
- Biblioteca d'Execució de Delphi (RTL)
- Tècniques Avançades de Depuració
Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX
- Introducció a VCL
- Creació de Formularis i Controls
- Programació Basada en Esdeveniments
- Introducció a FireMonkey (FMX)
- Desenvolupament Multiplataforma amb FMX
Mòdul 7: Desenvolupament Web i Mòbil
- Desenvolupament Web amb Delphi
- Serveis RESTful
- Desenvolupament Mòbil amb Delphi
- Desplegament d'Aplicacions Mòbils
- Integració amb Serveis Web
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Organització del Codi i Documentació
- Patrons de Disseny en Delphi
- Tècniques de Refactorització
- Proves Unitàries i Desenvolupament Basat en Proves
- Optimització del Rendiment
