Utilisation de sélecteurs pour fournir un comportement spécifique à la plate-forme et une vue des contrôles de sélection
Remonter à Conception d'applications FireMonkey
FireMonkey définit les sélecteurs pour doter le moteur spécifique à la plate-forme introduisant des contrôles de sélection de la vue et du comportement natifs sous différentes plates-formes.
Par exemple, Windows et OS X fournissent un contrôle calendrier de bureau standard pour la sélection de date :
iOS et Android fournissent quant à eux des contrôles spécifiques à la plate-forme pour la sélection de date :
iOS | Android |
---|---|
Par ailleurs, le sélecteur d'heure est pris en charge pour Android et iOS :
iOS | Android |
---|---|
Dans le framework FireMonkey, vous pouvez utiliser des sélecteurs pour fournir des vues et des comportements de contrôles de sélection de date spécifiques à la plate-forme.
Le noyau du moteur des sélecteurs est déclaré dans l'unité FMX.Pickers. L'unité Pickers déclare l'interface IFMXPickerService introduisant le service de plate-forme (voir Services de plate-forme de FireMonkey). L'unité Pickers introduit également deux sélecteurs :
- Sélecteur Date-Heure : un contrôle spécifique à la plate-forme, de type TCustomDateTimePicker, prenant en charge la sélection de date.
- Sélecteur Liste : un contrôle spécifique à la plate-forme, de type TCustomListPicker, prenant en charge la sélection de chaînes dans une liste déroulante.
Ces sélecteurs peuvent être activés sur différentes plates-formes en utilisant le service IFMXPickerService.
Pour utiliser le service IFMXPickerService :
- Vérifiez que le service de plate-forme IFMXPickerService est pris en charge par la plate-forme en cours et récupère le pointeur
PickerService
sur l'objet service IFMXPickerService. - Puis, créez une instance TCustomDateTimePicker en utilisant la méthode CreateDateTimePicker ou créez une instance de sélecteur TCustomListPicker en utilisant la méthode CreateListPicker :
Delphi :
var
PickerService: IFMXPickerService;
begin
if PlatformServices.Current.SupportsPlatformService(IFMXPickerService, Interface(PickerService))
then
FDateTimePicker := PickerService.CreateDateTimePicker;
... // or
FListPicker := PickerService.CreateListPicker;
C++ :
_di_IFMXPickerService PickerService;
TCustomDateTimePicker* FDateTimePicker;
TCustomListPicker* FListPicker ;
if (TPlatformServices::Current->SupportsPlatformService
(__uuidof(IFMXPickerService))) {
PickerService = TPlatformServices::Current->GetPlatformService
(__uuidof(IFMXPickerService));
FDateTimePicker = PickerService->CreateDateTimePicker();
... //or
FListPicker = PickerService->CreateListPicker();
}
-
- Voir Services de plate-forme FireMonkey pour plus d'informations sur l'utilisation des services de plate-forme. Voir le code de FMX.CalendarEdit.TCustomCalendarEdit.Create et FMX.ListBox.TCustomComboBox.Create pour plus d'exemples.
- Montrez le sélecteur requis en appelant les méthodes Show à partir des objets créés des classes TCustomDateTimePicker ou TCustomListPicker et en définissant les paramètres et les gestionnaires d'événement appropriés pour ces objets. Par exemple :
Delphi :
FDateTimePicker: TCustomDateTimePicker;
//...
FDateTimePicker.Date := Date;
FDateTimePicker.FirstDayOfWeek := TCalDayOfWeek.dowMonday;
FDateTimePicker.ShowWeekNumbers := True;
FDateTimePicker.TodayDefault := False;
FDateTimePicker.Show;
C++ :
TCustomDateTimePicker* FDateTimePicker;
//...
FDateTimePicker->Date = Date();
FDateTimePicker->FirstDayOfWeek = TCalDayOfWeek(0);
FDateTimePicker->ShowWeekNumbers = true;
FDateTimePicker->TodayDefault = false;
FDateTimePicker->Show();
-
- Pour plus d'exemples, voir le code de FMX.CalendarEdit.Style.TStyledCalendarEdit.DropDown et FMX.ListBox.TCustomComboBox.DropDown.
Ces sélecteurs fournissent le comportement spécifique à la plate-forme des éléments de contrôle correspondants. Par exemple, FMX.ListBox.TComboBox sous Windows 8 centre une liste déroulante sur l'élément sélectionné :
Pour implémenter une liste centrée de sélection de date pour une application Metropolis UI (Windows 8), procédez comme suit :
- Créez une Application FireMonkey Metropolis UI.
- Depuis la palette d'outils, ajoutez un TComboBox.
- Dans le Concepteur de fiches, sélectionnez votre TComboBox.
- Dans l'inspecteur d'objets, définissez la propriété FMX.ListBox.TComboBox.DropDownKind sur Native.
- Pour Windows 8, la propriété FMX.Styles.TStyleDescription doit indiquer la plate-forme [METROPOLISUI]. Pour garantir ce comportement :
- Dans le panneau Structure, double-cliquez sur l'élément StyleBook1 puis sélectionnez la propriété styleDescription.TStyleDescription.
- Dans l'inspecteur d'objets, la propriété PlatformTarget définit les plates-formes pour lesquelles ce style peut être implémenté. Vérifiez que PlatformTarget contient la plate-forme [METROPOLISUI].
- Si vous ne spécifiez pas la plate-forme [METROPOLISUI], le contrôle de sélection des données fonctionne comme une liste déroulante standard (Windows ou OS X) sans être centré sur l'élément sélectionné.
Voir aussi
- Services de plate-forme de FireMonkey
- Tutoriel mobile : Utilisation d'un composant Calendrier pour sélectionner une date (iOS et Android)
- Tutoriel mobile : Utilisation de composants Zone de liste déroulante pour sélectionner des éléments dans une liste (iOS et Android)
- Création d'une zone de liste déroulante Metropolis UI