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

Code : 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
59
 
<?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>
Qu'en pensez-vous ? Y aurait-il des améliorations à y faire ?
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)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
use ..., FMX.PlatForm;
public 
  MessageService : IFMXDialogServiceSync;
...
TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceSync,MessageService);
- 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 ?