FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Fonctionnement du caret_x_position(N)
par Jack Hier à 20:36

» Problèmes en cours.
par Jack Hier à 20:31

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 19:55

» Exemple d'une nouvelle version d'un GRID
par Minibug Hier à 17:36

» Comment faire fonctionner \qj en RTF ?
par jjn4 Mer 12 Déc 2018 - 19:25

» Mais où est donc passé Klaus ?!
par Jicehel Mer 12 Déc 2018 - 13:38

» Problème avec SaveStringList.
par Klaus Mer 12 Déc 2018 - 12:14

» Je suis de retour !
par Klaus Mer 12 Déc 2018 - 12:10

» Connexion au forum
par mindstorm Mer 5 Déc 2018 - 19:09

» Version instantanée V 0.9.29i5 du 17/11/2018
par silverman Ven 30 Nov 2018 - 10:37

» imprimer avec Print.dll
par JL35 Jeu 29 Nov 2018 - 21:33

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
par Minibug Dim 25 Nov 2018 - 15:37

» Impression de documents
par JL35 Ven 23 Nov 2018 - 19:45

» Logiciel de soutien scolaire.
par Marc Jeu 22 Nov 2018 - 20:51

» Logiciel de soutien en langues.
par Marc Jeu 22 Nov 2018 - 19:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Changer un fond d'écran sans visualiser son effacement.

Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 1226
Date d'inscription : 19/01/2014

MessageSujet: Changer un fond d'écran sans visualiser son effacement.   Dim 30 Sep 2018 - 19:38

Bonsoir.

Je cherchais le meilleur moyen de mettre à jour un écran, sans pour autant visualiser son effacement.
J'ai trouvé une solution par la création d'un second picture.

Qu'en pensez-vous ?

Avez-vous une autre solution ?

Code:
' Version du 30 sept 2018.

dim k%

maximize 0

picture 1
full_space 1
file_load 1,"c:\planetarium\fonds\fond1.jpg"
2d_target_is 1

create_hide
picture 2
width 2,width_client(1)
height 2,height_client(1)
left 2,-2000
top 2,0
create_show

for k%=1 to 100
    2d_circle rnd(1000),rnd(1000),10
next k%

file_save 1,"c:\a\carte.bmp"
file_load 2,"c:\a\carte.bmp"

wait 2000

hide 1
left 2,0
show 2
2d_clear
file_load 1,"c:\planetarium\fonds\fond1.jpg"
for k%=1 to 25
    2d_circle rnd(1000),rnd(1000),5
next k%

hide 2
show 1

Je viens de trouver une meilleure solution:

Code:
' Version du 30 sept 2018.

dim k%

maximize 0

picture 1
full_space 1
file_load 1,"c:\planetarium\fonds\fond1.jpg"
2d_target_is 1

image 2

for k%=1 to 100
    2d_circle rnd(1000),rnd(1000),10
next k%

2d_image_copy 2,0,0,width_client(1),height_client(1)

wait 2000

hide 1
2d_image_paste 2,0,0

2d_clear
file_load 1,"c:\planetarium\fonds\fond1.jpg"
for k%=1 to 25
    2d_circle rnd(1000),rnd(1000),5
next k%

show 1
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 724
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Changer un fond d'écran sans visualiser son effacement.   Lun 1 Oct 2018 - 12:09

Je te propose cette solution:
Code:
' principe : pour éviter des clignotements, on retaille l'image de fond à la taille des "width_client/height" du plus grand picture possible
'            ensuite, on "2d_image_paste" l'image retaillé dans un picture, pour dessiner dessus

dim k% , s$ , c$ , new_image

maximize 0

s$="c:\planetarium\fonds\fond1.jpg"
c$="c:\planetarium\fonds\new_fond1.jpg"

new_image=get_image(s$,c$)  :' retaille l'image de fond à la taille des xxx_client du plus grand picture possible

picture 12 : full_space 12 : FILE_LOAD 12,c$  :'  charge l'image retaillé !

2d_target_is 12


' fond d'ecran 1
2d_image_paste new_image,0,0
for k%=1 to 100
    2d_circle rnd(1000),rnd(1000),10
next k%

wait 1000

' fond d'ecran 2
2d_image_paste new_image,0,0
for k%=1 to 25
    2d_circle rnd(1000),rnd(1000),5
next k%



END
fnc get_image(src$,cibl$)
 dim_local fnc_frm,fnc_pic,fnc_ima
   fnc_frm=0
   repeat
      fnc_frm=fnc_frm+1
   until object_exists(fnc_frm)=0
   form fnc_frm : border_hide fnc_frm : full_space fnc_frm : hide fnc_frm
   command_target_is fnc_frm
   '
   fnc_pic=fnc_frm
   repeat
      fnc_pic=fnc_pic+1
   until object_exists(fnc_pic)=0
   picture fnc_pic : full_space fnc_pic : file_load fnc_pic,src$
   2d_target_is fnc_pic
   '
   fnc_ima=fnc_pic
   repeat
      fnc_ima=fnc_ima+1
   until object_exists(fnc_ima)=0
   image fnc_ima : 2d_image_copy fnc_ima,0,0,width_client(fnc_pic),height_client(fnc_pic)
   '
   if file_exists(cibl$)=0
      file_save fnc_ima,cibl$
   end_if
   command_target_is 0 : delete fnc_frm
   result fnc_ima  
end_fnc

ou celle là (moins pratique):

Code:
dim k%,wi%,hi%,f$
f$="c:\planetarium\fonds\fond1.jpg"

Dimima(f$)
width 0,wi% : height 0,hi% :' pas de clignotement si le form est plus petit ou égal à la taille de l'image contenu dans le picture

' maximize 0

' fabrique un picture d'affichage
create_hide
   picture 10
create_show
full_space 10 : file_load 10,f$ : show 10 : 2d_target_is 10

image 2 : 2d_image_copy 2,0,0,wi%,hi%


' fond d'ecran 1
2d_image_paste 2,0,0
for k%=1 to 100
    2d_circle rnd(1000),rnd(1000),10
next k%

wait 1000

' fond d'ecran 2
2d_image_paste 2,0,0
for k%=1 to 25
    2d_circle rnd(1000),rnd(1000),5
next k%


END
SUB Dimima(f$)
    ' sub de JL35
    ' Image JPG ou BMP exclusivement, dimensions rendues dans wi% et hi%
   DIM_LOCAL fm$: fm$ = "C:\TEMP\Provy.bmp"
   create_hide
      PICTURE 199
   create_show
   FILE_LOAD 199,f$: FILE_SAVE 199,fm$: DELETE 199
   FILEBIN_OPEN_READ 1,fm$
      FILEBIN_POSITION 1,18: wi% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
      FILEBIN_POSITION 1,22: hi% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
   FILEBIN_CLOSE 1
   FILE_DELETE fm$
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

Nombre de messages : 1226
Date d'inscription : 19/01/2014

MessageSujet: Changer un fond d'écran sans visualiser son effacement.   Mar 2 Oct 2018 - 9:02

Bonjour.

Merci Silverman pour ces deux solutions.

Je vais voir s'il est possible de les appliquer dans mon logiciel de planétarium.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Changer un fond d'écran sans visualiser son effacement.   

Revenir en haut Aller en bas
 
Changer un fond d'écran sans visualiser son effacement.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Changer la couleur de fond de cellule sans colorer sa page d'accueil
» Des minions pour fond d'écran, c'est possible ?
» Changer le fond de mon forum
» Changer le fond dans la version mobile
» Comment changer le fond ?

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: