La blockchain est-elle une technologie sans intérêt ?
Une étude stipule que ses cas d'utilisation ont un taux de réussite de 0 %

Le , par Coriolan

293PARTAGES

18  0 
Si vous suivez l’actualité tech, vous avez sûrement entendu parler de la blockchain, une technologie qui devrait façonner le monde de demain selon ses partisans. La blockchain est considérée par certains comme une révolution au même titre qu’internet, et elle est appelée à révolutionner plusieurs domaines allant de la cybersécurité à la finance.

La blockchain constitue-t-elle vraiment un véritable changement de paradigme ? C’est la question à laquelle a tenté de répondre une étude menée par trois chercheurs sur 43 solutions implémentées dans le domaine de développement international.


John Burg, un ancien adepte de la blockchain et membre de l’Agence des États-Unis pour le développement international (USAID), a entrepris avec deux autres professionnels du même domaine d’étudier des cas d’application du registre distribué lorsqu’il est utilisé par les ONG, entreprises et agences, mais ils n’ont trouvé aucune preuve de succès.

« Nous avons documenté 43 cas d’utilisation de la blockchain à travers des recherches sur internet, la plupart ont été décrits par des prétentions éclatantes comme ‘les coûts opérationnels...réduits à jusqu’à 90%,’ ou avec l’assurance de “capture et stockage sécurisé et soigneux de données.’ Nous avons constaté une prolifération de communiqués de presse, de livres blancs et des articles de persuasion. Cependant, nous n’avons trouvé aucune documentation ou preuve des résultats de la blockchain par rapport à ces prétentions. Nous n’avons pas aussi trouvé de leçons apprises ou un aperçu concret, comme c’est le cas pour les autres technologies en développement », a écrit le trio de chercheurs.

Les chercheurs ont tenté d’entrer en contact avec plusieurs firmes de blockchain, par email, par téléphone et en personne, mais sans succès.

« Personne n’a voulu partager des données sur les résultats de programme, de processus MERL [monitoring, evaluation, research, and learning] ou de gestion adaptative pour le potentiel de renforcement », a écrit l’équipe de recherche. « Malgré tout le battage médiatique autour de la blockchain et comment elle assure la transparence de processus et d’opérations dans les environnements de faible niveau de confiance, l’industrie elle-même est opaque. À partir de là, nous avons déterminé que le manque de preuves à l'appui des allégations de valeur de la blockchain dans l'espace du développement international est une lacune critique pour les adoptants potentiels. »

Burg a été jusqu’à récemment un fervent partisan de la blockchain comme il l’a expliqué dans ce billet de blog.

« La blockchain est comme un métier à tisser qui peut lier ensemble de multiples brins de choses séparées... dans un tissu intégré où vous pouvez voir ce que les données signifient et ajuster les ressources en réponse », explique-t-il il y a quelques mois.

La blockchain a été incroyablement mal présentée, en réalité elle recouvre une base de données qui englobe des problèmes de performance et de scalabilité, chose qui peut être dite pour toutes les bases de données. L’article nous apprend que la valeur à long terme et l’application de la blockchain sont minimales. Elle résout un nombre minime de problèmes. Pour la plupart des applications d’entreprise, la blockchain ne fait pas mieux qu’une base de données ou un programme de tableur. La blockchain peut être un outil ingénieux dans certaines circonstances, mais ce n’est pas la technologie révolutionnaire qu’on veut nous faire croire.

La blockchain est devenue un mot à la mode, un buzzword que tout le monde utilise pour faire vendre et engranger les profits tant que la bulle n’a pas encore explosé. Des entreprises proposent des services de consulting à des sommes importantes juste pour vous dire si la blockchain est adaptée pour vous ou non. HTC, le constructeur taïwanais qui peine à se redresser sur le marché, a lancé son premier smartphone doté de la technologie blockchain, une expérience smartphone adaptée à un utilisateur moderne et à la nouvelle ère d’internet, a informé l’entreprise.

En général, les autres mots à la mode ont porté sur des technologies qui avaient au moins un but pratique, pas seulement le potentiel de changer l’industrie avec pour seule preuve un statut en tant que mot à la mode. La blockchain s’est montrée incroyablement et de façon unique une technologie sans un réel intérêt à part peut être l’implémentation d’une cryptomonnaie.

Malgré cette réalité, certaines personnes continuent de défendre la blockchain, estimant que cette technologie s'est avérée extrêmement utile dans de nombreux secteurs d'activité tels que l'énergie, le négoce de titres, les échanges interbancaires et les devises. Ces partisans continuent de défendre qu’il existe encore des cas d’utilisation intéressants. Ils n’impliquent pas tous peut-être un besoin de décentralisation ou une blockchain publique, mais chaque cas bénéficie d'un sous-ensemble de la fonctionnalité.

Mais comme le prouve cette étude, avec un taux de réussite de 0 %, la blockchain continue d’être une simple tendance malgré l’énorme battage médiatique. Les vendeurs de ce rêve qu’est la blockchain ont été soucieux de vanter les mérites de cette technologie, mais ils sont incapables de présenter des preuves tangibles de succès sur le terrain. Il y a aussi la question s’il y a un besoin réel de blockchain dans tous les secteurs d’activité. En quoi peut-elle remplacer une base de données normale ? D’autant plus que ces avantages (très limités) ne justifient pas les coûts qui y sont associés.

Source : merltech

Et vous ?

Pensez-vous que la blockchain a une réelle valeur ajoutée ?
Si oui, quels sont les secteurs d'activité qui pourraient en tirer parti ?
Êtes-vous d'accord qu'il y a eu un battage médiatique de la blockchain ?

Voir aussi

L'énorme potentiel de la technologie de blockchain peine à séduire les entreprises car son adoption nécessite un changement structurel et culturel
La blockchain : une révolution technologique selon le Président chinois Xi Jinping, Pékin veut utiliser la technologie comme moteur de développement
Les dépenses mondiales autour de la blockchain pourraient atteindre les 11,7 milliards de dollars en 2022 d'après des projections d'IDC
Comment la blockchain pourrait-elle révolutionner les services publics ? Et si tout notre vécu était archivé dans la blockchain ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 02/12/2018 à 14:36
Sans intérêt non. Utilisé à toutes les sauces oui.

