Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: 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 | |
|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: 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 | |
|
Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: 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.
| |
|
Contenu sponsorisé
| Sujet: Re: Changer un fond d'écran sans visualiser son effacement. | |
| |
|