Bonjour,
Las de me battre avec le compilateur qui me dit "Use FMX.DialogService methods" et donc MessageDialogSync ou MessageDialogAsync, j'ai décidé de pondre un petit template qui va écrire le plus gros à ma place
Qu'en pensez-vous ? Y aurait-il des améliorations à y faire ?
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <?xml version="1.0" encoding="utf-8" ?> <codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates" version="1.0.0"> <template name="msgdual" invoke="manual"> <description> MessageDialog </description> <author> Serge Girard </author> <point name="MsgServiceASync"> <text> Service </text> <hint> Service Dialogue ASynchrone (Android) </hint> </point> <point name="MsgServiceSync"> <text> Service </text> <hint> Service Dialogue Synchrone (non Android) </hint> </point> <point name="MsgText"> <text> Text </text> <hint> Texte du message </hint> </point> <point name="Msgtype"> <text> type </text> <hint> Type de message mtWarning, mtInfo, mtError </hint> </point> <code language="Delphi" delimiter="|"><![CDATA[{$IFDEF ANDROID} |MsgServiceASync|.MessageDialogAsync('|MsgText|', TMsgDlgType.|MsgType|, [TMsgDlgBtn.mbOk], TMsgDlgBtn.mbOk, 0); {$ELSE} |MsgServiceSync|.MessageDialogSync('|MsgText|', TMsgDlgType.|MsgType|, [TMsgDlgBtn.mbOk], TMsgDlgBtn.mbOk, 0); {$ENDIF}]]> </code> </template> </codetemplate>
Bien sûr j'ai également écrit deux templates plus succincts pour n'avoir que les messages asynchrones ou synchrones en réduisant ce même XML en fonction.
Questions subsidiaires, plus "langage" :
- A votre avis quel est le mieux obtenir une variable pointant sur le service dans un DataModule ou dans une forme toujours utilisée (forme principale)?
- Y aurait-il un moyen de n'avoir qu'une seule variable de type IFMXDialogService qui ferait office aussi bien pour le synchrone que pour l'asynchrone ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 use ..., FMX.PlatForm; public MessageService : IFMXDialogServiceSync; ... TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceSync,MessageService);
Partager