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
» demande explication KGF pour imprimer en mm
Une grille sur l'écran Emptypar lepetitmarocain Aujourd'hui à 12:55

» Petit passage furtif
Une grille sur l'écran Emptypar Froggy One Hier à 14:26

» SPIN et aide langage (résolu)
Une grille sur l'écran Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
Une grille sur l'écran Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
Une grille sur l'écran Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
Une grille sur l'écran Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
Une grille sur l'écran Emptypar Klaus Dim 3 Mar 2024 - 9:59

» Tangram-Toukaré
Une grille sur l'écran Emptypar jjn4 Mer 28 Fév 2024 - 18:12

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Une grille sur l'écran Emptypar jjn4 Mer 28 Fév 2024 - 18:09

» KGF_dll - nouvelles versions
Une grille sur l'écran Emptypar Klaus Mer 28 Fév 2024 - 17:01

» Mes souhaits d'amélioration de Panoramic.
Une grille sur l'écran Emptypar Pedro Lun 26 Fév 2024 - 18:12

» Testez-votre-QI
Une grille sur l'écran Emptypar jjn4 Dim 25 Fév 2024 - 17:12

» Utilisation d'Élip
Une grille sur l'écran Emptypar jjn4 Sam 24 Fév 2024 - 18:33

» Récapitulatif ludothèque panoramic jjn4
Une grille sur l'écran Emptypar jjn4 Sam 24 Fév 2024 - 18:11

» Générateur de mots de passe
Une grille sur l'écran Emptypar mindstorm Mar 20 Fév 2024 - 20:09

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

 

 Une grille sur l'écran

Aller en bas 
+2
Jean Claude
JL35
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 15:20

Code:
DIM x%,y%,w%,h%,i%,r%,g%,b%,wt%
w% = 96: h% = 106: ' dimensions (pixels) occupées par les raccourcis sur le bureau
r%=255: g%=255: b%=0: ' couleur des traits
wt% = 3: ' épaisseur des lignes (de 1 à ...)
HIDE 0
i% = 99
FOR x% = w% TO SCREEN_X STEP w%: ' lignes verticales
  i%=i%+1: FORM i%: BORDER_HIDE i%: TOP i%,0: LEFT i%,x%: WIDTH i%,wt%: HEIGHT i%,SCREEN_Y
  COLOR i%,r%,g%,b%
NEXT x%
FOR y% = h% TO SCREEN_Y STEP h%: ' lignes horizontales
  i%=i%+1: FORM i%: BORDER_HIDE i%: TOP i%,y%: LEFT i%,0: WIDTH i%,SCREEN_X: HEIGHT i%,wt%
  COLOR i%,r%,g%,b%
NEXT y%
WHILE SCANCODE = 0: PAUSE 100: SCANCODE = 0: END_WHILE
TERMINATE
Dessin d'un grille sur tout l'écran, aux dimensions des raccourcis (chez moi 96x106 pixels).
Une touche quelconque, ou un clic souris, pour l'effacer.
Bon d'accord, ça n'a pas un gros intérêt, mais après tout c'est un inutilitaire !


Dernière édition par JL35 le Jeu 28 Avr 2016 - 17:32, édité 1 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 17:05

Spectaculaire, et sans DLL.

J'ai beau analyser le code, qui est très simple, j'avoue que je n'y comprend rien.
Comment tu fais pour créer autant de form(s) transparents, je ne vois pas la commande....
Je veux et j'exige ton secret. Very Happy

Bravo.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 17:24

Salut Jean Claude,
comme j'ai dit, il n'y a aucun secret, ce ne sont pas des Form transparents, mais des Forms réduits à leur plus simple expression.
Chaque ligne est un Form à part, d'une épaisseur d'un seul pixel dans un sens et de la taille de l'écran dans l'autre sens.
Chaque élément des boucles crée une des lignes, il y a donc autant de Forms que de lignes, c'est très simple.

La seule astuce (enfin, constatation), c'est d'avoir réalisé que l'on peut créer un Form d'un seul pixel d'épaisseur.

J'ai édité pour ajouter la possibilité de moduler l'épaisseur des traits (variable wt%). Je l'ai mis à 3, mais ça peut être de 1 à ...x
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 17:51

Bravo, superbe astuce.
Il faut quand même avoir un esprit super tordu pour penser à faire des FORM(s) de 1Px. Very Happy
Des FORM(s) martiens quoi! alien
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 18:00

Eh, je ne sais pas si j'ai l'esprit tordu (se connait-on soi-même ?), mais si j'avais su que c'était possible je l'aurais fait plus tôt !

Tiens, une petite sub pour faire des lignes où on veut, n'importe où sur l'écran, de l'épaisseur, de la longueur et de la couleur qu'on veut (mais exclusivement horizontales ou verticales, je n'ai pas encore trouvé comment faire des Form en biais Very Happy , quoique... j'ai une vague idée...).
On peut par exemple faire un cadre tout autour de l'écran, ou n'importe quoi qui puisse venir à l'esprit (tordu).
Code:
DIM x1%,y1%,x2%,y2%,e%,rgb%

x1% = 0: y1% = 100: x2% = SCREEN_X: y2% = y1%
e% = 9: rgb% = 255*256*256
HIDE 0
FOR y1% = 100 TO SCREEN_Y STEP 100
    Trait(x1%,y1%,x2%,y1%,e%,rgb%): ' lignes horizontales
NEXT y1%
WHILE SCANCODE = 0: PAUSE 100: SCANCODE = 0: END_WHILE
TERMINATE
' ==============================================================================
SUB Trait(x1%,y1%,x2%,y2%,e%,rgb%)
  ' Tracé d'une ligne exclusivement horizontale ou verticale sur tout l'écran
  ' épaisseur e% pixels, couleur rgb% = R*65536+G*256+B
  DIM_LOCAL f%,r%,g%,b%
  IF x2%<>x1% AND y2%<>y1% THEN EXIT_SUB: ' droite oblique, inadmis
  f% = 900: WHILE OBJECT_EXISTS(f%)=1: f%=f%+1: END_WHILE
  FORM f%: BORDER_HIDE f%: TOP f%,y1%: LEFT f%,x1%
  IF x2%<>x1%: ' trait horizontal
      WIDTH f%,x2%-x1%: HEIGHT f%,e%
  ELSE: ' trait vertical
      WIDTH f%,e%: HEIGHT f%,y2%-y1%
  END_IF
  r% = INT(rgb%/65536): g% = BIN_AND(rgb%,65280)/256: b% = BIN_AND(rgb%,255)
  COLOR f%,r%,g%,b%
