cs_Cracker
Messages postés82Date d'inscriptiondimanche 9 septembre 2001StatutMembreDernière intervention21 août 2006
-
5 mai 2004 à 15:33
zegamemaster
Messages postés27Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention14 avril 2005
-
14 sept. 2004 à 07:00
Bon j'espere que vous pourrez m'aider, ca fait un mois que je cherche !!
Je voudrai faire l'équivalent de TextBox (donc des zones de saisies de texte ;) ) en DirectX (ou plutot en DirectDraw) !!
J'ai bien penser utiliser DirectInput, mais sa risque d'etre lourd à utiliser parceque s'il faut vérifier à chaque touche frappé si le controle à bien le focus ca va ralentir...
zegamemaster
Messages postés27Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention14 avril 2005 13 sept. 2004 à 03:06
Oublie direct input, c trop compliquer, j'ai longtemp chercher comment faire ce genre de chose car je voulais realiser un console en directdraw (comme celle de quake) et j'ai finalement trouver un bon moyen.
D'abord, tu doit creer un variable qui te permetra de dire lequel de tes txtBox a le focus (fais comme tu veux, clic, deplacement au clavier etc...)
ensuite, assure toi que chacune de tes txtBox a affiche possedent un moyen simple d'afficher leur text mais aussi de le modifier. Je te conseil largement d'utiliser la programmation Objet dans ce cas, car ca devient tres difficile a gere en modulaire et le code devien un peu dur a lire.
je ne m'attarde pas trop sur comment creer un objet TxtBox, mais si tu as des difficulte ou si tu ne sais pas du tout comment faire, envoi moi un email a chrlouis@optusnet.com.au et je t'enverai un petit exemple.
Apres avoir creer tes objet txtBox, met les dans une collection et assigne leur une clee.
ensuite, creer une sub un peut comme ceci
sub addText (txtBox as string, letter as integer)
if letter = 8 then 'on gere l'effacement
TboxCollection(txtbox).removeLastLetter
else
TboxCollection(txtbox).addLetter(chr(text))
end if
end sub
ensuite, dans la form qui est en cooperation avec directDraw, creer un key_press event
cs_Cracker
Messages postés82Date d'inscriptiondimanche 9 septembre 2001StatutMembreDernière intervention21 août 2006 13 sept. 2004 à 19:48
Heu, j'ai pas tout compris complétement.... :shy)
Mais, depuis que j'ai posté ce message, j'ai plus ou moins trouvé un solution (en bricolant certe mais bon)...
Pour les textbox d'une ligne, j'utilise en textbox visible que je met en dehors de l'écran pour ne pas le voir clignoter, ensuite quand je clique à l'endroit correspondant au TextBox DX, on met le focus au TextBox VB, puis on affiche le texte contenue dans ce dernier...
Pour les textbox de plusieurs lignes, j'utilise un richtextbox et l'api pour obtenir le texte contenue dans une ligne...
La, ca devient bordélique !!
Il faut ajuster la taille du RTB VB à la zone de text DX, le texte se fomate comme il faut dans le RTB VB, puis grace à l'api, on récupere chaque ligne et on les affiche........
D'accord je me complique surement mais ca marche !! :big)
Merci quand meme pour ton idée, je m'en servirais p-e car la mienne peut etre un peu lourde au bout d'un moment..
Donc, je voudrais bien que tu détaille d'avantage...
De plus, ca pourrait rendre bien des services au newbies !!! ;)