La blockchain, comme l'IA, a obtenu un statut étrange, elle est sorti de sa nature d'outil technique, parmi un choix variés d'outils, pour être un produit final en lui même. Au lieu d'avoir des applications basées sur l'outil blockchain, la blockchain est devenu le produit finale, et l'application reléguée au statut de simple outil pour mettre en place de la blockchain. Il y a eu un emballement, tant à la fois par les entreprises qui ont créé des applications pour montrer qu'ils étaient à la pointe de la technologie, et à la fois je pense des clients qui ont réclamés de la blockchain comme gage d’innovation. La blockchain a pris je ne sais trop comment ce symbole de pointe de la technologie, ne pas l'utiliser seront donc être en retard, dépassé.
5  0 
Avatar de Cassoulatine
Nouveau Candidat au Club https://www.developpez.com
Le 02/12/2018 à 17:25
"blockchain" est un concept créé pour bitcoin, pour faire une monnaie sans tiers de confiance. Quand on a un tiers de confiance (ie 99% des cas) la blockchain n'a effectivement aucun intérêt.
5  0 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 19/12/2018 à 13:34
Je me suis peut-être mal exprimé : il n'y a actuellement aucun projet/logiciel/truc qui utilise une blockchain et qui soit utilisé par le grand public.

Oui, il y a plusieurs projets accessibles à tout le monde.
Oui, certains ont de l'avenir.
Oui, il y a pleins de projets en cours qui pourraient avoir des applications prochainement [note : penser à définir prochainement]
Oui, cette technologie a un intérêt.
Oui, j'ai connaissance de projets blockchain, j'en ai utilisé. J'ai même un copain qui bosse dedans comme on dit dans ces cas là

Pour prendre une comparaison, aujourd'hui, le cloud (autre buzzword très à la mode fut un temps) est utilisé par le grand public sans le savoir. L'IOT aussi. Et pourtant le grand public ne s'en rend pas forcément compte.
À contrario, rien de tel pour la blockchain.
4  0 
Avatar de 23JFK
Membre expérimenté https://www.developpez.com
Le 03/12/2018 à 23:02
Citation Envoyé par onilink_ Voir le message

...

Pour la taille des blockchains je pensais naïvement que cela fonctionnait ainsi.
Mais en fait non.

Il y a deux types de nœuds:
- les full-nodes (ou masternodes) qui possèdent la version complète de la blockchain
- les lite clients qui ne possèdent qu'une partie de la blockchain

Et si je ne m'abuse, les utilisateurs de bitcoin sont majoritairement des lite clients, car en 2016 la blockchain bitcoin faisait déjà 100Go...
Je doute que quiconque qui a 300$ en bitcoin s'amuse a stocker intégralement la blockchain sur son disque dur.

...
Le client bitcoin original est un full-node avec le letmotiv "vous ne pouvez faire confiance à personne" qui fait partie intégrante que protocol blockchain.

Les lite clients s'en remettent nécessairement à des tiers de confiance pour ce qui concerne les parties de la blockchain qu'ils n'ont pas eux-mêmes vérifier et quand les tiers de confiance tendent à se regrouper puis se coopter, l'on en revient à un système centralisé.
3  0 
Avatar de onilink_
Membre expérimenté https://www.developpez.com
Le 04/12/2018 à 9:37
Citation Envoyé par 23JFK Voir le message
Le client bitcoin original est un full-node avec le letmotiv "vous ne pouvez faire confiance à personne" qui fait partie intégrante que protocol blockchain.

Les lite clients s'en remettent nécessairement à des tiers de confiance pour ce qui concerne les parties de la blockchain qu'ils n'ont pas eux-mêmes vérifier et quand les tiers de confiance tendent à se regrouper puis se coopter, l'on en revient à un système centralisé.
Oui enfin, vu le nombre d'utilisateurs, ou même de "groupes", on est très loin d'arriver à un système centralisé.

Mais il y a un moment ou il faut faire des choix, si tu veux une facilité d'accès et ne pas avoir a télécharger toute la DB... tu dois bien faire confiance a quelqu'un qui la possède.
Enfin bon, tout cela est voué a évoluer, il y a beaucoup de recherche autour de la blockchain, et bitcoin est primitif sur pas mal de points, étant donné qu'il était un peu le premier Proof of Concept.

Citation Envoyé par fodger Voir le message
Visiblement ce n'est pas de mon côté; c'est avant tout un terme marketing pour désigner une bd distribuée et on peut tout à fait corrompre la chaine bien qu'elle soit décentralisée, bitcoin en est un parfait exemple.

Les blockchain soulèvent plus de problèmes qu'ils n'apportent de solutions, et nécessitent toujours plus de stockage des volumes titanesques et des puissances de calcul plutôt élevées.
La blockchain est un outil adapté a des problèmes spécifiques. Oui, l'utiliser pour n'importe quoi apportera plus de problèmes que de solutions, mais si tu l'utilises correctement non, ça fonctionne très bien.
J'aimerais bien avoir ton exemple de corruption de la chaîne bitcoin, j'en ai jamais entendu parler et ça me semble très improbable.
Par contre il y a des forks, mais ça c’est encore autre chose.

Quand aux stockages volumineux et a la puissance de calcul j'ai déjà répondu plus haut. Encore une fois ce n'est pas parce que bitcoin est dans ce cas précis que c'est un problème inhérent à la technologie.
Le principe de base de la blockchain évolue, ce n'est pas une technologie statique.
3  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 02/12/2018 à 18:35
Citation Envoyé par Cassoulatine Voir le message
"blockchain" est un concept créé pour bitcoin, pour faire une monnaie sans tiers de confiance. Quand on a un tiers de confiance (ie 99% des cas) la blockchain n'a effectivement aucun intérêt.
Je ne partage pas cette vision. La blockchain peut être utilisée même lorsqu'il y a existence d'un tiers de confiance. Le tiers de confiance est ce qu'on avait de mieux jusque là mais il n'est pas infaillible, ce n'est pas la solution ultime. On l'a bien vu dans de nombreux cas où le tiers a trahi la confiance qu'on lui avait accordé, volontairement ou non (piratage, etc). La blockchain peut réduire ces risques, en se passant des défauts inhérents aux solutions se basant sur un tiers de confiance. La blockchain peut donc remplacer le tiers de confiance.

Cependant une blockchain nécessite une implémentation correcte, au risque de porter une confiance aveugle dans un nouveau système (car labellisé "blockchain" qui a gardé les défauts de l'ancien. Par exemple quand je vois une entreprise utiliser une blockchain privée je me pose la question de la distribution des noeuds de cette blockchain. Si au final il n'y a qu'un seul pauvre nœud tournant sur un serveur de l'entreprise cela perd toute son efficacité. Il faut que de nombreux noeuds tournent, sous différentes propriétés (car le même soucis se pose si tous les nœuds appartiennent à une même entité).

Néanmoins, l'utilisation d'une blockchain publique pose je pense des problèmes de souveraineté de son infrastructure. Utiliser une blockchain publique (Ethereum, ...) permet de profiter de la sécurité d'une chaine faisant déjà tourner de nombreux noeuds, mais soumet l'application l'utilisant à un risque complètement externe, la bonne santé de la dite blockchain. On a vu les soucis qui peuvent arriver (hack, fork, etc). Je serais intéressé d'avoir le retour de personnes ayant été confronté à ces interrogations.

Tout cela pour en revenir à la conclusion que c'est un outil intéressant, à utiliser avec parcimonie.
2  0 
Avatar de 23JFK
Membre expérimenté https://www.developpez.com
Le 02/12/2018 à 20:19
Pas viable, trop lent et trop consommateur d'espace de stockage, de temps de téléchargement et, in fine, d'électricité par individu. Devoir télécharger une blockchain entière de X Giga voire Téra octets (pour les derniers utilisateurs d'une blockchain qui se serait bien établie et devenue ainsi pérenne) pour seulement qu'un usager occasionnel puisse faire une vérification de validité est totalement absurde. L'on en revient alors au principe de centralisation, ce qui enlève 95% de l'intérêt du concept blockchain. A moins d'utiliser massivement une hypothétique technologie quantique qui n'existe pas encore, les blockchains ne sont intégrables que dans de petits projets à la viabilité très limitée dans le temps... Mais comme c'est un peu lourd à implémenter, les petits projets où une blockchain pourrait être viable ne peuvent pas vraiment y trouver leur compte en terme de coûts et de maintenance.
3  1 
Avatar de sergio_is_back
Membre émérite https://www.developpez.com
Le 03/12/2018 à 8:37
Il en est de la blockchain, comme l'IA d'ailleurs, il faut se méfier des effets de mode et de ceux qui vendent de l'intelligence qu'ils n'ont pas en stock...
2  0 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 03/12/2018 à 16:55
Citation Envoyé par Shepard Voir le message
D'après ma compréhension de ce qu'est une blockchain, je peux citer au moins un projet qui se base sur cette technologie et qui est un succès : Git ...
Euh, non, git n'est pas du tout basé sur la blockchain.

Il n'y a pas, en dehors des cryptomonaies, de projet blockchain connu. Il y a des tests, mais la plupart des projets en sont à ce stade pour le moment.
2  0 
Avatar de Ludwig1
Membre du Club https://www.developpez.com
Le 08/12/2018 à 20:06
Salut tout le monde,
Un de mes collègue avait fait un jour la remarque suivante:
" De toute ma carrière, je n'ai jamais changé mes méthodes pédagogiques sur la façon d'enseigner, j'ai
été à la mode 3 fois"

Un peu d'historique:
Il y a fort longtemps, avant que n'existe MS, Dos et Cie j'utilisais pour écrire mon codage, un éditeur de bloc.
Chaque bloc avait un numéro d'ordre. La taille d'un bloc était de 16 lignes de 80 caractères par ligne. Les numéros des blocs permettaient de faire oh surprise le chainage des blocs.
Il y a environs 30 ans en arrière, quand existait MSDOS et Cie et que 3.11 venait d'apparaitre, nous avions pour les besoins de l'enseignement ainsi que pour les besoins des Labos et en nous appuyant sur une machine virtuelle, mis au point au département de mécanique, un système de composants, que nous avons installé sur les serveurs de l'école. Ces composants étaient alors à la disposition des étudiants et leurs permettaient d'assembler une quelconque application laquelle tournait alors sur la machine virtuelle de base.
Les composants ressemblaient à ceci:



Ceci servait en tant qu'éditeur graphique, les composants de la bibliothèque étaient affichés dans les diapos, il suffisait de les tirer dans l'interface homme machine de la nouvelle application puis de lancer un compilateur spécialement conçu pour tricoter les liens et l'affaire était classé. Ensuite, à l'aide d'un éditeur particulier, on attachait les servants (Exécuteurs des tâches) aux différentes commandes de l'interface. Pour une application standard, ça prenait environ 1h de travail pour l'étudiant.

Un Autre Exemple:


Tous ces travaux ont eu lieu avant WIN95 et JAVA. Puis arriva WIN95, NT JAVA Etc... La maintenance sous
DOS devenant de plus en plus délicate, nous avons abandonné et nous sommes passé sur une machine virtuelle du commerce qui tourne sur tous les systèmes d'exploitation de MS ou LINUX ou APPLE Etc..

C'est en lisant des articles sur la chaine de bloc qu'il m'est venu l'idée de déterrer le vieux projet décrit ci-dessus (il n'est jamais sorti des labos de l'école) et de l'adapter au concept de bloc chain.
De tels blocs ressemblent à ceci:



Un bloc de base, c.a.d. le bloc zéro de la chaine de blocs, puis un bloc permettant l'affichage de graphes, puis encore un autre permettant de choisir une couleur. Il faut dire que les blocs sont indépendant de toute application, ils existent de façon autonome. Pour les faires fonctionner, il suffit de les "encliqueter" sur la machine virtuelle un peu comme l'installation d'un outil sur une broche d'un centre d'usinage.
Une nouvelle application consistera alors à choisir les blocs à disposition puis d'en faire le chainage.

Tous ceci pour dire que le principe de la bloc chain n'est pas forcement quelque chose de vraiment nouveau.
Il s'est juste rajouté l'encryptage ainsi que le chainage crypté qui interdit toute modification d'un bloc existant et validé.
En conclusion, au bout de 50 ans et n'ayant pas changé d'idée, je me retrouve à nouveau à la pointe de la technologie.
Pour ce qui est de l'IA dont tout le monde parle, je souhaite juste rappeler que McCarthy au MIT, dans les années 60 avait déjà apporté bien des solutions. Mais comme la majorité d'entre vous n'était pas nés, on sait pas.
Evidement les blocs décrit ci-dessus sont écrit avec SYNTAL, (SYNThetic machine and Algorithmic Langage)
et ils tournent sous EasyWindows
ça ressemble à ceci:
Code : Sélectionner tout
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
\ ############################################################################################################
\ ############											##############
\ ############			INFORMATIONS ET DESCRIPTION DU DIALOGUE 			##############
\ ############											##############
\ ############################################################################################################

&&   Nom du Bloc:     		ZoomCourbesRéduites(C8A41186F4)Dlg   Bloc de démonstration d'une application Easywindows 
&&   Date de création:     	01/08/2018
&&   Heure de création:    	16:12:07
&&   Copyright: (C)        	2001-2030 
&&   Bloc développé par: 	Louis Jean-Pierre SCHMITT
&&   Email:                	jean.pierre@buechi-schmitt.ch 

&&   Dialogue  ZoomCourbesRéduites(C8A41186F4)Dlg

&&   ZoomCourbesRéduites(C8A41186F4)Dlg.FTH is a computer Dialog component developed
&&   by I.C.M. it is based of Microsoft Windows and Easywindows Systems
&&   This component is for free use and made available to users by I.C.M.
&&   I.C.M. Assumes no responsibility 
&&   for the implementation and use of this computer component.


\ ############################################################################################################
\ ############											##############
\ ############			INSTALLATION DE LA CONFIGURATION DES DONNEES 			##############
\ ############											##############
\ ############################################################################################################

\ ==========   Installation des données ================


16 CreateNewliste ZoomCourbesRéduites(C8A41186F4)Lst	\ Liste contenant les objets avec leurs valeurs attachées. Ces Valeurs sont mises en place par SendTo
							\ EXEMPLE: ( #ComboBox1.Value  :Id.Value SourceFile \DeGiroTmpFile\FileDates.FTH :M0 X... :MX; )SendTo
							\ Construira la séquence suivante dans ZoomCourbesRéduites(C8A41186F4)Lst
							\ #ComboBox1						Entête de Liste, Nom de l'objet précédé par #
							\ :Id.Value SourceFile \DeGiroTmpFile\FileDates.FTH	Source des données 
							\ :M0 X...						Liste des données
							\ :M.  ...
							\ :MX; 							Fermeture de la liste par le marqueur :MX;


' ZoomCourbesRéduites(C8A41186F4)Lst IS ObjetListe	\ On conecte le nom de la liste sur le mot ObjetListe. De ce fait, toutes les procédures
							\ de transmission du courrier INTRABLOC relative à un bloc donné utiliserons le mot ObjetList pour
							\ dialoguer avec un autre objet de la liste. 
							\ En clair, ObjetList est le nom de la boite au lettre interne qui permet le dialogue entre les objets d'un même
							\ Bloc.   





: ZoomCourbesRéduites.Datas		S( --- ) \ Installation des éléments

  HWNB >R
 
 ( #QUADRANT1.Datas :Id.Quadrant1   20   30 1260 880 ConfigToolTrading(C8A41186F4)Dlg :M0 Color.Back 125 )SendTo
 ( #Quadrant1.Datas :M1 Color.Axe 13 :M2 LineWidth.Axe 2 :M3 Offset.AxeX 70 :M4 Offset.AxeY 40 )SendTo
 ( #Quadrant1.Datas :M5 GrandeurY$ [F(y)+%] [F(y)-%] :M6 GrandeurX$ [t(h)] :M7 UniteY$ % :M8 UniteX$ h )SendTo
 ( #Quadrant1.Datas :M9 Datas$ Tas :M10 UserFont 12 )SendTo
 ( #Quadrant1.Datas :M11 Scalle0.AxeY 0 :M12 FullScalle.AxeY 5 :M13 Scalle0.AxeX 9 :M14 FullScalle.AxeX 18 )SendTo 
 ( #Quadrant1.Datas :M15 SubDiv.AxeY 5 :M16 SubDiv.AxeX 4 )SendTo  
 ( #Quadrant1.Datas :M17 EW_GRID Color.Grid 124 LineWidth 1 )SendTo
 ( #Quadrant1.Datas :M18 EW_TEXT 0 1  Courbes Réduites exprimées en %  Valeur$  CodeIsin$ )SendTO 
 ( #Quadrant1.Datas :M19 Div.AxeY 5 :M20 Div.AxeX 9  )SendTo



 ( #Quadrant1.Datas :MX; )SendTo
 
 ( #Quadrant1.Value :Id.Value  :M0 Color.Back 96 :M1 Color.Curves 24 :M2 Color.Triger 20 )SendTo
 ( #Quadrant1.Value :M3 Color.Axe 13 :M4 Color.Grid 124 :M5 Resolution.AxeX 0 :M6 Resolution.Axey 0 :MX;  )SendTo
 


 ( #Keys1.Datas     :Id.Keys1 1320  760   20  20 ChoixCouleur(C8A41186F4)Dlg  :M0 Color.Back 96 :MX;  )SendTo
 ( #Keys2.Datas     :Id.Keys2 1320  785   20  20 ChoixCouleur(C8A41186F4)Dlg  :M0 Color.Triger 20 :MX;  )SendTo
 ( #Keys3.Datas     :Id.Keys3 1320  810   20  20 ChoixCouleur(C8A41186F4)Dlg  :M0 Color.Graphe 24 :MX;  )SendTo
 ( #Keys4.Datas	    :Id.Keys4 1320  835   20  20 ChoixCouleur(C8A41186F4)Dlg  :M0 Color.Axe 13 :MX;  )SendTo
 ( #Keys5.Datas	    :Id.Keys5 1320  860   20  20 ChoixCouleur(C8A41186F4)Dlg  :M0 Color.Grid 124 :MX;  )SendTo



 ( #Keys1.Datas     :IdTxt.Keys1  :M0 Couleur Fond  :MX; )SendTo
 ( #Keys2.Datas     :IdTxt.Keys2  :M0 Couleur Trigger :MX; )SendTo
 ( #Keys3.Datas     :IdTxt.Keys3  :M0 Couleur Graphe  :MX; )SendTo
 ( #Keys4.Datas     :IdTxt.Keys4  :M0 Couleur Axes :MX; )SendTo
 ( #Keys5.Datas     :IdTxt.Keys5  :M0 Couleur Grille  :MX; )SendTo



 ( #Keys1.Value     :Id.Value :M0 Color.Back  96 :MX; )SendTo
 ( #Keys2.Value     :Id.Value :M0 Color.Triger 20 :MX; )SendTo
 ( #Keys3.Value     :Id.Value :M0 Color.Curves 24  :MX; )SendTo
 ( #Keys4.Value     :Id.Value :M0 Color.Axe 13 :MX; )SendTo
 ( #Keys5.Value     :Id.Value :M0 Color.Grid 124  :MX; )SendTo




( #ComboBoxGroup0.Value :Id.Value :MX; )SendTo
( #ComboBox1.File   :Id.Combobox1  880 20 120 70 NOOP  \DeGiroTmpFile\FileDates.FTH :MX; )SendTo
( #ComboBox1.Value  :Id.Value SourceFile \DeGiroTmpFile\FileDates.FTH :M0 X... :MX; )SendTo


( #ComboBox2.Datas  :Id.Combobox2 880  70 120 70 NOOP )SendTo
( #ComboBox2.Datas  :M0 +/- 0.4% :M1 +/- 0.45% :M2 +/- 0.50% :M3 +/- 0.55% :M4 +/- 0.60% :M5 +/- 0.65% )SendTo
( #ComboBox2.Datas  :M6 +/- 0.70%  :M7 +/- 0.75%  :M8 +/- 0.80% :M9 +/- .85%  :M10 +/- .90% :MX; )SendTo

( #ComboBox3.Datas  :Id.Combobox3 880 120 120 70 NOOP )SendTo
( #ComboBox3.Datas  :M0 +/- 0.70% :M1 +/- 0.75% :M2 +/- 0.80% :M3 +/- 0.85% :M4 +/- 0.90% :M5 +/- 0.95% )SendTo
( #ComboBox3.Datas  :M6 +/- 1.00% :M7 +/- 1.05% :M8 +/- 1.10% :M9 +/- 1.15%  )SendTo
( #ComboBox3.Datas  :M10 +/- 1.20% :M11 +/- 1.25% :M12 +/- 1.30%  :M13 +/- 1.35% )SendTo
( #Combobox3.Datas  :M14 +/- 1.40% :M15 +/- 1.45% :M16 +/- 1.50% :MX; )SendTo

( #ComboBox4.Datas  :Id.Combobox4 880 170 120 70 NOOP :M0 +/- 1.00% :M1 +/- 1.10% :M2 +/- 1.20% :M3 +/- 1.30% )SendTo
( #ComboBox4.Datas  :M4 +/- 1.40% :M5 +/- 1.50% :M6 +/- 1.60% :M7 +/- 1.70% :M8 +/- 1.80% :M9 +/- 1.90% :M10 +/- 2.00% )SendTo
( #ComboBox4.Datas  :M11 +/- 2.10% :M12 +/- 2.20% :M13 +/- 2.30% :M14 +/- 2.40% :M15 +/- 2.50% :M16 +/- 2.60% )SendTo
( #ComboBox4.Datas  :M17 +/- 2.70%  :M18 +/- 2.80% :M19 +/- 2.90% :MX; )SendTo

( #ComboBox5.Datas  :Id.Combobox5 880 220 120 70 NOOP :M0 +/- 2.60% :M1 +/- 2.70% :M2 +/- 2.80% :M3 +/- 2.90% )SendTo
( #ComboBox5.Datas  :M4 +/- 3.00% :M5 +/- 3.10% :M6 +/- 3.20% )SendTo
( #ComboBox5.Datas  :M7 +/- 3.30% :M8 +/- 3.40% :M9 +/- 3.50% :M10 +/- 3.60% :M11 +/- 3.70% :M12 +/- 3.80% )SendTo
( #ComboBox5.Datas  :M13 +/- 3.90% :M14 +/- 4.00%   :MX; )SendTo


( #ComboBox6.Datas  :Id.Combobox6 880 270 120 70 NOOP :M0 +/- 3.00% :M1 +/- 3.50% :M2 +/- 4.00% )SendTo
( #ComboBox6.Datas  :M3 +/- 4.500% :M4 +/- 5.00% :MX; )SendTo



( #ComboBox7.Datas  :Id.Combobox7  1030 20 120  70 NOOP :M0 Val 500000.00 :M1 Val 750000.00 :M2 Val 1000000.00 )SendTo
( #ComboBox7.Datas  :M3 Val 1250000.00 :M4 Val 15000000.00 :MX; )SendTo
( #ComboBox8.Datas  :Id.Combobox8  1030 70 120  70 NOOP :M0 Val 100000 :M1 Val 250000 :M2 Val 500000 )SendTo
( #ComboBox8.Datas  :M3 Val 750000 :M4 Val  1000000  :M5 Val 1500000 :M6 Val 1750000 :M7 Val 2000000 :MX; )SendTo




( #ComboBoxGroup1.Value :Id.Value  :MX; )SendTo

( #ComboBox2.Value  :Id.Value Bande.Neutre  :M0 +/- 0.4% :M1 Coef.Plus 0.0 :M2 Coef.Moins 0.0 :MX; )SendTo
( #ComboBox3.Value  :Id.Value Bande.Surveillance :M0 +/- 0.70%  :M1 Coef.Plus 0.0 :M2 Coef.Moins 0.0 :MX; )SendTo
( #ComboBox4.Value  :Id.Value Bande.Vente_Achat :M0 +/- 1.00%   :M1 Coef.Plus 0.0 :M2 Coef.Moins 0.0 :MX; )SendTo
( #ComboBox5.Value  :Id.Value Bande.Pump.and.Pump :M0 +/- 2.60% :M1 Coef.Plus 0.0 :M2 Coef.Moins 0.0 :MX; )SendTo
( #ComboBox6.Value  :Id.Value Bande.Oscilateur :M0 +/- 3.00% :M1 Coef.Plus 0.0 :M2 Coef.Moins 0.0 :MX; )SendTo

( #ComboBoxGroup2.Value :Id.Value  :MX; )SendTo

( #ComboBox7.Value  :Id.Value Volatilité.Capital :M0 500000.00   :MX; )SendTo
( #ComboBox8.Value  :Id.Value Volatilité.Volume  :M0 100000 :MX; )SendTo




( #LeditText1.Datas  Fichier contenant la liste des dates )SendTo

( #ComboBox1.Datas   :IdTxt.ComboBox1 :M0  Sélectionner une Date :MX; )SendTo
( #ComboBox2.Datas   :IdTxt.ComboBox2 :M0  Sélectionner la Bande Neutre :MX; )SendTo
( #ComboBox3.Datas   :IdTxt.ComboBox3 :M0  Sélectionner la Bande de surveillance :MX; )SendTo
( #ComboBox4.Datas   :IdTxt.ComboBox4 :M0  Sélectionner la Bande Vente Achat :MX; )SendTo
( #ComboBox5.Datas   :IdTxt.ComboBox5 :M0  Sélectionner la Bande Pump and Pump :MX; )SendTo
( #ComboBox6.Datas   :IdTxt.ComboBox6 :M0  Sélectionner la Bande de l'Oscilateur :MX; )SendTo
( #ComboBox7.Datas   :IdTxt.ComboBox7 :M0  Sélectionner la Volatilité Capital :MX; )SendTo
( #ComboBox8.Datas   :IdTxt.ComboBox8 :M0  Sélectionner la Volatilité Volume :MX; )SendTo


( #RadioBoxGroup0.Datas :Id.RadioGroup0 880 320 150   115 NOOP :M0  :MX; )SendTo
( #RadioBoxGroup0.Value :Id.Value  :MX; )SendTo
( #RadioBox1.Datas  :Id.RadioBox1 890 335   15   15 NOOP :M0 0 :M1 1 :M2 Bande.Neutre$ ON :MX; )SendTo
( #RadioBox2.Datas  :Id.RadioBox2 890 350   15   15 NOOP :M0 0 :M1 1 :M2 Bande.Surveillance$ ON :MX; )SendTo
( #RadioBox3.Datas  :Id.RadioBox3 890 365   15   15 NOOP :M0 0 :M1 1 :M2 Bande.Vente.Achat$ ON :MX; )SendTo
( #RadioBox4.Datas  :Id.RadioBox4 890 380   15   15 NOOP :M0 0 :M1 1 :M2 Bande.Pump.and.Pump$ ON :MX; )SendTo
( #RadioBox5.Datas  :Id.RadioBox5 890 335   15   15 NOOP :M0 0 :M1 1 :M2 Bande.Oscilateur ON :MX; )SendTo


( #RadioBox1.Datas   :IdTxt.RadioBox1 :M0  Bande Neutre :MX; )SendTo
( #RadioBox2.Datas   :IdTxt.RadioBox2 :M0  Bande de Surveillance :MX; )SendTo
( #RadioBox3.Datas   :IdTxt.RadioBox3 :M0  Bande Vente Achat :MX; )SendTo
( #RadioBox4.Datas   :IdTxt.RadioBox4 :M0  Bande Pump and Pump :MX; )SendTo
( #RadioBox5.Datas   :IdTxt.RadioBox5 :M0  Bande Oscilateur :MX; )SendTo
( #Titre1.Datas      :IdTxt.ComboBox1 :M0  Configuration  du  Module  de  Trading :MX; )SendTo
( #GroupBox0.Datas   :IdTxt.GroupBox0 :M0  Sélectionner le mode d' Analyse :MX; )SendTo




 R> TO HWNB


;


\ ############################################################################################################
\ ############											##############
\ ############			       INSTALLATION DES IDENTIFICATEURS 		      	##############
\ ############											##############
\ ############################################################################################################

\ ==========   Installation des identificateurs  ================

200 IDENT Id.Quadrant1 
    IDENT Id.DlgQuit
    IDENT Id.Cancel
    IDENT Id.Apply
    IDENT Id.KeyBoard1
    IDENT Id.LbuttonDown

    IDENT IdTxt.ComboBox1 
    IDENT Id.ComboBox1

    IDENT IdTxt.ComboBox2 
    IDENT Id.Combobox2

    IDENT IdTxt.ComboBox3 
    IDENT Id.Combobox3

    IDENT IdTxt.ComboBox4 
    IDENT Id.Combobox4

    IDENT IdTxt.ComboBox5 
    IDENT Id.Combobox5

    IDENT IdTxt.ComboBox6 
    IDENT Id.Combobox6

    IDENT IdTxt.ComboBox7 
    IDENT Id.ComboBox7

    IDENT IdTxt.ComboBox8 
    IDENT Id.ComboBox8



    IDENT IdTxt.EditText1
    IDENT IdTxt.LeditText1

    IDENT IdTxt.GroupBox0   
    IDENT IdTxt.RadioBox1   
    IDENT IdTxt.RadioBox2   
    IDENT IdTxt.RadioBox3 
    IDENT IdTxt.RadioBox4 
    IDENT IdTxt.RadioBox5  

    IDENT Id.RadioBox1   
    IDENT Id.RadioBox2   
    IDENT Id.RadioBox3 
    IDENT Id.RadioBox4 
    IDENT Id.RadioBox5  


    IDENT Id.Keys1
    IDENT Id.Keys2
    IDENT Id.Keys3
    IDENT Id.Keys4
    IDENT Id.Keys5

    IDENT IdTxt.Keys1
    IDENT IdTxt.Keys2
    IDENT IdTxt.Keys3
    IDENT IdTxt.Keys4
    IDENT IdTxt.Keys5


DROP	


\ ############################################################################################################
\ ############											##############
\ ############			     INSTALLATION DU DIALOGUE HOMME MACHINE 		      	##############
\ ############											##############
\ ############################################################################################################

\ ==========   Installation du dialogue  ================



DIALOGS ZoomCourbesRéduites.Dialog

 [MODELESS " I. C. M.  International  Cloud  Machine          BLOCNAME   ZoomCourbesRéduites(C8A41186F4)Dlg  " 100 0 1180 580 (FONT 8, MS Sans Serif) ]

 [DEFPUSHBUTTON  " OK"         Id.DlgQuit      1010  560   40   15 ]
 [PUSHBUTTON     " Cancel"     Id.Cancel       	960  560   40   15 ]
 [PUSHBUTTON     " Apply"      Id.Apply	        910  560   40   15 ]
 [COMPONENT      " Quadrant"   Id.Quadrant1      20   30 1260  880  (+STYLES EW_QUAD_SIX EW_SCL_SIX EW_GRID_SIX EW_TRIG_SIX ) ] 

 [COMPONENT      " Keys"       Id.Keys1        1320  760   20  	20  (+STYLES  EW_RECT  ) ]
 [COMPONENT      " Keys"       Id.Keys2        1320  785   20  	20  (+STYLES  EW_RECT  ) ]
 [COMPONENT      " Keys"       Id.Keys3        1320  810   20  	20  (+STYLES  EW_RECT  ) ]
 [COMPONENT      " Keys"       Id.Keys4        1320  835   20  	20  (+STYLES  EW_RECT  ) ]
 [COMPONENT      " Keys"       Id.Keys5        1320  860   20  	20  (+STYLES  EW_RECT  ) ]


 [LTEXT 	 	       IdTxt.Keys1      900  470   80   10 ]
 [LTEXT 	  	       IdTxt.Keys2      900  485   80   10 ]
 [LTEXT 	 	       IdTxt.Keys3	900  500   80   10 ]
 [LTEXT 	  	       IdTxt.Keys4      900  515   80   10 ]
 [LTEXT 	 	       IdTxt.Keys5      900  530   80   10 ]


 [LTEXT 		       IdTxt.ComboBox1       	 880  8 130    10 ]
 [COMBOBOX                     Id.ComboBox1   		 880 20 120    70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox2      	 880 60 130    10 ]
 [COMBOBOX                     Id.ComboBox2   		 880 70 120    70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox3      	 880 110 130    10 ]
 [COMBOBOX                     Id.ComboBox3    	 	 880 120 120    70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox4       	 880 160 130   10 ]
 [COMBOBOX                     Id.ComboBox4    	         880 170 120   70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox5       	 880 210 130   10 ]
 [COMBOBOX                     Id.ComboBox5    	 	 880 220 120   70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox6       	 880 260 130   10 ]
 [COMBOBOX                     Id.ComboBox6    	 	 880 270 120   70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox7       	 1030  8 130    10 ]
 [COMBOBOX                     Id.ComboBox7   		 1030 20 120    70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]

 [LTEXT 		       IdTxt.ComboBox8      	 1030 60 130    10 ]
 [COMBOBOX                     Id.ComboBox8   		 1030 70 120    70 (+STYLE CBS_DROPDOWN WS_VSCROLL CBS_AUTOHSCROLL) ]



 [GROUPBOX  "                "  IdTxt.GroupBox0 	 880 320 150   115 ]
 [AUTORADIOBUTTON    		Id.RadioBox1             890 335   15   15 ]
 [AUTORADIOBUTTON   		Id.RadioBox2     	 890 350   15   15 ]
 [AUTORADIOBUTTON   		Id.RadioBox3     	 890 365   15   15 ]
 [AUTORADIOBUTTON  		Id.RadioBox4     	 890 380   15   15 ]
 [AUTORADIOBUTTON   		Id.RadioBox5     	 890 395   15   15 ]	\ SurveillanceBande
 [LTEXT 	                IdTxt.RadioBox1          910 335   90   15 ]
 [LTEXT 	                IdTxt.RadioBox2          910 350   90   15 ]
 [LTEXT 	                IdTxt.RadioBox3          910 365   90   15 ]
 [LTEXT 	                IdTxt.RadioBox4          910 380   90   15 ]
 [LTEXT 	                IdTxt.RadioBox5          910 395   90   15 ]


END-DIALOGS


: ZoomCourbesRéduites.Paint 		S( --- )



   Id.Quadrant1    Quadrant.Paint


   Id.Combobox1    ComboBox.Paint
   Id.Combobox2    ComboBox.Paint
   Id.Combobox3    ComboBox.Paint
   Id.Combobox4    ComboBox.Paint	               
   Id.Combobox5    ComboBox.Paint	               
   Id.Combobox6    ComboBox.Paint
   Id.Combobox7    ComboBox.Paint	               
   Id.Combobox8    ComboBox.Paint
	               
   Id.Keys1 	   Keys.Paint
   Id.Keys2 	   Keys.Paint
   Id.Keys3 	   Keys.Paint
   Id.Keys4 	   Keys.Paint
   Id.Keys5 	   Keys.Paint


;



: ZoomCourbesRéduites.Init			S( --- )



  
  IdTxt.ComboBox1  	   	Texte.Paint 
  IdTxt.ComboBox2   	   	Texte.Paint
  IdTxt.ComboBox3  	   	Texte.Paint 
  IdTxt.ComboBox4  	   	Texte.Paint
  IdTxt.ComboBox5  	   	Texte.Paint
  IdTxt.ComboBox6  	   	Texte.Paint
  IdTxt.Combobox7    		Texte.Paint	               
  IdTxt.Combobox8    		Texte.Paint
  

  IdTxt.LeditText1            	Texte.Paint
  IdTxt.GroupBox0     	  	Texte.Paint
  IdTxt.RadioBox1 		Texte.Paint
  IdTxt.RadioBox2 		Texte.Paint
  IdTxt.RadioBox3 		Texte.Paint
  IdTxt.RadioBox4 		Texte.Paint
  IdTxt.RadioBox5 		Texte.Paint

   IdTxt.Keys1     	        Texte.Paint 
   IdTxt.Keys2     	        Texte.Paint 
   IdTxt.Keys3    	        Texte.Paint 
   IdTxt.Keys4     	        Texte.Paint 
   IdTxt.Keys5    	        Texte.Paint 
;

: ZoomCourbesRéduites.Repaint		S( --- ) \ remet un composant en peinture

  ZoomCourbesRéduites.Paint


 
\  Id.Quadrant1   HWND       Quadrant.Repaint


;

  
\ Schliessen des Fenster

:  Applic.Quit			S( --- )
 
  
  HWND 0 EndDialog 
  HWND Application.Quit
  HWND SubKey.DestroyEX


  
;

: ZoomCourbesRéduites.Quit 			S( -- res)

  Applic.Quit

 ;


: ZoomCourbesRéduites.Cancel

   Applic.Quit

;


: ZoomCourbesRéduites.Apply

\  Config.Apply

;



: #Message1	S( --- ) \ Liste des requêtes

  ( #Quadrant1.Request :Id.Request :M0 Color.Back Valeur.Changer :M1 Color.Back Valeur.Retourner :MX; )Msg.SendTo 
  ( #Quadrant1.Value :Id.Value   :M0 Color.Back  96 :MX; )Msg.SendTo 

;

: #Message2	S( --- ) \ Liste des requêtes

  ( #Quadrant1.Request :Id.Request :M0 Color.Curves Valeur.Changer :M1 Color.Curves Valeur.Retourner :MX; )Msg.SendTo 
  ( #Quadrant1.Value :Id.Value :M1 Color.Curves 24  :MX;   )Msg.SendTo 

;


: #Message3		S( --- ) \ Liste des requêtes

  ( #Quadrant1.Request :Id.Request :M0 Color.Triger Valeur.Changer :M1 Color.Triger Valeur.Retourner :MX; )Msg.SendTo 
  ( #Quadrant1.Value :Id.Value  :M2 Color.Triger 20   :MX; )Msg.SendTo 

;

: #Message4		S( --- ) \ Liste des requêtes

   ( #Quadrant1.Request :Id.Request :M0 Color.Axe Valeur.Changer :M1 Color.Axe Valeur.Retourner :MX; )Msg.SendTo 
   ( #Quadrant1.Value :Id.Value  :M3 Color.Axe 13   :MX; )Msg.SendTo 

;

: #Message5		S( --- ) \ Liste des requêtes

  ( #Quadrant1.Request :Id.Request :M0 Color.Grid Valeur.Changer :M1 Color.Grid Valeur.Retourner :MX; )Msg.SendTo 
  ( #Quadrant1.Value :Id.Value  :M4 Color.Grid 124   :MX; )Msg.SendTo 

;



: ZoomCourbesRéduites.Commands 			S( Id --  )

    CASE
     Id.DlgQuit 	OF ZoomCourbesRéduites.Quit		ENDOF
     Id.Cancel  	OF ZoomCourbesRéduites.Cancel	  	ENDOF
     Id.Apply		OF ZoomCourbesRéduites.Apply	  	ENDOF	  

     Id.Quadrant1 	OF ( :M0 Color.Back #NewValue Change )Request.SendTo  ENDOF
     Id.Keys1		OF ['] #Message1 INHERIT-REQUEST Request.SendTo  ENDOF
     Id.Keys2		OF ['] #Message2 INHERIT-REQUEST Request.SendTo  ENDOF
     Id.Keys3		OF ['] #Message3 INHERIT-REQUEST Request.SendTo  ENDOF
     Id.Keys4		OF ['] #Message4 INHERIT-REQUEST Request.SendTo  ENDOF
     Id.Keys5		OF ['] #Message5 INHERIT-REQUEST Request.SendTo  ENDOF
   


     Id.Combobox1    	OF ( #ComboBoxGroup0 #Combobox1 )Objet.SendTo ENDOF
     Id.Combobox2    	OF ( #ComboBoxGroup1 #Combobox2 )Objet.SendTo ENDOF
     Id.Combobox3    	OF ( #ComboBoxGroup1 #Combobox3 )Objet.SendTo ENDOF
     Id.Combobox4    	OF ( #ComboboxGroup1 #Combobox4 )Objet.SendTo ENDOF               
     Id.Combobox5    	OF ( #ComboboxGroup1 #Combobox5 )Objet.SendTo ENDOF              
     Id.Combobox6    	OF ( #ComboboxGroup1 #Combobox6 )Objet.SendTo ENDOF
     Id.Combobox7    	OF ( #ComboboxGroup2 #Combobox7 )Objet.SendTo ENDOF              
     Id.Combobox8    	OF ( #ComboboxGroup2 #Combobox8 )Objet.SendTo ENDOF

     Id.RadioBox1   	OF ( #RadioBoxGroup0 #Combobox2 )Objet.SendTo ENDOF
     Id.RadioBox2   	OF ( #RadioBoxGroup0 #Combobox3 )Objet.SendTo ENDOF
     Id.RadioBox3 	OF ( #RadioBoxGroup0 #Combobox4 )Objet.SendTo ENDOF
     Id.RadioBox4 	OF ( #RadioBoxGroup0 #Combobox5 )Objet.SendTo ENDOF
     Id.RadioBox5 	OF ( #RadioBoxGroup0 #Combobox6 )Objet.SendTo ENDOF  
     
    ENDCASE

  
;



: ZoomCourbesRéduites.MESSAGES  		S( WM_PARAM --- res)
 
 CASE
  
  WM_ACTIVATE    	OF LPARAM LOWORD WPARAM LOWORD  WA_CLICKACTIVE = IF HWND EWfocus.Change THEN 
		           HWND InitDialogDlgParam  ZoomCourbesRéduites.Init   			ENDOF
  WM_CLOSE      	OF ZoomCourbesRéduites.Quit 		                		ENDOF
  WM_COMMAND    	OF WPARAM LOWORD ZoomCourbesRéduites.Commands  				ENDOF
  WM_INITDIALOG  	OF ZoomCourbesRéduites.Init  						ENDOF
  WM_PAINT       	OF ZoomCourbesRéduites.Paint 						ENDOF		\ Call App-Paint
  WM_LBUTTONDOWN        OF Bouton.Flag @ NOT IF EWPARAM ZoomCourbesRéduites.Commands Bouton.Flag ON THEN ENDOF 
  WM_LBUTTONUP          OF Bouton.Flag OFF		               				ENDOF 				
  WM_TIMER              OF HWND ZoomCourbesRéduites.Repaint         		       		ENDOF   
  ZERO 
ENDCASE

;




\ Callback definition

:NONAME S( -- res)

  INHERIT-SEARCHORDER 
  INHERIT-FLOAT
  INHERIT-DIALOG 
  ['] ZoomCourbesRéduites(C8A41186F4)Lst
  INHERIT-OBJETLIST
  MSG LOWORD 
  ZoomCourbesRéduites.MESSAGES  ;

4 CB: ZoomCourbesRéduites.Run

\ Startwort




: ZoomCourbesRéduites(C8A41186F4)Dlg		S( --- ) \ Fonction principale d'entrée dans le bloc ZoomCourbesRéduites(C8A41186F4)Dlg
 

  ConfigDialogIndirectParam
  ConfigDialogCfgParam
  ZoomCourbesRéduites.Datas


  ZoomCourbesRéduites.Dialog CELL- OFF
  ZoomCourbesRéduites.Dialog CELL- @ ?EXIT
  HINST ZoomCourbesRéduites.Dialog 
  HWND  ZoomCourbesRéduites.Run  
  0 CreateDialogIndirectParam
  ZoomCourbesRéduites.Dialog CELL- ! 
  ConfigDialogHandel

;



Gild


' ZoomCourbesRéduites(C8A41186F4)Dlg Last_Cmd !



\\
Comme on peut le constater la génération automatique de code devient grandement facilité.

Cordialement
Ludwig
2  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web