Rechercher - Liste des utilisateurs
Version complète : Débutants
Accueil » FunDelphi » Débutants
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
DerF_44
La petite colle du samedi soir :

Est-il possible (et si oui comment !!) de mixer les deux types de messages Format et Selection !??
Afin d'obtenir un truc dans le genre :

Player.ShowSelectionMsg(Format(
'Veux-tu acheter une notice FunDelphi de 800 pages pour %d €uros ?',['Oui', 'Non'],[NoticePrice]));
sjrd
Oui. Format est une fonction qui rend le texte final. Le texte final peut être mis comme premier paramètre à ShowSelectionMsg :
Player.ShowSelectionMsg(
Format(
'Veux-tu acheter une notice FunDelphi de 800 pages pour %d €uros ?',
[NoticePrice]),
['Oui', 'Non']);
DerF_44
Extra !!.
Merci bien !
DerF_44
J'ai deux questions saugrenues !!

La première, toute bête :
La ligne verticale à ne pas dépasser, dans l'éditeur de texte .fnd, n'a qu'une fonction esthétique, de lisibilité,
ou bien son non-respect peut nuire au bon déroulement du code ?..

La deuxième, vachement plus torride :
En partant du “principe”, de la “méthode”, de ce code :

ShowPermanentMessage(Player, 'Vive FunLabyrinthe !');
Master.Timers.ScheduleNotificationMsg(3000, Player, msgHidePermanentMessage);
N'y aurait-il pas un moyen, “relativement” simple, en se servant de Master.Timers,
d'adapter la chose pour un terrain, un effet, un obstacle ou un outil ????!!!!!!!!!!!
Poser un field particulier pendant un certain laps de temps (sans que le joueur soit immobilisé !)
me semble fascinant, et, il y a quelques temps, j'y était parvenu avec un chrono, mais je trouve l'utilisation
des chronos assez difficile à mettre en œuvre, surtout lorsque l'on souhaite en utiliser plusieurs avec des temps d'expirations différents !..

(Désolé d'être pénible !.. )
sjrd
DerF_44
La ligne verticale à ne pas dépasser, dans l'éditeur de texte .fnd, n'a qu'une fonction esthétique, de lisibilité,
ou bien son non-respect peut nuire au bon déroulement du code ?..
C'est purement esthétique. C'est pour la lisibilité.
DerF_44
N'y aurait-il pas un moyen, “relativement” simple, en se servant de Master.Timers,
d'adapter la chose pour un terrain, un effet, un obstacle ou un outil ????!!!!!!!!!!!
Poser un field particulier pendant un certain laps de temps (sans que le joueur soit immobilisé !)
me semble fascinant, et, il y a quelques temps, j'y était parvenu avec un chrono, mais je trouve l'utilisation
des chronos assez difficile à mettre en œuvre, surtout lorsque l'on souhaite en utiliser plusieurs avec des temps d'expirations différents !..
Aucun problème. Tu remplaces le ShowPermanentMessage par
Map[3, 6, 5].Field := Grass;
Et dans l'expiration du timer, l'inverse, par exemple
Map[3, 6, 5].Field := Wall;
DerF_44
Je suis scotché de la simplicité de la réponse, mais…
Je n'arrive pas à “conjuguer” correctement la chose !..
Pourrais-tu préciser stp, je ne sais pas comment fonctionne le Master.Timers !.
D'avance merci !
sjrd
Master.Timers.ScheduleNotificationMsg(Delay, Dest, msgUnMessage) programme une alarme (un réveil) qui agira dans Delay millisecondes. À ce moment, le composant Dest recevra le message UnMessage. C'est-à-dire que le on message UnMessage do de ce composant s'exécutera. C'est tout ce que fait le timer.

Donc pour réagir à ce UnMessage, il faut un plugin attaché au joueur qui ait :
on message UnMessage do
begin
Map[3, 6, 5].Field := Wall;
end;
Le UnMessage doit avoir été déclaré au début avec
messages
UnMessage: TPlayerMessage = 456;
avec un nombre unique.

Est-ce que c'est plus clair ?
DerF_44
Absolument, parfaitement clair !!!
Ce qui prêtait à confusion c'est le concept de Message (pas forcément un String balancé au Player !)..
Deux minutes pour poser le code, + trois pour l'adapter à mon projet et zou, ça roule !.
C'est absolument géant !!!
Et hop, encore un champ d'exploration (gigantesque !!),
source d'une multitude d'idées (mon pauvre crâne !), à expérimenter !!
Merci beaucoup sjrd !
Je ne me lasserai jamais d'affirmer que ton logiciel est vraiment, vraiment GÉNIAL !!

Le nombre unique du TPlayerMessage c'est juste un référencement, cela peut être n'importe quel nombre !?

Encore merci !



sjrd
Oui ça peut être n'importe quel nombre (entre 1 et 32 000 et des poussières ^^)
DerF_44
Ok d'ac, merci.
(C'est bon, ça laisse une certaine marge 32000 !!! )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB