12 | |||||||
Auteur | Messages | ||||||
---|---|---|---|---|---|---|---|
Prokopy | #16 Posté le 18/10/2010 à 18:21:00 | ||||||
Kinder Pingui | gambix : gné ? des objets virtuels ? on pense bien aux mêmes objets virtuels ? spheris : tout dépend ce que tu appelles "déplacer". Un déplacement n'est rien d'autre qu'un changement de coordonnées par rapport au temps précédent. Si on prend ton exemple :
Tu n'est pas sans savoir (je l'espère) que les coordonnées de l'images peuvent être remplacées par des variables (disons X et Y).
Si ces variables sont globales (déclarées en haut du formulaire), tu peux les modifier ailleurs, disons par exemple … allez au hasard, l'évènement MouseMove() de ton DrawArea :
Et hop ! Ton image suit ta souris ! Ce que les gens ont tendance à oublier quand ils programment, c'est que même notre écran n'est qu'un DrawingArea gigantesque. Tout ce qui se passe dessus tu peux le refaire avec un DrawingArea. Fenêtres, boutons, champs, images … tout est possible. Et avec les évènements Gambas c'est grandement simplifié. Désolé gambix, je suis peut-être borné, mais je ne vois pas du tout ce que les objets virtuels vienne faire là dedans. Si tu pouvais développer un peu ta réponse ce ne serait pas de refus. La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||||
gambix | #17 Posté le 18/10/2010 à 19:12:00 | ||||||
Faire simple ! | bon la j'ai une minute, donc, Un objet virtuel c'est un classe représentant l'objet... on peu imaginer un tableau d'objet contenant des référence a plusieur classe qui représente le dessin. une classe dessinObjet serait parente de toute les autres elle a les propriété Left, top, witdh, height et une fonction _Draw() vide on a ensuite des classe dessinrectangle, dessinligne, dessinImage qui hérite de la classe dessin objet. et qui on tous une fonction _draw() qui fait ce qui doit être fait pour dessiner un dessin on parcour un tableau contenant les reférence a chaque objet. for each (object)Obj in aDrawing Obj._Draw() next On peut ensuite bien sur imaginer détecter l'objt sous la sourie en parcourant la liste des objets , etc... voila ce que sont des objet virtuel ... enfin pas tant que ça en fait ... ce sont de vrai objet ... et c'est comme ça que fonctionnes beaucoup des petite chose que vous avez a l'écran . Moins de texte dans une signature c'est agrandir son espace. | ||||||
Prokopy | #18 Posté le 18/10/2010 à 20:17:00 | ||||||
Kinder Pingui | Donc tu vas créer un objet juste our dessiner un rectangle, une ligne, une image, alors que justement tu as des fonctions déjà toutes prêtes pour faire cela ? Pour des objets plus complexes comme des boutons, et pour la gestion d'évènements, d'accord, mais pour un simple rectangle je ne vois pas du tout l'intérêt. La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||||
gambix | #19 Posté le 18/10/2010 à 21:01:00 | ||||||
Faire simple ! | tu es dur à comprendre les choses simples ... l'objet sert à stocker les propriétés(position/taille)... comme dans une image sgv chaque élément est défini par un objet xml.... l'idée est de pouvoir bouger , repositionner les éléments contenus dans le drawing area ... mais on a besoin de savoir à tous moments ou ils sont ... mes objets utilisaient les fonction de dessin pour se dessiner ... mais ils ont des propriétés que l'on peut interroger ... à contrario d'une fonction ... c'est le système de stockage des éléments qui est important là. pas la façon de dessiner... Moins de texte dans une signature c'est agrandir son espace. | ||||||
spheris | #20 Posté le 23/10/2010 à 13:14:00 | ||||||
Gambix, Dans le cas d'icones eventuels dessinnés sur une drawarea, comment avec un exemple précis, utilises-tu les objets virtuels ? | |||||||
gambix | #21 Posté le 23/10/2010 à 17:37:00 | ||||||
Faire simple ! | le code est un peu long a écrire si c'est seulement des icones... je pense que ça doit pouvoir se bidouiller en gtk, iconview et un peu d'appel api externe en c pour le bg. Moins de texte dans une signature c'est agrandir son espace. | ||||||
spheris | #22 Posté le 23/10/2010 à 17:42:00 | ||||||
donc pour faire simple avec un exemple concret, comment deplaceras-tu une ligne dans une drawarea au moyen de la touche R du clavier ? le tout fait avec un objet virtuel ? | |||||||
gambix | #23 Posté le 23/10/2010 à 20:21:00 | ||||||
Faire simple ! | Voici : http://gambasforge.org/cgi-bin/index.gambas?section=code&sub=detail&id=30 Moins de texte dans une signature c'est agrandir son espace. | ||||||
spheris | #24 Posté le 26/10/2010 à 18:48:00 | ||||||
Gambix, Ton talent et tes connaissances nous sont très précieux sur ce forum. Merci de nous offrir de ton temps et encore MERCI pour cet exemple ! Je commence petit à petit à saisir la puissance d'un tel langage. La notion d'objet virtuel commence à rentrer petit à petit. Par contre, je ne sais si c'est mon PC mais le déplacement des icones est d'une lenteur ancestrale. | |||||||
Prokopy | #25 Posté le 26/10/2010 à 20:01:00 | ||||||
Kinder Pingui | Chez moi aussi c'est très lent. Je sais que mon ordi n'est pas "une bombe", mais quand même … La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||||
gambix | #26 Posté le 26/10/2010 à 20:38:00 | ||||||
Faire simple ! | j'ai pas dit que c'était a faire en basic ... en C ça marche bien ce que tu peu faire c'est remplacer les objet container par des drawing area ... après tout ..; c'est des conteneur et la gestion des evènement sera gérée en c Moins de texte dans une signature c'est agrandir son espace. | ||||||
gambix | #27 Posté le 26/10/2010 à 20:47:00 | ||||||
Faire simple ! | en faite ça a l'air prévut http://gambasdoc.org/help/comp/gb.desktop/desktopfile?v3 Moins de texte dans une signature c'est agrandir son espace. | ||||||
Prokopy | #28 Posté le 11/11/2010 à 03:39:00 | ||||||
Kinder Pingui | Par avance désolé gambix, je sais que je vais faire mon vieux chieur, mais non seulement ton truc rame mais en plus j'ai du mal à comprendre la démarche (et la notion d'objet "virtuel-qui-n'en-est-pas-trop-un-en-fait-on-dirait"). Bon j'ai fait un projet similaire à ma sauce histoire de comparer un peu les deux (et peut-être d'enfin nous comprendre ! ). Il est sur Gambasforge : http://gambasforge.org/cgi-bin/index.gambas?section=code&sub=detail&id=31 . Déjà je peux te dire que le mien rame un peu (beaucoup) moins. Enfin bon on en reparle. La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||||
gambix | #29 Posté le 11/11/2010 à 12:43:00 | ||||||
Faire simple ! | Rho prok .. tu fait bien ton age je vais tester ça Moins de texte dans une signature c'est agrandir son espace. | ||||||
12 |