END_SUB
' ==============================================================================
(clic n'importe où pour quitter)
Et tout ça en Panoramic pur (et dur).
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 18:43

Je crois que je vais mettre une vilaine grille noire verticale, genre barreaux de prison sur le PC portable de ma femme.
Je la vois déjà m'appeller "au secours, il y a un truc bizarre sur mon écran..." Very Happy

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Une grille sur l'écran Empty
MessageSujet: re   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 19:44

Il est d' humeur taquine le garçon.
Méfies toi du canapé si elle s' aperçoit de la supercherie...
lol!
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 19:46

Quelle cruauté ! mais bon, si les conséquences sont heureuses pour toi...

Maintenant, passons aux lignes obliques sur l'écran, alors là c'est encore plus tordu, chaque point de la ligne est un Form, donc si la ligne est un peu longue ça met du temps à se mettre en place et ça papillonne dans tous les sens jusqu'au dessin complet.
Et tiens-toi bien Jean Claude, si l'épaisseur du trait est de 1 pixel chaque Form mesure 1 x 1 pixel ! quel gâchis !

Bon, c'est plus un exercice de style qu'autre chose:
Code:
DIM x1%,y1%,x2%,y2%,e%,rgb%
HIDE 0
e% = 3: rgb% = 255*256*256
x1% = 100: y1% = 300: x2% = 500: y2% = 200
Trait_1(x1%,y1%,x2%,y2%,e%,rgb%)
WHILE SCANCODE = 0: PAUSE 100: SCANCODE = 0: END_WHILE: ' clic pour sortir
TERMINATE
' ==============================================================================
SUB Trait_1(x1%,y1%,x2%,y2%,e%,rgb%)
  ' Tracé d'une ligne sur tout l'écran, horizontale, verticale ou oblique
  ' épaisseur e% pixels, couleur rgb% = R*65536+G*256+B
  DIM_LOCAL f%,x%,y%,r%,g%,b%,a,q%
  r% = INT(rgb%/65536): g% = BIN_AND(rgb%,65280)/256: b% = BIN_AND(rgb%,255)
  f% = 900: WHILE OBJECT_EXISTS(f%)=1: f%=f%+1: END_WHILE
  IF x2%<>x1% AND y2%<>y1%: ' trait oblique
      a = (y1%-y2%)/(x1%-x2%): q% = y2%-a*x2%
      FOR x% = x1% TO x2% step e%
          y% = a*x%+q%
          FORM f%: BORDER_HIDE f%: TOP f%,y%: LEFT f%,x%: WIDTH f%,e%: HEIGHT f%,e%
          COLOR f%,r%,g%,b%
          f% = f%+1
      NEXT x%
  ELSE
      FORM f%: BORDER_HIDE f%: TOP f%,y1%: LEFT f%,x1%
      IF x2%<>x1%: ' trait horizontal
          WIDTH f%,x2%-x1%: HEIGHT f%,e%
      ELSE: ' trait vertical
          WIDTH f%,e%: HEIGHT f%,y2%-y1%
      END_IF
      COLOR f%,r%,g%,b%
  END_IF
END_SUB
' ==============================================================================
PS plus la ligne est épaisse et plus ça va vite.

PS2 23h00 réparé un petit bug


Dernière édition par JL35 le Jeu 28 Avr 2016 - 23:00, édité 2 fois
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 19:47

On s'est croisés ygeronimi.
Du canapé... ou du rouleau à pâtisserie.

Tu peux aussi lui barrer l'écran en croix, elle doit bien avoir des tâches ménagères plus urgentes que de passer son temps sur l'ordinateur  Very Happy :
Code:
DIM x1%,y1%,x2%,y2%,e%,rgb%
HIDE 0
e% = 37: rgb% = 255*256*256
x1% = 0: y1% = 0: x2% = SCREEN_X: y2% = SCREEN_Y
Trait_1(x1%,y1%,x2%,y2%,e%,rgb%)
x1% = 0: y1% = SCREEN_Y: x2% = SCREEN_X: y2% = 0
Trait_1(x1%,y1%,x2%,y2%,e%,rgb%)
WHILE SCANCODE = 0: PAUSE 100: SCANCODE = 0: END_WHILE: ' clic pour sortir
TERMINATE
' ==============================================================================
SUB Trait_1(x1%,y1%,x2%,y2%,e%,rgb%)
  ' Tracé d'une ligne sur tout l'écran, horizontale, verticale ou oblique
  ' épaisseur e% pixels, couleur rgb% = R*65536+G*256+B
  DIM_LOCAL f%,x%,y%,r%,g%,b%,a,q%
  r% = INT(rgb%/65536): g% = BIN_AND(rgb%,65280)/256: b% = BIN_AND(rgb%,255)
  f% = 900: WHILE OBJECT_EXISTS(f%)=1: f%=f%+1: END_WHILE
  IF x2%<>x1% AND y2%<>y1%: ' trait oblique
      a = (y1%-y2%)/(x1%-x2%): q% = y2%-a*x2%
      FOR x% = x1% TO x2% step e%
          y% = a*x%+q%
          FORM f%: BORDER_HIDE f%: TOP f%,y%: LEFT f%,x%: WIDTH f%,e%: HEIGHT f%,e%
          COLOR f%,r%,g%,b%
          f% = f%+1
      NEXT x%
  ELSE
      FORM f%: BORDER_HIDE f%: TOP f%,y1%: LEFT f%,x1%
      IF x2%<>x1%: ' trait horizontal
          WIDTH f%,x2%-x1%: HEIGHT f%,e%
      ELSE: ' trait vertical
          WIDTH f%,e%: HEIGHT f%,y2%-y1%
      END_IF
      COLOR f%,r%,g%,b%
  END_IF
END_SUB
' ==============================================================================
PS 23h00 réparé un petit bug (une ligne sautée, cas ligne droite)


Dernière édition par JL35 le Jeu 28 Avr 2016 - 23:02, édité 1 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 20:10

L'écran barré par une croix bien rouge: je connais une bru à qui ça ne ferait pas de mal, elle ferait moins chauffer sa carte bancaire. Very Happy

Il y aura peut-être un canapé, mais pas pour ce que vous pensez médisants que vous êtes, car arrivant avec ma cape de dépanneur et un clic pour enlever les vilains barreaux noirs, elle reconnaîtra son héros (ou Éros). Je ne vous raconte pas la suite. geek


Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:17

C'était bien à ça que je pensais... après, c'est normal que tu ne racontes pas la suite, c'est du domaine de l'intime Very Happy
Comme quoi, l'informatique a du bon, même pour la paix des ménages !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6985
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:19

@ Tous et particulièrement @ celui qui aime trop sa femme pour lui jouer des tours avec son PC.

Pour dessiner directement sur le bureau, il y a mieux que l’astuce de celui dont on dit qu’il a "l’esprit super tordu pour faire des FORM de 1PX"


Code:

rem ============================================================================
rem        Dessiner sur le bureau
rem ============================================================================

 Dessiner_Sur_Le_Bureau()
end
rem ============================================================================
SUB Dessiner_Sur_Le_Bureau()
    dim_local hWnd%,HDC_Bureau% , ret% ,i%
    hWnd% = handle(0)
    width 0,100 : height 0,100
    dll_on "user32"
    HDC_Bureau% = dll_call1("GetDC",0) : ' Handle Device Control du Bureau
    dll_off
    dll_on "GDI32"
    for i% = 1 to screen_x step 20
        ret% = dll_call4("MoveToEx",HDC_Bureau%,i%,0,0)
        ret% = dll_call3("LineTo",HDC_Bureau%,i%,screen_y)
    next i%
    for i% = 1 to screen_y step 20
        ret% = dll_call4("MoveToEx",HDC_Bureau%,0,i%,0)
        ret% = dll_call3("LineTo",HDC_Bureau%,screen_x,i%)
    next i%
    dll_off
    dll_on "user32"
    ret% = dll_call2("ReleaseDC",0,HDC_Bureau%)
    dll_off

END_SUB
rem ============================================================================


Pour effacer la grille tracée sur l'écran, je vous laisse découvrir par vous-même. tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


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

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:26

Oui mais là tu triches Papydall ! affraid

Notre amis propose une solution 'light' pure Panoramic ! Laughing Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:35

J'allais le dire ! forcément, avec une dll système, on ne joue plus dans la même cour !

De plus:
- pour l'effacement des traits, peux-tu le faire par programme ?
- peux-tu moduler l'épaisseur et la couleur des traits ?


Dernière édition par JL35 le Jeu 28 Avr 2016 - 21:43, édité 1 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6985
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:42

Une DLL native n’enlève rien à la "lighteté" ( waou ! la belle trouvaille) de la solution.
Bon, si tu n’aimes pas, n’aime pas.
Mais tu peux aimer ça :

Code:

rem ============================================================================
rem        Dessiner sur le bureau
rem ============================================================================

 Dessiner_Sur_Le_Bureau()
end
rem ============================================================================
SUB Dessiner_Sur_Le_Bureau()
    dim_local hWnd%,HDC_Bureau% , ret% ,i%
    hWnd% = handle(0)
    width 0,100 : height 0,100
    dll_on "user32"
    HDC_Bureau% = dll_call1("GetDC",0) : ' Handle Device Control du Bureau
    dll_off
    dll_on "GDI32"
    for i% = 1 to screen_x step 20
        ret% = dll_call4("MoveToEx",HDC_Bureau%,i%,0,0)
        ret% = dll_call3("LineTo",HDC_Bureau%,i%,screen_y)
    next i%
    for i% = 1 to screen_y step 20
        ret% = dll_call4("MoveToEx",HDC_Bureau%,0,i%,0)
        ret% = dll_call3("LineTo",HDC_Bureau%,screen_x,i%)
    next i%
    for i% = 1 to 25
        ret% = dll_call5("Ellipse",HDC_Bureau%,i%*10,i%*10,i%*20,i%*25)
        ret% = dll_call5("Ellipse",HDC_Bureau%,1000-i%*10,i%*10,1000-i%*20,i%*25)
        ret% = dll_call5("Ellipse",HDC_Bureau%,i%*10,1000-i%*10,i%*20,1000-i%*25)
        ret% = dll_call5("Ellipse",HDC_Bureau%,1000-i%*10,1000-i%*10,1000-i%*20,1000-i%*25)
    next i%
    dll_off
    dll_on "user32"
    ret% = dll_call2("ReleaseDC",0,HDC_Bureau%)
    dll_off

END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyJeu 28 Avr 2016 - 21:45

Bof ! un peu chargé à mon goût...
et il manque la glace dans les cornets.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 7:53

Hier soir, j'ai pensé que JL35 et Papydall devraient s'allier pour écrire sur le bureau, et ce matin je découvre qu'on y est presque.
Je me disais qu'avec l'astuce de JL35 et les dll systèmes de Papydall, on pourrait reproduire les bulles qui se baladent sur un écran de veille...

Je vois qu'on s'en rapproche.

A+

Au fait,  JL35, j'ai super bien dormis... Very Happy
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 13:14

Petit canaillou !
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 14:07

Non, pas petit, GRAND CANAILLOU ! Very Happy
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Une grille sur l'écran Empty
MessageSujet: re   Une grille sur l'écran EmptyVen 29 Avr 2016 - 14:19

Là, je crois que l' on se vaut tous... Laughing
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 15:09

Tous, c'est vrai, sauf moi, sérieux comme un pape !

Si ça t'amuse Jean Claude (euh, à part le reste...), une petite sub pour reporter l'image d'un Picture sur l'écran total:
Code:
HIDE 0

PICTURE 10: WIDTH 10,30: HEIGHT 10,30
  2D_TARGET_IS 10: COLOR 10,0,255,0: 2D_FILL_COLOR 0,0,0: ' transparence = noir
  2D_RECTANGLE 2,2,WIDTH(10)-2,HEIGHT(10)-2: ' carré noir central
  2D_PEN_WIDTH 3
  2D_PEN_COLOR 255,0,0: 2D_LINE 0,0,30,30
  2D_PEN_COLOR 0,0,255: 2D_LINE 0,30,30,0
  
Report(10,5): ' report de l'image du picture 10 sur l'écran, avec zoom x5

WHILE SCANCODE = 0: PAUSE 100: SCANCODE = 0: END_WHILE: ' clic pour sortir
TERMINATE
' ==============================================================================
SUB Report(p%,zoom%)
  ' Report de l'image du picture p% sur l'écran principal, x facteur zoom%
  ' Couleur de transparence: noir
  ' L'image est centrée sur l'écran
  DIM_LOCAL f%,xd%,yd%,x1%,y1%,x%,y%,r%,g%,b%
  f% = 900: WHILE OBJECT_EXISTS(f%)=1: f%=f%+1: END_WHILE
  xd% = (SCREEN_X-zoom%*WIDTH(p%))/2: yd% = (SCREEN_Y-zoom%*HEIGHT(p%))/2: ' centré
  FOR y1% = 0 TO HEIGHT(p%)-1
      y% = yd%+y1%*zoom%
      FOR x1% = 0 TO WIDTH(p%)-1
          r%=COLOR_PIXEL_RED(p%,x1%,y1%): g%=COLOR_PIXEL_GREEN(p%,x1%,y1%)
          b%=COLOR_PIXEL_BLUE(p%,x1%,y1%)
          IF r%<>0 OR g%<>0 OR b%<>0
              x% = xd%+x1%*zoom%
              f% = f%+1
              FORM f%: HIDE f%: BORDER_HIDE f%: TOP f%,y%: LEFT f%,x%: WIDTH f%,zoom%
                       HEIGHT f%,zoom%: COLOR f%,r%,g%,b%: SHOW f%
          END_IF
      NEXT x1%
  NEXT y1%
END_SUB
' ==============================================================================

L'image (contenu) d'un Picture est reportée intégralement sur l'écran/
Le principe est le même que ci-dessus: 1 pixel -> 1 Form
La recopie sera centrée sur l'écran.
Il y a un facteur de zoom appliqué, de 1 à n, dans le cas d'amplification les pixels seront transformés en carrés de la taille voulue.
La couleur de transparence appliquée est le noir absolu, comme pour les sprites.
Comme d'hab, un clic pour quitter.

Quelques remarques, quand même:
- J'ai choisi de centrer la copie, mais on peut l'afficher où on veut.
- Le temps d'exécution est assez long, avec plein de papillotements (affichages temporaires des Forms), et dépend d'abord des dimensions de l'image initiale, et du nombre de pixels actifs (non transparents), le facteur de zoom n'intervient pas, mais plus il est fort, plus l'image est dégradée (gros carrés).
- On pourrait imaginer d'afficher du texte de cette façon (écrit préalablement dans le picture source avec transparence noire), mais je pense que ça deviendrait vite prohibitif: Jean Claude il faudra que tu t'y prennes la veille pour le lendemain, pour afficher sur le pc de ton épouse: 'Momentanément hors service', avec les conséquences qu'on peut imaginer. Very Happy


Dernière édition par JL35 le Ven 29 Avr 2016 - 17:15, édité 1 fois
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2677
Date d'inscription : 13/09/2009

Une grille sur l'écran Empty
MessageSujet: +++   Une grille sur l'écran EmptyVen 29 Avr 2016 - 16:11

Alors là, bravo pour toutes ces inscriptions qui vadrouillent sur l'écran !
C'est carrément martien !
Laughing Laughing alien alien alien Laughing Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 16:42

J'ai mis un display avant l'appel de la sub report.
Il n'y a plus de scintillements, on ne voit plus que le traçage sur l'écran. Bien sûr, il faut attendre avant de faire quoi que se soit, pas de clic, pas d'appuis sur un touche, sinon on ne verra pas le dessin.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7089
Localisation : 77
Date d'inscription : 29/11/2007

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 17:05

Tiens bizarre ! j'ai eu une fausse joie en te lisant, mais non seulement je ne vois pas ce qu'un display peut provoquer, mais expérience faite chez moi ça ne change rien du tout, j'ai toujours l'affichage provisoire des forms qui sautille !

Tu dis bien, dans l'ordre:
display
Report(10,5)
?

PS ça scintille moins si je fais dans la sub
FORM f%: HIDE f%: BORDER...
et après le COLOR f%,r%,g%,b%: SHOW f%
On n'a plus le scintillement au niveau du dessin, seulement dans le coin supérieur gauche. Je fais cette modif ci-dessus.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran EmptyVen 29 Avr 2016 - 17:15

Ben je n'y comprend plus rien.
Le display ne marche plus Question Question Question . Bon, fausse alerte.

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Une grille sur l'écran Empty
MessageSujet: Re: Une grille sur l'écran   Une grille sur l'écran Empty

Revenir en haut Aller en bas
 
Une grille sur l'écran
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» grille 3D
» Combien de triangles y a-t-il sur cette grille ?
» Grille sur le bureau
» Résoudre une grille de SUDOKU
» Une grille en caractères graphiques

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: