FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Nouveau challenge : Méthode de déplacement des objets Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Nouveau challenge : Méthode de déplacement des objets Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nouveau challenge : Méthode de déplacement des objets Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Nouveau challenge : Méthode de déplacement des objets Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Nouveau challenge : Méthode de déplacement des objets Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Nouveau challenge : Méthode de déplacement des objets Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Nouveau challenge : Méthode de déplacement des objets Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Nouveau challenge : Méthode de déplacement des objets Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Nouveau challenge : Méthode de déplacement des objets Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Nouveau challenge : Méthode de déplacement des objets Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Nouveau challenge : Méthode de déplacement des objets

Aller en bas 
3 participants
AuteurMessage
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 17:30

Bonsoir a tous !

Après avoir eu des propositions pour créer un MENU DÉROULANT, Je vous propose de vous pencher sur le déplacement d'un objet PANORAMIC dans un FORM.

Prenons un exemple simple d'un bouton. Voici le cahier des charges :

1/ Identifier facilement l'objet sélectionné pour le déplacement
2/ Pouvoir déplacer facilement l'objet sur le FORM
3/ Accessoirement, pouvoir modifier la taille de l'objet sélectionné
4/ Désélectionné l'objet pour éventuellement passer a un autre
5/ Le principe doit fonctionner avec tous les objets Panoramic

Tout cela bien sûr en utilisant le moins de lignes et de variables possible.
L'usage de la DLL de Klaus est autorisé.
Le tout restant le plus simple possible, bien entendu !  drunken

A vos claviers... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 17:47

minibug tu peut déjà commencer a étudié editbas lui il le fait
tu sélectionne l'objet à partir du liste a gauche et le tour est joué
tu déplace les objets à laide de la souris ou tu veux a volonté
et changé aussi leurs dimensions en sélectionnant une des cases
appropriées au grid du dessous comme gpp la différence c que tu saisi
directement sa valeur contrairement a GPP qui utilise un spin
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 17:57

Tel que le défi est présenté, ce sera compliqué. En effet, tu n'as pas de moyen identique pour tous les objets pour le sélectionner. L'évènement évident (on_click) n'est pas utilisable sur tous les objets, même pas sur tous les objets visibles (scroll_bar, container_tab, ...). Il faut donc trouver un autre moyen pour sélectioner l'objet, comme par exemple un clic dans une liste des objets définis, façon liste des objets d'un IDE.

Une fois cette phase bien définie, on peut aller plus loin.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 18:17

Bonsoir Klaus !

Oui tu as raison, je ne l'ai pas précisé. Suspect

Dans le cas présent c'est a partir d'un LIST et d'un numéro d'objet que l'on devra agir.
Il s'agit de trouver une solution pour GPP sur l'ensemble des objets a l’exception des TIMER, DIALOG, etc...
ATTENTION, on doit aussi pouvoir agir sur plusieurs FORM selon l’emplacement des objets !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 19:31

Voici, en avant-première, comment "sélectionner" n'importe quel objet à partir d'une liste d'objets, et de visualiser la sélection, quelque soit la form dans laquelle l'objet se trouve.
Code:

label selobj

dim n_objets%, objet_choisi%
dim objets$(500,2)

full_space 0
list 999 : full_space 999 : width 999,150 : on_click 999,selobj

AddObject(0,0,"Objets:")
memo 1 : left 1,200
AddObject(1,0,"Memo1")
scroll_bar 2 : left 2,200 : top 2,150
AddObject(2,0,"Scroll_Bar1")

objet_choisi% = 0

end

selobj:
  SelectObj()
  return

sub AddObject(no%,par%,nom$)
  item_add 999,nom$
  n_objets% = n_objets% + 1
  objets$(n_objets%,0) = nom$
  objets$(n_objets%,1) = str$(no%)
  objets$(n_objets%,2) = str$(par%)
end_sub

sub SelectObj()
  dim_local no%, i%, k%, s$
  if objet_choisi%>0
    delete 998
    show objet_choisi%
    objet_choisi% = 0
  end_if
  if item_index(999)=1 then exit_sub
  for k%=1 to n_objets%
    if objets$(k%,0)=item_index$(999)
      no% = val(objets$(k%,1))
      exit_for
    end_if
  next k%
  objet_choisi% = no%
  hide no%
  container 998 : hide 998 : color 998,255,255,0
    if objets$(objet_choisi%,2)<>"0" then parent 998,val(objets$(objet_choisi%,2))
    top 998,top(objet_choisi%) : left 998,left(objet_choisi%)
    width 998,width(objet_choisi%) : height 998,height(objet_choisi%)
    caption 998,item_index$(999)
  show 998
end_sub

Je travaille sur les déplacements d'objet, mais je viens de découvrir un bug dans Panoramic !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 19:43

Bien vu le choix par la couleur, bonne idée !

Pourquoi n'y ai je pas pensé plus tôt Question Exclamation scratch
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 19:50

Et je remplace visuellement l'objet par un Container, pour deux raisons:
1. avoir une représentation visuelle uniforme pour tout objet sélectionné
2. pouvoir placer à terme des boutons et zones dans ce container afin de paramétrer l'objet sélectionné.
Mais j'attends la solution pour le bug avec MOUSE_LEFT_DOWN pour pouvoir déplacer l'objet à la souris...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 20:26

Bonsoir.
J'ignore si c'est un gros mot de vous dire cela, et j'en ai déjà parlé, mais j'ai ce principe de délacement d'un objet sur une forme sur mon site, concernant un IDE simplifié. Ca me 'turbine' de vous en parler, mais il me semble que ça correspond en grande partie à la demande. Je vous prie de m'excuser si je me trompe, j'ai l'impression que bien souvent je comprend de travers. drunken

EDIT: je ne sais pas ce qui c'est passé, mais je n'ai vu que le début du post. Maintenant je vois d'autres réponses, et je ne suis sure d'avoir bien fait d'intervenir.

Je sors.


Dernière édition par cosmos70 le Dim 27 Sep 2015 - 20:29, édité 1 fois
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 20:27

Ok ! Merci Cosmos.

Je vais regarder... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 20:58

@Cosmos :
Sympa ce petit éditeur, j'en ai pas entendu parlé !

J'ai regardé vite fait. Il y a des choses très bien comme le déplacement par pas de 10 pixels.
J'aime bien aussi le sélection avec le petit cercle au coin de l'objet.

Merci pour ton aide Cosmos.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 22:38

Avec l'astuce de Jl35, on peut "contourner" le bug de Panoramic en l'exploitant doublement,, une fois sur MOUSE_LEFT_DOWN, puis sur MOUSE_LEFT_UP. Les deux fonctions (et certainement également celles de _RIGHT_) souffrent du même bug. Mais du coup, on peut déplacer l'objet sélectionné (en jaune) en le faisant glisser avec la souris:
Code:
' selection_et_deplacement_objets_par_liste.bas

label selobj, tick

dim n_objets%, objet_choisi%, xold%, yold%, xdown%, ydown%,  xobj%, yobj%
dim objets$(500,2), actif%

full_space 0
list 999 : full_space 999 : width 999,150 : on_click 999,selobj
timer 997 : timer_off 997 : timer_interval 997,100 : on_timer 997,tick

AddObject(0,0,"Objets:")
memo 1 : left 1,200
AddObject(1,0,"Memo1")
scroll_bar 2 : left 2,200 : top 2,150
AddObject(2,0,"Scroll_Bar1")

objet_choisi% = 0

end

selobj:
  timer_off 997
  SelectObj()
  return
  
tick:
  ChangeObjet()
  return

sub AddObject(no%,par%,nom$)
  item_add 999,nom$
  n_objets% = n_objets% + 1
  objets$(n_objets%,0) = nom$
  objets$(n_objets%,1) = str$(no%)
  objets$(n_objets%,2) = str$(par%)
end_sub

sub SelectObj()
  dim_local no%, i%, k%, s$
  if objet_choisi%>0
    delete 998
    show objet_choisi%
    objet_choisi% = 0
  end_if
  xdown% = -1
  ydown% = -1
  if item_index(999)=1 then exit_sub
  for k%=1 to n_objets%
    if objets$(k%,0)=item_index$(999)
      no% = val(objets$(k%,1))
      exit_for
    end_if
  next k%
  objet_choisi% = no%
  hide no%
  container 998 : hide 998 : color 998,255,255,0
    if objets$(objet_choisi%,2)<>"0" then parent 998,val(objets$(objet_choisi%,2))
    top 998,top(objet_choisi%) : left 998,left(objet_choisi%)
    width 998,width(objet_choisi%) : height 998,height(objet_choisi%)
    caption 998,item_index$(999)
  xobj% = left(998)
  yobj% = top(998)
  show 998
  timer_on 997
end_sub

sub ChangeObjet()
  dim_local x%, y%, xact%, yact%
  timer_off 997
  if mouse_left_down(998)=1
    actif% = 1
    xact% = mouse_x_position(998)
    yact% = mouse_y_position(998)
    if xold%<0
      xold% = xact%
      yold% = yact%
    end_if
    
    x% = xobj% + xact% - xold%
    y% = yobj% + yact% - yold%
    xobj% = x%
    yobj% = y%
    left 998,x% : top 998,y%
  else
    if actif%=1
      if mouse_left_up(998)=1
        actif% = 0
        left objet_choisi%,left(998) : top objet_choisi%,top(998)
        xold% = -1
        yold% = -1
      else
        xact% = mouse_x_position(998)
        yact% = mouse_y_position(998)
        if xold%<0
          xold% = xact%
          yold% = yact%
        end_if

        x% = xobj% + xact% - xold%
        y% = yobj% + yact% - yold%
        xobj% = x%
        yobj% = y%
        left 998,x% : top 998,y%
      end_if
      timer_on 997
      exit_sub
    end_if
    left objet_choisi%,left(998) : top objet_choisi%,top(998)
    xold% = -1
    yold% = -1
  end_if
  timer_on 997
end_sub

Pour désélectionner l'objet sans en sélectionner un autre, cliquer sur la première ligne de la liste...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 23:09

Minibug a écrit:
... ce petit éditeur, j'en ai pas entendu parlé !
En réalité, j'y ai fait allusion pour des sujets du même genre, le déplacement d'objet.

Autrement je n'ai pas fait de post pour mon I.D.E. Il y avait celui de Klaus, qui ne pouvait qu'être meilleurs que celui-ci, fait je crois en Delphi, malgré que je ne l'ai jamais essayé, et pour cause, je ne le trouvais pas. Et l'idée m'était venu de tester une idée sur le déplacement d'objet, et voir ce qu'on pouvait faire avec. Ce n'était qu'un teste, pas intéressant pour s'en servir, donc d'être publié.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyDim 27 Sep 2015 - 23:44

Et voici le même code, permettant de dimensionner un objet sélectionné par la souris ! Il faut enfoncer le bouton gauche près du bord droit ou bas (actuellement 20 pixels) et tirer - l'objet va changer de largeur ou de hauteur, en augmentant ou diminuant selon le sens dans lequel on tire. Le déplacement ets identique à ce qu'il y avait avant:
Code:
' selection_et_deplacement_objets_par_liste.bas

label selobj, tick

dim n_objets%, objet_choisi%, xold%, yold%, xdown%, ydown%,  xobj%, yobj%
dim objets$(500,2), actif%, resize%

full_space 0
list 999 : full_space 999 : width 999,150 : on_click 999,selobj
timer 997 : timer_off 997 : timer_interval 997,100 : on_timer 997,tick

AddObject(0,0,"Objets:")
memo 1 : left 1,200
AddObject(1,0,"Memo1")
scroll_bar 2 : left 2,200 : top 2,150
AddObject(2,0,"Scroll_Bar1")

objet_choisi% = 0

end

selobj:
  timer_off 997
  SelectObj()
  return
  
tick:
  ChangeObjet()
  return

sub AddObject(no%,par%,nom$)
  item_add 999,nom$
  n_objets% = n_objets% + 1
  objets$(n_objets%,0) = nom$
  objets$(n_objets%,1) = str$(no%)
  objets$(n_objets%,2) = str$(par%)
end_sub

sub SelectObj()
  dim_local no%, i%, k%, s$
  if objet_choisi%>0
    delete 998
    show objet_choisi%
    objet_choisi% = 0
  end_if
  xdown% = -1
  ydown% = -1
  if item_index(999)=1 then exit_sub
  for k%=1 to n_objets%
    if objets$(k%,0)=item_index$(999)
      no% = val(objets$(k%,1))
      exit_for
    end_if
  next k%
  objet_choisi% = no%
  hide no%
  container 998 : hide 998 : color 998,255,255,0
    if objets$(objet_choisi%,2)<>"0" then parent 998,val(objets$(objet_choisi%,2))
    top 998,top(objet_choisi%) : left 998,left(objet_choisi%)
    width 998,width(objet_choisi%) : height 998,height(objet_choisi%)
    caption 998,item_index$(999)
  xobj% = left(998)
  yobj% = top(998)
  show 998
  timer_on 997
end_sub

sub ChangeObjet()
  dim_local x%, y%, xact%, yact%, xdelta%, ydelta%
  timer_off 997
  xact% = mouse_x_position(998)
  yact% = mouse_y_position(998)
  if mouse_left_down(998)=1
    actif% = 1
    if xold%<0
      xold% = xact%
      yold% = yact%
    end_if
    
    x% = xobj% + xact% - xold%
    y% = yobj% + yact% - yold%
    xobj% = x%
    yobj% = y%
    left 998,x% : top 998,y%
  else
    if actif%=1
      if mouse_left_up(998)=1
        actif% = 0
        left objet_choisi%,left(998) : top objet_choisi%,top(998)
        width objet_choisi%,width(998) : height objet_choisi%,height(998)
        xold% = -1
        yold% = -1
        resize% = 0
      else
        if xold%<0
          xold% = xact%
          yold% = yact%
        end_if
        xdelta% = xact% - xold%
        ydelta% = yact% - yold%

        if (resize%<>1) and ((resize%=2) or (xact%>(width(998)-20)))
          resize% = 2
          width 998,width(998) + xdelta%
          xold% = xact%
          yold% = yact%
          timer_on 997
          exit_sub
        else
          if (resize%<>1) and ((resize%=3) or (yact%>(height(998)-20)))
            resize% = 3
            height 998,height(998) + ydelta%
            xold% = xact%
            yold% = yact%
            timer_on 997
            exit_sub
          else
            if resize%<=1
              resize% = 1
              x% = xobj% + xdelta%
              y% = yobj% + ydelta%
              xobj% = x%
              yobj% = y%
              left 998,x% : top 998,y%
            end_if
          end_if
        end_if
      end_if
      timer_on 997
      exit_sub
    end_if
    left objet_choisi%,left(998) : top objet_choisi%,top(998)
    width objet_choisi%,width(998) : height objet_choisi%,height(998)
    xold% = -1
    yold% = -1
  end_if
  timer_on 997
end_sub


Et on est toujours en 100 % Panoramic, sans DLL !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyLun 28 Sep 2015 - 2:59

Après la correction d'un petit bug, j'ai pu ajouuter un CONTAINER_TAB avec deux TABs, un LIST dans le premier TAB et un BUTTON dans le second. Et on peut déplacer et redimensiionner le CONGTAINER_TAB, tout comme individuellement la LIST et le BUTTON:
Code:
' selection_et_deplacement_objets_par_liste.bas

label selobj, tick

dim n_objets%, objet_choisi%, xold%, yold%, xdown%, ydown%,  xobj%, yobj%
dim objets$(500,2), actif%, resize%, object_index%

full_space 0
list 999 : full_space 999 : width 999,150 : on_click 999,selobj
timer 997 : timer_off 997 : timer_interval 997,100 : on_timer 997,tick

AddObject(0,0,"Objets:")
memo 1 : left 1,200
AddObject(1,0,"Memo1")
scroll_bar 2 : left 2,200 : top 2,150
AddObject(2,0,"Scroll_Bar1")
container_tab 3 : left 3,200 : top 3,200
AddObject(3,0,"Container_Tab1")
tab 4 : parent 4,3 : caption 4,"Fichiers"
tab 5 : parent 5,3 : caption 5,"Dossiers"
List 6 : parent 6,4 : top 6,20 : left 6,10
AddObject(6,4,"List1")
button 7 : parent 7,5 : top 5,20 :left 7,10
AddObject(7,5,"Button1")


objet_choisi% = 0

end

selobj:
  timer_off 997
  SelectObj()
  return
 
tick:
  ChangeObjet()
  return

sub AddObject(no%,par%,nom$)
  item_add 999,nom$
  n_objets% = n_objets% + 1
  objets$(n_objets%,0) = nom$
  objets$(n_objets%,1) = str$(no%)
  objets$(n_objets%,2) = str$(par%)
end_sub

sub SelectObj()
  dim_local no%, i%, k%, s$
  if objet_choisi%>0
    delete 998
    show objet_choisi%
    objet_choisi% = 0
  end_if
  xdown% = -1
  ydown% = -1
  if item_index(999)=1 then exit_sub
  for k%=1 to n_objets%
    if objets$(k%,0)=item_index$(999)
      object_index% = item_index(999)
      no% = val(objets$(k%,1))
      exit_for
    end_if
  next k%
  objet_choisi% = no%
  hide no%
  container 998 : hide 998 : color 998,255,255,0
    if objets$(object_index%,2)<>"0" then parent 998,val(objets$(object_index%,2))
    top 998,top(objet_choisi%) : left 998,left(objet_choisi%)
    width 998,width(objet_choisi%) : height 998,height(objet_choisi%)
    caption 998,item_index$(999)
  xobj% = left(998)
  yobj% = top(998)
  show 998
  timer_on 997
end_sub

sub ChangeObjet()
  dim_local x%, y%, xact%, yact%, xdelta%, ydelta%
  timer_off 997
  xact% = mouse_x_position(998)
  yact% = mouse_y_position(998)
  if mouse_left_down(998)=1
    actif% = 1
    if xold%<0
      xold% = xact%
      yold% = yact%
    end_if
   
    x% = xobj% + xact% - xold%
    y% = yobj% + yact% - yold%
    xobj% = x%
    yobj% = y%
    left 998,x% : top 998,y%
  else
    if actif%=1
      if mouse_left_up(998)=1
        actif% = 0
        left objet_choisi%,left(998) : top objet_choisi%,top(998)
        width objet_choisi%,width(998) : height objet_choisi%,height(998)
        xold% = -1
        yold% = -1
        resize% = 0
      else
        if xold%<0
          xold% = xact%
          yold% = yact%
        end_if
        xdelta% = xact% - xold%
        ydelta% = yact% - yold%

        if (resize%<>1) and ((resize%=2) or (xact%>(width(998)-20)))
          resize% = 2
          width 998,width(998) + xdelta%
          xold% = xact%
          yold% = yact%
          timer_on 997
          exit_sub
        else
          if (resize%<>1) and ((resize%=3) or (yact%>(height(998)-20)))
            resize% = 3
            height 998,height(998) + ydelta%
            xold% = xact%
            yold% = yact%
            timer_on 997
            exit_sub
          else
            if resize%<=1
              resize% = 1
              x% = xobj% + xdelta%
              y% = yobj% + ydelta%
              xobj% = x%
              yobj% = y%
              left 998,x% : top 998,y%
            end_if
          end_if
        end_if
      end_if
      timer_on 997
      exit_sub
    end_if
    left objet_choisi%,left(998) : top objet_choisi%,top(998)
    width objet_choisi%,width(998) : height objet_choisi%,height(998)
    xold% = -1
    yold% = -1
  end_if
  timer_on 997
end_sub

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets EmptyLun 28 Sep 2015 - 9:41

Merci Klaus !

J'ai testé et cela fonctionne parfaitement. Je suis en train de décortiquer et adapter le code a ma façon. Wink
Je cherche a augmenter simultanément la largeur et la hauteur, ça ne devrai pas être trop difficile...

J'avais déjà fais en partie ce travail sur GPP mais tu me donne de nouvelles idées et façons de faire.drunken
Je t'en remercie.

Bonne journée
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Nouveau challenge : Méthode de déplacement des objets Empty
MessageSujet: Re: Nouveau challenge : Méthode de déplacement des objets   Nouveau challenge : Méthode de déplacement des objets Empty

Revenir en haut Aller en bas
 
Nouveau challenge : Méthode de déplacement des objets
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un déplacement FPS en 3D
» Méthode de programmation
» quelle force selon un déplacement [R]
» Déplacement dans une image
» Déplacement de deux sprites

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: