Je debut en lua et je voudrais factoriser ce code :
-----------------------------------------
-- Script Entry Point
-----------------------------------------
local system = CEGUI.System:getSingleton()
local schemeMgr = CEGUI.SchemeManager:getSingleton()
local winMgr = CEGUI.WindowManager:getSingleton()
--PPT
local root_commande = winMgr:loadWindowLayout("ppt_dev_commande.layout")
local root_1 = winMgr:loadWindowLayout("ppt_dev_1.layout")
local root_2 = winMgr:loadWindowLayout("ppt_dev_2.layout")
local root_3 = winMgr:loadWindowLayout("ppt_dev_3.layout")
--- video = winMgr:getWindow("ModuleVideo")
current_win = root_1
function hide(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:hide()
current_win = we.window
end
function show(e)
local we = CEGUI.toWindowEventArgs(e)
current_win:show()
end
winMgr:getWindow("PPTDEVCommande/Fond/button"):subscribeEvent("Clicked", "show")
function showVideo(e)
video:show()
end
--Masquage Video
---video:hide()
--winMgr:getWindow("PPT_Win_amel_2/bouton_play"):subscribeEvent("Clicked", "showVideo")
--Picking
root_commande:setMousePassThroughEnabled( true)
root_1:setMousePassThroughEnabled( true)
root_1:subscribeEvent("CloseClicked","hide")
root_2:setMousePassThroughEnabled( true)
root_2:subscribeEvent("CloseClicked","hide")
root_3:setMousePassThroughEnabled( true)
root_3:subscribeEvent("CloseClicked","hide")
CEGUI.System:getSingleton():getGUISheet():addChildWindow(root_commande)
CEGUI.System:getSingleton():getGUISheet():addChildWindow(root_1)
winMgr:getWindow("PPT_Win_1/bouton_next"):subscribeEvent("Clicked", "luabtnNext_1_clicked")
function luabtnNext_1_clicked(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:getParent():hide()
CEGUI.System:getSingleton():getGUISheet():addChildWindow(root_2)
root_2:show()
end
winMgr:getWindow("PPT_Win_2/bouton_next"):subscribeEvent("Clicked", "luabtnNext_2_clicked")
winMgr:getWindow("PPT_Win_2/bouton_prev"):subscribeEvent("Clicked", "luabtnPrev_2_clicked")
function luabtnNext_2_clicked(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:getParent():hide()
CEGUI.System:getSingleton():getGUISheet():addChildWindow(root_3)
root_3:show()
end
function luabtnPrev_2_clicked(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:getParent():hide()
root_1:show()
end
-- 3 - 2
winMgr:getWindow("PPT_Win_3/bouton_next"):subscribeEvent("Clicked", "luabtnNext_3_clicked")
winMgr:getWindow("PPT_Win_3/bouton_prev"):subscribeEvent("Clicked", "luabtnPrev_3_clicked")
function luabtnNext_3_clicked(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:getParent():hide()
CEGUI.System:getSingleton():getGUISheet():addChildWindow(root_3)
root_3:show() --4 qd y aura 4
end
function luabtnPrev_3_clicked(e)
local we = CEGUI.toWindowEventArgs(e)
we.window:getParent():hide()
root_2:show()
end
-- 4 -3
Bref faire une boucle avec une liste de variable correspondant à mes fenetres :
root_1 root_2 etc...
Vu que j'ai une 20 ene de fenetre ca serait cool...
Merci
# je veux bien mais
Posté par lem__mel . Évalué à 7.
P.S. :
- pourquoi une telle réponse ? voir http://www.gnurou.org/writing/smartquestionsfr , à moins que j'ai lu trop vite, auquel cas désolé.
[^] # Re: je veux bien mais
Posté par xabi . Évalué à -2.
afin de les utiliser dans un for ,
c'est pas le bout du monde...
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 5.
- soit j'ai vraiment pas compris ta question, auquel cas détaille la un peu plus pour que j'ai l'impression que la réponse à te donner ce n'est pas juste RTFM,
- soit c'est ce que je pense et tu n'as même pas lu mon post précédent et le lien que je t'ai fourni.
[^] # Re: je veux bien mais
Posté par xabi . Évalué à -2.
Si tu n'as rien à dire passe ton chemin au lieu de faire des leçons de morale.
Moi ce que j'essaye c'est de gagner du temps, donc je suis déjà passé à autre chose et j'ai fait un vilain copier coller.
C'était juste pour ma culture personnel, pour améliorer mon script lua que je souhaitais savoir comment factoriser le code.
Maintenant si personne n'a une idée c'est pas grave, je suis passé à autre chose.
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 9.
La on parle de lua donc d'un langage, non d'un exécutable , ou man toto me donnera ma réponse. donc ce genre de réponse tu peux te les garder.
Dans le cas présent, il est fort probable que man lua ne t'ai donné grand chose, par contre la lecture de la doc officielle, sur le site officiel du langage t'aurait été profitable (prends le temps de comprendre ce que signifie RTFM).
Moi ce que j'essaye c'est de gagner du temps, donc je suis déjà passé à autre chose et j'ai fait un vilain copier coller.
Le hic c'est que tu essaies de gagner du temps sur le dos des autres alors même que cela te prendrait moins de temps de lire la doc officielle que de poster sur un forum avec un français correct. Si la réponse n'était pas dans les premières pages de la doc officielle, et si j'avais eu le sentiment que tu avais fait l'effort de chercher, je t'aurai sûrement donné la réponse que tu cherche (ce que je te dis est expliqué dans le lien que je t'ai donné plus haut).
Maintenant si personne n'a une idée c'est pas grave, je suis passé à autre chose.
Si si, je connais la réponse, mais te la donner en brute c'est l'assurance que tu reviendras encore demander quelque chose de trivial. Pour poser des questions telles que celle-ci, tu peux t'adresser à developpez.com, site où ils ont beaucoup plus de débutants qui peuvent avoir envie de répondre à une question du genre : comment on fait pour faire un tableau en lua. J'ai peur qu'ici il y ait moins de gens stimulé par ce genre de question.
[^] # Re: je veux bien mais
Posté par gaaaaaAab . Évalué à -2.
[^] # Re: je veux bien mais
Posté par xabi . Évalué à -2.
Dans le cas présent je suis en retard dans un projet et oui je fais le connard pour avoir une réponse rapide à mon probleme sans trop chercher, tout simplement car j'ai pas le temps et j'ai pas forcément envie de me plonger dans LUA qui me sert uniquement pour parametrer ma GUI pour ma présentation qui arrive.
Donc oui je pousse pas loin et je comprends que ca vous enerve, l'idée, c'est, tien le code est pas top là, je vais poster sous linuxfr pour avoir une réponse rapide.
Toutes les questions ne sont pas stimulantes, mais je n'ai pas posté dans un forum spécialisé pour les pro de LUA, j'ai posté dans un forum programmation.autre qui ne veut pas dire, qu'une question de debutant ne peut pas etre posée...
J'aime linuxfr car les gens sont réactifs et répondent vite et bien, mais maintenant il faut meriter sa réponse, ca c'est pas cool.
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 4.
Dans ma vie professionnelle il m'arrive également d'avoir besoin d'aide de manière urgente (je suis déjà en retard, sans la réponse je ne peux rien faire à part me tourner les pouces et mon patron me regarde car tout ce retard ca l'inquiète ; en plus pas de bol je cherche de l'aide sur des forums anglais, alors bonjour le décalage horaire). Et je peux t'assurer que dans ces moments là j'ai vachement envie de hurler "JE SUIS PRESSÉ !!!!!!".
Hé bein, néanmoins je prends sur moi, j'écris poliment, fais très attention à mon orthographe, fabrique un petit exemple, un snipped code, etc. Et j'y peux rien car le ou les gars en face, ils ont pas que moi dans leur vie, que des gars vachement pressés il y en a des tas, etc.
Donc je comprends ta position, mais il s'agit là d'une forme de respect.
P.S. :
- il m'est même une fois arrivé de demander de l'aide sur boîte email perso car je n'avais trouvé aucun forum, que l'on était dans les fêtes de noël, et que le sujet était trop technique pour demander de l'aide sur Linuxfr ou autre ; et bien je l'emmenais pas large, j'y allais avec des excuses ("je suis vraiment désolé de vous embêté sur votre boîte perso", etc, etc), et pensais qu'on allait ignorer froidement mon mail. Et bein, les formes ont dû jouer en ma faveur, car il m'a répondu gentillement, rapidement, en me disant que c'était pas la peine de s'excuser, etc.
- en plus, l'expérience faisant, ca m'arrive souvent de trouver des bugs, alors le temps d'avoir une réponse peut être super long, pour finalement avoir comme réponse : "désolé mais là ca va pas marcher, il faut que je trouve d'où vient le problème".
[^] # Re: je veux bien
Posté par xabi . Évalué à -4.
Et oui j'aurai pu reduire le code exemple et dire tout simplement :
Comment factoriser ce passage en LUA :
root_1:setMousePassThroughEnabled( true)
root_1:subscribeEvent("CloseClicked","hide")
root_2:setMousePassThroughEnabled( true)
root_2:subscribeEvent("CloseClicked","hide")
root_3:setMousePassThroughEnabled( true)
root_3:subscribeEvent("CloseClicked","hide")
[^] # Re: je veux bien
Posté par lem__mel . Évalué à 2.
ma_table={}
ma_table[1] = root_1
ma_table[2] = root_2
ma_table[3] = root_3
for i,v in ipairs(ma_table) do
v:setMousePassThroughEnabled( true)
v:subscribeEvent("CloseClicked","hide")
end
[^] # Re: je veux bien
Posté par xabi . Évalué à -2.
[^] # Re: je veux bien
Posté par lem__mel . Évalué à 3.
Je suis entièrement d'accord, et oui j'ai tendance à écrire un peu trop vite, et j'ai pas trouvé le bouton "éditer" ;)
Je ne parlais pas que de la forme, mais du fond également. Le post dans lequel je décris mon expérience n'était là que pour te faire comprendre que je comprends ta position, et ne disait pas que ta question n'était pas bien écrite.
Je ne connais pas ton expérience en développement mais au vu de la simplicité de la solution que je t'ai proposée, tu n'as pas eu un petit peu honte ? Qu'est-ce que je fais dans mon exemple :
1/ créer un tableau
2/ mettre dedans les objets sur lesquels on fait toujours le même traitement
3/ faire une boucle
4/ dans la boucle faire le traitement classique
en quoi c'est dur ? Allez étape par étape, cela donnerait pour quelqu'un ne connaissant pas le langage et étant pressé :
1 ==> http://www.lua.org/pil/2.5.html et y trouve premier exemple : a = {}
2 ==> même page mais ligne 2 du même exemple
3 ==> http://www.lua.org/pil/4.3.5.html troisième exemple
4 ==> le code que tu as fournis
en ayant en entrée directe dans la table de matière (http://www.lua.org/pil/index.html) :
==> 2.5 - Tables
==> 4.3.4 - Numeric for ou alors 4.3.5 - Generic for
M'enfin comme disait l'autre.
[^] # Re: je veux bien
Posté par xabi . Évalué à -2.
Merci.
[^] # Re: je veux bien
Posté par lem__mel . Évalué à 2.
Mon acharnement était en effet pédagogique (du moins je l'espère), et n'avait rien de personnel.
Bon repos.
[^] # Re: je veux bien mais
Posté par benoar . Évalué à 2.
[^] # Re: je veux bien mais
Posté par NeoX . Évalué à 4.
google, mots clés : tableau en LUA
premier lien renvoyé par : http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_Trainin(...)
tu n'avais vraiment pas du chercher bien loin
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 2.
http://www.lua.org/pil/ qui est un livre pour apprendre le langage et ses mécanismes
http://www.lua.org/manual/5.1/ qui est la référence du langage
et en particulier dans le bouquin qui forme au langage :
http://www.lua.org/pil/2.5.html
P.S. : à remarquer que c'est hébergé sur le site officiel
[^] # Re: je veux bien mais
Posté par xabi . Évalué à -2.
Si ma question avait été je souhaite apprendre le langage lua, quel site me conseillez vous, ta réponse était bonne.
Mais pas dans le cas présent.
Allez c'est pas grave
[^] # Re: je veux bien mais
Posté par xabi . Évalué à -1.
J'ai besoin d'un tableau de paramètres, dans le cas présent des types Window sur lesquels je vais appeler des méthodes.
Et ca passe pas ...
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 2.
[^] # Re: je veux bien mais
Posté par lem__mel . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.