Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Outils couleurs | |
|
+3Jean Claude silverman Yannick 7 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 18:03 | |
| Je vais faire mieux. Je vais te mettre le dossier de travail complet. Heu...je vais y faire ménage avant, une chatte n' y retrouverait pas ses petits. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 18:08 | |
| C' est fait. Tu le trouveras à "Outils couleurs.zip" sur la page d' entrée. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Outils couleurs Dim 21 Mai 2017 - 18:15 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 19:21 | |
| @ Marc 37,
Le problème vient du calcul de X dans la procédure TSL > RGB Les résultats sont très bizarres. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Outils couleurs Dim 21 Mai 2017 - 19:33 | |
| Je travaille en pointillés... Désolé !
Là, je pars manger. Je reprendrai ce soir si je peux.
En tout cas, tu as un oubli dans le cas ou le calcul de la teinte devient négatif : il faut lui ajouter impérativement 360°
Si TSL_T est négatif, il faut ajouter +360.
Ajoute la ligne :
IF TSL_T < 0 then TSL_T = TSL_T + 360
juste après la ligne 382.
Bon appétit ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Outils couleurs Dim 21 Mai 2017 - 19:45 | |
| Il suffit d'utiliser la fonction WRAP_VALUEExemple : - Code:
-
print wrap_value(-30) : ' <---- 330
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 19:50 | |
| Re Merci Papydall ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 19:59 | |
| Même si je n' ai pas tout compris, Papydall vient de me sauver la mise. La formule de calcule prise sur le lien a un défaut pour le calcul de X dans le sens TSL > RGB la page dit : C*mod(i,2) sur une autre qui calcule à peu près de la même façon j' ai trouvé ceci que Papydal m' a gentillement traduit en Panoramic et cela donne : X = c*(1-abs(mod(i,2)-1)) et là les résultats sont cohérent même si il y a toujours un petit écart du aux arrondis. Un grand merci à Papydall et Marc 37 et tous les autres pour leur aide sur cet outils.
Dernière édition par Yannick le Dim 21 Mai 2017 - 20:08, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 20:07 | |
| Le source de l' outils qui affiche ce qu' on lui demande : - Code:
-
dim no%,i% dim r%,g%,b% dim EtatStandByPalette% dim ColPerso%(16) dim FenPaletteCouleur% : no%=no%+1 : FenPaletteCouleur%=no% dim ContPalette% : no%=no%+1 : ContPalette%=no% dim PictPalWindows%(48): for i%=1 to 48 : no%=no%+1 : PictPalWindows%(i%)=no% : next i% dim AlphPalette%(2) : for i%=1 to 2 : no%=no%+1 : AlphPalette%(i%)=no% : next i% dim PictPalPerso%(16) : for i%=1 to 16 : no%=no%+1 : PictPalPerso%(i%)=no% : next i% dim PictPalette% : no%=no%+1 : PictPalette%=no% dim PictChxPalette% : no%=no%+1 : PictChxPalette%=no% dim SpnPalette%(3) : for i%=1 to 3 : no%=no%+1 : SpnPalette%(i%)=no% : next i% dim AlphPalConvert%(3) : for i%=1 to 3 : no%=no%+1 : AlphPalConvert%(i%)=no% : next i% dim PictTSVpalette% : no%=no%+1 : PictTSVpalette%=no%
label MouseMoveCadre label MouseMovePalette label ClicBtn label ClicPalWindows label ClicPalPerso label DClicPictChxPalette label DClicPalPerso label Change button 9999 top 9999,10 left 9999,10 caption 9999,"Outils couleurs" on_click 9999,ClicBtn end
sub FormPalette() dim_local i%,l%,t%,x%,y%,V$ if object_exists(FenPaletteCouleur%)=1 show FenPaletteCouleur% else create_hide form FenPaletteCouleur% border_small FenPaletteCouleur% height FenPaletteCouleur%,305 width FenPaletteCouleur%,450 top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 caption FenPaletteCouleur%,"Outils couleurs" font_name FenPaletteCouleur%,"Arial" font_size FenPaletteCouleur%,8 font_color FenPaletteCouleur%,85,85,127 container ContPalette% parent ContPalette%,FenPaletteCouleur% height ContPalette%,height_client(FenPaletteCouleur%)-5 width ContPalette%,width_client(FenPaletteCouleur%)-10 top ContPalette%,0 left ContPalette%,5 on_mouse_move ContPalette%,MouseMoveCadre alpha AlphPalette%(1) parent AlphPalette%(1),ContPalette% top AlphPalette%(1),15 left AlphPalette%(1),5 caption AlphPalette%(1),"Couleurs Windows :" l%=5 for x%=1 to 8 t%=top(AlphPalette%(1))+height(AlphPalette%(1))+5 for y%=1 to 6 i%=i%+1 picture PictPalWindows%(i%) parent PictPalWindows%(i%),ContPalette% height PictPalWindows%(i%),20 width PictPalWindows%(i%),20 top PictPalWindows%(i%),t% left PictPalWindows%(i%),l% read V$ color PictPalWindows%(i%),hex(mid$(v$,1,2)),hex(mid$(v$,3,2)),hex(mid$(v$,5,2)) cursor_point PictPalWindows%(i%) on_click PictPalWindows%(i%),ClicPalWindows t%=t%+25 next y% l%=l%+25 next x% alpha AlphPalette%(2) parent AlphPalette%(2),ContPalette% top AlphPalette%(2),top(PictpalWindows%(48))+height(PictpalWindows%(48))+10 left AlphPalette%(2),5 caption AlphPalette%(2),"Couleurs Personnalisées :"
l%=5 i%=0 for x%=1 to 8 t%=top(AlphPalette%(2))+height(AlphPalette%(2))+5 for y%=1 to 2 i%=i%+1 picture PictPalPerso%(i%) parent PictPalPerso%(i%),ContPalette% height PictPalPerso%(i%),20 width PictPalPerso%(i%),20 top PictPalPerso%(i%),t% left PictPalPerso%(i%),l% color PictPalPerso%(i%),0,0,0 cursor_point PictPalPerso%(i%) hint PictPalPerso%(i%),"Clic pour sélectionner"+chr$(13)+"Double clic pour effacer" on_click PictPalPerso%(i%),ClicPalPerso on_double_click PictPalPerso%(i%),DClicPalPerso t%=t%+25 next y% l%=l%+25 next x%
picture PictPalette% parent PictPalette%,ContPalette% height PictPalette%,128 width PictPalette%,158 top PictPalette%,top(AlphPalette%(1))+height(AlphPalette%(1))+5 left PictPalette%,left(PictPalWindows%(48))+width(PictPalWindows%(48))+30 file_load PictPalette%,"palette.bmp" cursor_cross PictPalette% on_mouse_move PictPalette%,MouseMovePalette on_click PictPalette%,ClicBtn picture PictTSVpalette% parent PictTSVpalette%,ContPalette% height PictTSVpalette%,128 width PictTSVpalette%,15 top PictTSVpalette%,top(PictPalette%) left PictTSVpalette%,left(PictPalette%)+width(PictPalette%)+5 ColorPictTSVpalette(0,0,0) picture PictChxPalette% parent PictChxPalette%,ContPalette% height PictChxPalette%,22 width PictChxPalette%,22 top PictChxPalette%,top(PictPalette%)+height(PictPalette%)+5 left PictChxPalette%,left(PictPalette%) color PictChxPalette%,0,0,0 cursor_point PictChxPalette% hint PictChxPalette%,"Cliquer pour convertir"+chr$(13)+"Double clic pour sauvegarder dans les couleurs personnalisées" on_click PictChxPalette%,ClicBtn on_double_click PictChxPalette%,DClicPictChxPalette t%=top(PictChxPalette%) l%=left(PictChxPalette%)+width(PictChxPalette%)+5 for i%=1 to 3 spin SpnPalette%(i%) parent SpnPalette%(i%),ContPalette% width SpnPalette%(i%),45 top SpnPalette%(i%),t% left SpnPalette%(i%),l% l%=l%+width(SpnPalette%(i%))+5 font_color SpnPalette%(i%),255,255,255 min SpnPalette%(i%),0 max SpnPalette%(i%),255 next i% color SpnPalette%(1),255,0,0 color SpnPalette%(2),0,180,0 color SpnPalette%(3),0,0,255 alpha AlphPalConvert%(1) parent AlphPalConvert%(1),ContPalette% caption AlphPalConvert%(1),"RGB => " top AlphPalConvert%(1),top(SpnPalette%(1))+height(SpnPalette%(1))+10 left AlphPalConvert%(1),left(PictChxPalette%) alpha AlphPalConvert%(2) parent AlphPalConvert%(2),ContPalette% caption AlphPalConvert%(2),"HTML => " top AlphPalConvert%(2),top(AlphPalConvert%(1))+height(AlphPalConvert%(1))+5 left AlphPalConvert%(2),left(PictChxPalette%) alpha AlphPalConvert%(3) parent AlphPalConvert%(3),ContPalette% caption AlphPalConvert%(3),"KGF => " top AlphPalConvert%(3),top(AlphPalConvert%(2))+height(AlphPalConvert%(2))+5 left AlphPalConvert%(3),left(PictChxPalette%) create_show top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 show_all end_if for i%=1 to 16 if ColPerso%(i%)<>0 r%= bin_and(ColPerso%(i%),255) g%= bin_and(int(ColPerso%(i%)/256),255) b%= bin_and(int(ColPerso%(i%)/(256*256)),255) color PictPalPerso%(i%),r%,g%,b% end_if next i% end_sub
Change: if number_change>(SpnPalette%(1)-1) and number_change<(SpnPalette%(3)+1) if position(number_change)>255 or position(number_change)<0 message "Valeur incorrecte !"+chr$(13)+"Valeur de 0 et 255" position number_change,255 return end_if color PictChxPalette%,position(SpnPalette%(1)),position(SpnPalette%(2)),position(SpnPalette%(3)) return end_if return
MouseMovePalette: off_mouse_move PictPalette% if mouse_x_position(PictPalette%)<0 or mouse_y_position(PictPalette%)<0 return end_if if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if r%=color_pixel_red(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) g%=color_pixel_green(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) b%=color_pixel_blue(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% on_mouse_move PictPalette%,MouseMovePalette return
MouseMoveCadre: if object_exists(SpnPalette%(1))=1 : on_change SpnPalette%(1),Change : end_if if object_exists(SpnPalette%(2))=1 : on_change SpnPalette%(2),Change : end_if if object_exists(SpnPalette%(3))=1 : on_change SpnPalette%(3),Change : end_if return
ClicBtn: if number_click = 9999 FormPalette() return end_if if number_click = PictPalette% if EtatStandByPalette%=0 EtatStandByPalette%=1 off_mouse_move PictPalette% ColorPictTSVpalette(R%,G%,B%) cursor_default PictPalette% else EtatStandByPalette%=0 on_mouse_move PictPalette%,MouseMovePalette cursor_cross PictPalette% end_if return end_if if number_click = PictChxPalette% r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) ConvertChxPalette(r%,g%,b%) return end_if return
DClicPictChxPalette: r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) SaveColorPerso(r%,g%,b%) return
sub SaveColorPerso(r1%,g1%,b1%) dim_local i% for i%=1 to 16 if ColPerso%(i%)=0 ColPerso%(i%)=(b1%*256+g1%)*256+r1% color PictPalPerso%(i%),r1%,g1%,b1% exit_for end_if next i% end_sub
ClicPalWindows: off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% return
ClicPalPerso: if mouse_left_down(number_click)=1 off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% else message "Raté !!" end_if return
DClicPalPerso: color number_double_click,0,0,0 InitColPerso() return
sub InitColPerso() dim_local i% for i%=1 to 16 if number_double_click = PictPalPerso%(i%) ColPerso%(i%)=0 end_if next i% end_sub
sub ConvertChxPalette(R1%,G1%,B1%) dim_local RH$,GH$,BH$,KGFc$ RH$ = Hex$(R1%) : if R1% < 16 then RH$ = "0" + RH$ GH$ = Hex$(G1%) : if G1% < 16 then GH$ = "0" + GH$ BH$ = Hex$(B1%) : if B1% < 16 then BH$ = "0" + BH$ KGFc$ = str$((B1%*256+G1%)*256+R1%) caption AlphPalConvert%(1),"RGB => "+str$(R1%)+","+str$(G1%)+","+str$(B1%) caption AlphPalConvert%(2),"HTML => "+RH$+GH$+BH$ caption AlphPalConvert%(3),"KGF => "+KGFc$ end_sub
sub ColorPictTSVpalette(R1%,V1%,B1%) dim_local i%,T,S,L,R%,V%,B%,x%
R%=R1% : V%=V1% : B%=B1% RGBtoTSL(R%,V%,B%) T=TSL_T : S=TSL_S cls 2d_target_is PictTSVpalette% for i%=1 to 127 if i%>100 L=100 else L=i% end_if TSLtoRGB(T,S,L) if RGB_R%>-1 and RGB_G%>-1 and RGB_B%>-1 if RGB_R%<256 and RGB_G%<256 and RGB_B%<256 2d_pen_color RGB_R%,RGB_G%,RGB_B% 2d_line 1,i%,15,i% end_if end_if next i% end_sub
sub RGBtoTSL(R%,V%,B%) dim_local i%,Mx%,Mx1%,Mn%,Mn1%,C%,t$,x% if variable("TSL_T")=0 then dim TSL_T if variable("TSL_S")=0 then dim TSL_S if variable("TSL_L")=0 then dim TSL_L Mx1% = Max(R%,V%) if Mx1% = R% : Mx% = Max(R%,B%) : else : Mx% = Max(V%,B%) : end_if Mn1% = Min(R%,V%) if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if C% = Mx%-Mn% if Mx% = R% if C%>0 : TSL_T = 60*mod(((V%-B%)/C%),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if else if Mx% = V% if C%>0 : TSL_T = 60*(((B%-R%)/C%)+2) : else : TSL_T = 60*((B%-R%)+2) : end_if else if C%>0 : TSL_T = 60*(((R%-V%)/C%)+4) : else : TSL_T = 60*((R%-V%)+4) : end_if end_if end_if if TSL_T<0 : TSL_T=wrap_value(TSL_T) : end_if if C%>0 : TSL_S = 100*(C%/Mx%) : else : TSL_S = 0 : end_if t$=str$(frac(TSL_S))+"00" t$=left$(t$,2) if val(t$)>50 TSL_S=int(TSL_S)+1 : else : TSL_S=int(TSL_S) end_if if Mx%>0 : TSL_L = 100*(Mx%/255): else : TSL_L = 0 : end_if t$=str$(frac(TSL_L))+"00" t$=left$(t$,2) if val(t$)>50 TSL_L=int(TSL_L)+1 : else : TSL_L=int(TSL_L) end_if end_sub
sub TSLtoRGB(T,S,L) dim_local i,Mx,Mm,C,X
if variable("RGB_R%")=0 then dim RGB_R% if variable("RGB_G%")=0 then dim RGB_G% if variable("RGB_B%")=0 then dim RGB_B% Mx = L*255/100 Mm = (100-S)*L*(255/10000) C = Mx-Mm i = T/60 X = C*(1-abs(mod(i,2)-1)) if i<1 RGB_R% = int(C+Mm) RGB_G% = int(X+Mm) RGB_B% = int(Mm) else if i>0.99 and i<2 RGB_R% = int(X+Mm) RGB_G% = int(C+Mm) RGB_B% = int(Mm) else if i>1.99 and i<3 RGB_R% = int(Mm) RGB_G% = int(C+Mm) RGB_B% = int(X+Mm) else if i>2.99 and i<4 RGB_R% = int(Mm) RGB_G% = int(X+Mm) RGB_B% = int(C+Mm) else if i>3.99 and i<5 RGB_R% = int(X+Mm) RGB_G% = int(Mm) RGB_B% = int(C+Mm) else RGB_R% = int(C+Mm) RGB_G% = int(Mm) RGB_B% = int(X+Mm) end_if end_if end_if end_if end_if end_sub
DATA "FF8080","FFFF80","80FF80","00FF80","80FFFF","0080FF","FF80C0","FF80FF" DATA "FF0000","FFFF00","80FF00","00FF40","00FFFF","0080C0","8080C0","FF00FF" DATA "804040","FF8040","00FF00","008080","004080","8080FF","800040","FF0080" DATA "800000","FF8000","008000","008040","0000FF","0000A0","800080","8000FF" DATA "400000","804000","004000","004040","000080","000040","400040","400080" DATA "000000","808000","808040","808080","408080","C0C0C0","400040","FFFFFF" Reste plus qu' à coder la récupération d' une couleur sur cette barre de luminosité. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Mai 2017 - 21:18 | |
| Avec la sélection possible dans la barre de luminosité. - Code:
-
dim no%,i% dim r%,g%,b% dim EtatStandByPalette% dim EtatStandByTSL% dim ColPerso%(16) dim FenPaletteCouleur% : no%=no%+1 : FenPaletteCouleur%=no% dim ContPalette% : no%=no%+1 : ContPalette%=no% dim PictPalWindows%(48): for i%=1 to 48 : no%=no%+1 : PictPalWindows%(i%)=no% : next i% dim AlphPalette%(2) : for i%=1 to 2 : no%=no%+1 : AlphPalette%(i%)=no% : next i% dim PictPalPerso%(16) : for i%=1 to 16 : no%=no%+1 : PictPalPerso%(i%)=no% : next i% dim PictPalette% : no%=no%+1 : PictPalette%=no% dim PictChxPalette% : no%=no%+1 : PictChxPalette%=no% dim SpnPalette%(3) : for i%=1 to 3 : no%=no%+1 : SpnPalette%(i%)=no% : next i% dim AlphPalConvert%(3) : for i%=1 to 3 : no%=no%+1 : AlphPalConvert%(i%)=no% : next i% dim PictTSVpalette% : no%=no%+1 : PictTSVpalette%=no% dim Puce% : no%=no%+1 : Puce%=no%
label MouseMoveCadre label MouseMovePalette label ClicBtn label ClicPalWindows label ClicPalPerso label DClicPictChxPalette label DClicPalPerso label Change label MouseMoveTSVpalette button 9999 top 9999,10 left 9999,10 caption 9999,"Outils couleurs" on_click 9999,ClicBtn end
sub FormPalette() dim_local i%,l%,t%,x%,y%,V$ if object_exists(FenPaletteCouleur%)=1 show FenPaletteCouleur% else create_hide form FenPaletteCouleur% border_small FenPaletteCouleur% height FenPaletteCouleur%,305 width FenPaletteCouleur%,450 top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 caption FenPaletteCouleur%,"Outils couleurs" font_name FenPaletteCouleur%,"Arial" font_size FenPaletteCouleur%,8 font_color FenPaletteCouleur%,85,85,127 container ContPalette% parent ContPalette%,FenPaletteCouleur% height ContPalette%,height_client(FenPaletteCouleur%)-5 width ContPalette%,width_client(FenPaletteCouleur%)-10 top ContPalette%,0 left ContPalette%,5 on_mouse_move ContPalette%,MouseMoveCadre alpha AlphPalette%(1) parent AlphPalette%(1),ContPalette% top AlphPalette%(1),15 left AlphPalette%(1),5 caption AlphPalette%(1),"Couleurs Windows :" l%=5 for x%=1 to 8 t%=top(AlphPalette%(1))+height(AlphPalette%(1))+5 for y%=1 to 6 i%=i%+1 picture PictPalWindows%(i%) parent PictPalWindows%(i%),ContPalette% height PictPalWindows%(i%),20 width PictPalWindows%(i%),20 top PictPalWindows%(i%),t% left PictPalWindows%(i%),l% read V$ color PictPalWindows%(i%),hex(mid$(v$,1,2)),hex(mid$(v$,3,2)),hex(mid$(v$,5,2)) cursor_point PictPalWindows%(i%) on_click PictPalWindows%(i%),ClicPalWindows t%=t%+25 next y% l%=l%+25 next x% alpha AlphPalette%(2) parent AlphPalette%(2),ContPalette% top AlphPalette%(2),top(PictpalWindows%(48))+height(PictpalWindows%(48))+10 left AlphPalette%(2),5 caption AlphPalette%(2),"Couleurs Personnalisées :"
l%=5 i%=0 for x%=1 to 8 t%=top(AlphPalette%(2))+height(AlphPalette%(2))+5 for y%=1 to 2 i%=i%+1 picture PictPalPerso%(i%) parent PictPalPerso%(i%),ContPalette% height PictPalPerso%(i%),20 width PictPalPerso%(i%),20 top PictPalPerso%(i%),t% left PictPalPerso%(i%),l% color PictPalPerso%(i%),0,0,0 cursor_point PictPalPerso%(i%) hint PictPalPerso%(i%),"Clic pour sélectionner"+chr$(13)+"Double clic pour effacer" on_click PictPalPerso%(i%),ClicPalPerso on_double_click PictPalPerso%(i%),DClicPalPerso t%=t%+25 next y% l%=l%+25 next x%
picture PictPalette% parent PictPalette%,ContPalette% height PictPalette%,128 width PictPalette%,158 top PictPalette%,top(AlphPalette%(1))+height(AlphPalette%(1))+5 left PictPalette%,left(PictPalWindows%(48))+width(PictPalWindows%(48))+30 file_load PictPalette%,"palette.bmp" cursor_cross PictPalette% on_mouse_move PictPalette%,MouseMovePalette on_click PictPalette%,ClicBtn picture PictTSVpalette% parent PictTSVpalette%,ContPalette% height PictTSVpalette%,128 width PictTSVpalette%,15 top PictTSVpalette%,top(PictPalette%) left PictTSVpalette%,left(PictPalette%)+width(PictPalette%)+5 ColorPictTSVpalette(0,0,0) on_mouse_move PictTSVpalette%,MouseMoveTSVpalette on_click PictTSVpalette%,ClicBtn picture Puce% parent Puce%,ContPalette% height Puce%,9 width Puce%,5 top Puce%,top(PictTSVpalette%)-4 left Puce%,left(PictTSVpalette%)+width(PictTSVpalette%)+1 file_load Puce%,"puce1.bmp" picture PictChxPalette% parent PictChxPalette%,ContPalette% height PictChxPalette%,22 width PictChxPalette%,22 top PictChxPalette%,top(PictPalette%)+height(PictPalette%)+5 left PictChxPalette%,left(PictPalette%) color PictChxPalette%,0,0,0 cursor_point PictChxPalette% hint PictChxPalette%,"Cliquer pour convertir"+chr$(13)+"Double clic pour sauvegarder dans les couleurs personnalisées" on_click PictChxPalette%,ClicBtn on_double_click PictChxPalette%,DClicPictChxPalette t%=top(PictChxPalette%) l%=left(PictChxPalette%)+width(PictChxPalette%)+5 for i%=1 to 3 spin SpnPalette%(i%) parent SpnPalette%(i%),ContPalette% width SpnPalette%(i%),45 top SpnPalette%(i%),t% left SpnPalette%(i%),l% l%=l%+width(SpnPalette%(i%))+5 font_color SpnPalette%(i%),255,255,255 min SpnPalette%(i%),0 max SpnPalette%(i%),255 next i% color SpnPalette%(1),255,0,0 color SpnPalette%(2),0,180,0 color SpnPalette%(3),0,0,255 alpha AlphPalConvert%(1) parent AlphPalConvert%(1),ContPalette% caption AlphPalConvert%(1),"RGB => " top AlphPalConvert%(1),top(SpnPalette%(1))+height(SpnPalette%(1))+10 left AlphPalConvert%(1),left(PictChxPalette%) alpha AlphPalConvert%(2) parent AlphPalConvert%(2),ContPalette% caption AlphPalConvert%(2),"HTML => " top AlphPalConvert%(2),top(AlphPalConvert%(1))+height(AlphPalConvert%(1))+5 left AlphPalConvert%(2),left(PictChxPalette%) alpha AlphPalConvert%(3) parent AlphPalConvert%(3),ContPalette% caption AlphPalConvert%(3),"KGF => " top AlphPalConvert%(3),top(AlphPalConvert%(2))+height(AlphPalConvert%(2))+5 left AlphPalConvert%(3),left(PictChxPalette%) create_show top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 show_all end_if for i%=1 to 16 if ColPerso%(i%)<>0 r%= bin_and(ColPerso%(i%),255) g%= bin_and(int(ColPerso%(i%)/256),255) b%= bin_and(int(ColPerso%(i%)/(256*256)),255) color PictPalPerso%(i%),r%,g%,b% end_if next i% end_sub
Change: if number_change>(SpnPalette%(1)-1) and number_change<(SpnPalette%(3)+1) if position(number_change)>255 or position(number_change)<0 message "Valeur incorrecte !"+chr$(13)+"Valeur de 0 et 255" position number_change,255 return end_if color PictChxPalette%,position(SpnPalette%(1)),position(SpnPalette%(2)),position(SpnPalette%(3)) return end_if return
MouseMovePalette: off_mouse_move PictPalette% if mouse_x_position(PictPalette%)<0 or mouse_y_position(PictPalette%)<0 return end_if if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if r%=color_pixel_red(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) g%=color_pixel_green(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) b%=color_pixel_blue(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% on_mouse_move PictPalette%,MouseMovePalette return
MouseMoveCadre: if object_exists(SpnPalette%(1))=1 : on_change SpnPalette%(1),Change : end_if if object_exists(SpnPalette%(2))=1 : on_change SpnPalette%(2),Change : end_if if object_exists(SpnPalette%(3))=1 : on_change SpnPalette%(3),Change : end_if return
ClicBtn: if number_click = 9999 FormPalette() return end_if if number_click = PictPalette% if EtatStandByPalette%=0 EtatStandByPalette%=1 off_mouse_move PictPalette% ColorPictTSVpalette(R%,G%,B%) cursor_default PictPalette% else EtatStandByPalette%=0 on_mouse_move PictPalette%,MouseMovePalette cursor_cross PictPalette% end_if return end_if if number_click = PictChxPalette% r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) ConvertChxPalette(r%,g%,b%) return end_if if number_click = PictTSVpalette% if EtatStandByTSL% = 0 EtatStandByTSL% = 1 off_mouse_move PictTSVpalette% cursor_point PictTSVpalette% else EtatStandByTSL% = 0 on_mouse_move PictTSVpalette%,MouseMoveTSVpalette cursor_arrow PictTSVpalette% end_if return end_if return
DClicPictChxPalette: r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) SaveColorPerso(r%,g%,b%) return
sub SaveColorPerso(r1%,g1%,b1%) dim_local i% for i%=1 to 16 if ColPerso%(i%)=0 ColPerso%(i%)=(b1%*256+g1%)*256+r1% color PictPalPerso%(i%),r1%,g1%,b1% exit_for end_if next i% end_sub
ClicPalWindows: off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% return
ClicPalPerso: if mouse_left_down(number_click)=1 off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% else message "Raté !!" end_if return
DClicPalPerso: color number_double_click,0,0,0 InitColPerso() return
sub InitColPerso() dim_local i% for i%=1 to 16 if number_double_click = PictPalPerso%(i%) ColPerso%(i%)=0 end_if next i% end_sub
sub ConvertChxPalette(R1%,G1%,B1%) dim_local RH$,GH$,BH$,KGFc$ RH$ = Hex$(R1%) : if R1% < 16 then RH$ = "0" + RH$ GH$ = Hex$(G1%) : if G1% < 16 then GH$ = "0" + GH$ BH$ = Hex$(B1%) : if B1% < 16 then BH$ = "0" + BH$ KGFc$ = str$((B1%*256+G1%)*256+R1%) caption AlphPalConvert%(1),"RGB => "+str$(R1%)+","+str$(G1%)+","+str$(B1%) caption AlphPalConvert%(2),"HTML => "+RH$+GH$+BH$ caption AlphPalConvert%(3),"KGF => "+KGFc$ end_sub
sub ColorPictTSVpalette(R1%,V1%,B1%) dim_local i%,T,S,L,R%,V%,B%,x%
R%=R1% : V%=V1% : B%=B1% RGBtoTSL(R%,V%,B%) T=TSL_T : S=TSL_S cls 2d_target_is PictTSVpalette% for i%=1 to 127 if i%>100 L=100 else L=i% end_if TSLtoRGB(T,S,L) if RGB_R%>-1 and RGB_G%>-1 and RGB_B%>-1 if RGB_R%<256 and RGB_G%<256 and RGB_B%<256 2d_pen_color RGB_R%,RGB_G%,RGB_B% 2d_line 1,i%,15,i% end_if end_if next i% end_sub
sub RGBtoTSL(R%,V%,B%) dim_local i%,Mx%,Mx1%,Mn%,Mn1%,C%,t$,x% if variable("TSL_T")=0 then dim TSL_T if variable("TSL_S")=0 then dim TSL_S if variable("TSL_L")=0 then dim TSL_L Mx1% = Max(R%,V%) if Mx1% = R% : Mx% = Max(R%,B%) : else : Mx% = Max(V%,B%) : end_if Mn1% = Min(R%,V%) if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if C% = Mx%-Mn% if Mx% = R% if C%>0 : TSL_T = 60*mod(((V%-B%)/C%),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if else if Mx% = V% if C%>0 : TSL_T = 60*(((B%-R%)/C%)+2) : else : TSL_T = 60*((B%-R%)+2) : end_if else if C%>0 : TSL_T = 60*(((R%-V%)/C%)+4) : else : TSL_T = 60*((R%-V%)+4) : end_if end_if end_if if TSL_T<0 : TSL_T=wrap_value(TSL_T) : end_if if C%>0 : TSL_S = 100*(C%/Mx%) : else : TSL_S = 0 : end_if t$=str$(frac(TSL_S))+"00" t$=left$(t$,2) if val(t$)>50 TSL_S=int(TSL_S)+1 : else : TSL_S=int(TSL_S) end_if if Mx%>0 : TSL_L = 100*(Mx%/255): else : TSL_L = 0 : end_if t$=str$(frac(TSL_L))+"00" t$=left$(t$,2) if val(t$)>50 TSL_L=int(TSL_L)+1 : else : TSL_L=int(TSL_L) end_if end_sub
sub TSLtoRGB(T,S,L) dim_local i,Mx,Mm,C,X
if variable("RGB_R%")=0 then dim RGB_R% if variable("RGB_G%")=0 then dim RGB_G% if variable("RGB_B%")=0 then dim RGB_B% Mx = L*255/100 Mm = (100-S)*L*(255/10000) C = Mx-Mm i = T/60 X = C*(1-abs(mod(i,2)-1)) if i<1 RGB_R% = int(C+Mm) RGB_G% = int(X+Mm) RGB_B% = int(Mm) else if i>0.99 and i<2 RGB_R% = int(X+Mm) RGB_G% = int(C+Mm) RGB_B% = int(Mm) else if i>1.99 and i<3 RGB_R% = int(Mm) RGB_G% = int(C+Mm) RGB_B% = int(X+Mm) else if i>2.99 and i<4 RGB_R% = int(Mm) RGB_G% = int(X+Mm) RGB_B% = int(C+Mm) else if i>3.99 and i<5 RGB_R% = int(X+Mm) RGB_G% = int(Mm) RGB_B% = int(C+Mm) else RGB_R% = int(C+Mm) RGB_G% = int(Mm) RGB_B% = int(X+Mm) end_if end_if end_if end_if end_if end_sub
MouseMoveTSVpalette: off_mouse_move PictTSVpalette% if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if top puce%,top(PictTSVpalette%)+mouse_y_position(PictTSVpalette%)-4 r%=color_pixel_red(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) g%=color_pixel_green(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) b%=color_pixel_blue(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% on_mouse_move PictTSVpalette%,MouseMoveTSVpalette return
DATA "FF8080","FFFF80","80FF80","00FF80","80FFFF","0080FF","FF80C0","FF80FF" DATA "FF0000","FFFF00","80FF00","00FF40","00FFFF","0080C0","8080C0","FF00FF" DATA "804040","FF8040","00FF00","008080","004080","8080FF","800040","FF0080" DATA "800000","FF8000","008000","008040","0000FF","0000A0","800080","8000FF" DATA "400000","804000","004000","004040","000080","000040","400040","400080" DATA "000000","808000","808040","808080","408080","C0C0C0","400040","FFFFFF" | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Mai 2017 - 14:43 | |
| Voilà le visuel de l' outils couleurs final intégré dans Basic Editor : Pour intégrer cet objet dans n' importe quel programme, je vais en faire deux fichiers à intégrer avec la directive #INCLUDE. Le premier contenant tous les appels et l' autre les labels et procédures. Pensez que cet objet ait sa place dans le Mag ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Outils couleurs Lun 22 Mai 2017 - 15:56 | |
| - Citation :
- Pensez que cet objet ait sa place dans le Mag ?
Bah bien sûr qu'il a sa place !!! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 25 Mai 2017 - 12:21 | |
| @ Silverman, Ta méthode d' affichage comporte un gros problème : "Show_all". lorsque tu as plusieurs fenêtres qui se retrouve cachées par une fermeture par la croix ou un choix délibéré du programmeur par un bouton, lorsque tu ouvre une fenêtre elle sont toutes affichées. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Outils couleurs Jeu 25 Mai 2017 - 17:41 | |
| J'ai mis 'SHOW_ALL' parceque je n'ai pas étudié ton code. Remplace le par une série de SHOW obj... L'idée ne t'a pas effleuré? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 25 Mai 2017 - 18:22 | |
| Autant ne pas faire de hide, les objets vont s' afficher les uns après les autres.
Je vais tester une chose, create_hide et create_show avant et après form et show form en fin de création des objets. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 10 Juin 2017 - 17:31 | |
| Suite à des explications de Klaus et une base de Silverman, j' ai réussi à rendre mon "outils couleurs" indépendant. Le programme appelant lance l' outils et lorsque que l' utilisateur valide une couleur l' outils la renvoie au programme appelant et se ferme. Le source de l' outils : - Code:
-
hide 0 Variables() Constantes() Labels() Init() Gui() show 0 end
sub Variables() dim ReceiveHnd% : ReceiveHnd% = val(Param_value$(1)) dim no% dim Langue% dim r%,g%,b% dim EtatStandByPalette% dim EtatStandByTSL% dim ColPerso%(16) dim event_index% dim user32% end_sub
sub Constantes() dim_local i% ' DOSSIERS dim Path$ : Path$ = dir_current$ if right$(Path$,1)="" : Path$ = left$(Path$,len(path$)-1) : end_if Path$ = Path$+"" ' FICHIERS dim Palette$ : Palette$ = Path$+"Palette.bmp" dim Palette2$ : Palette2$ = Path$+"Palette2.bmp" dim ImgBtnPalette$ : ImgBtnPalette$ = Path$+"Write.bmp" ' OBJETS dim FenPaletteCouleur% : FenPaletteCouleur%=0 dim ContPalette% : no%=no%+1 : ContPalette%=no% dim PictPalWindows%(48): for i%=1 to 48 : no%=no%+1 : PictPalWindows%(i%)=no% : next i% dim AlphPalette%(2) : for i%=1 to 2 : no%=no%+1 : AlphPalette%(i%)=no% : next i% dim PictPalPerso%(16) : for i%=1 to 16 : no%=no%+1 : PictPalPerso%(i%)=no% : next i% dim PictPalette% : no%=no%+1 : PictPalette%=no% dim PictChxPalette% : no%=no%+1 : PictChxPalette%=no% dim SpnPalette%(3) : for i%=1 to 3 : no%=no%+1 : SpnPalette%(i%)=no% : next i% dim ContOptCOnvert% : no%=no%+1 : ContOptCOnvert%=no% dim AlphPalConvert%(3) : for i%=1 to 3 : no%=no%+1 : AlphPalConvert%(i%)=no% : next i% dim BtnPalConvert% : no%=no%+1 : BtnPalConvert%=no% dim PictTSVpalette% : no%=no%+1 : PictTSVpalette%=no% dim Puce% : no%=no%+1 : Puce%=no% end_sub
sub Labels() label MouseMoveCadre label MouseMovePalette label MouseMoveTSVpalette label ClicBtn label ClicPalWindows label ClicPalPerso label DClicPictChxPalette label DClicPalPerso label Change end_sub
sub Init()
end_sub
sub Gui() dim_local i%,l%,t%,x%,y%,V$
border_small FenPaletteCouleur% height FenPaletteCouleur%,320 width FenPaletteCouleur%,450 top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 font_name FenPaletteCouleur%,"Arial" font_size FenPaletteCouleur%,8 font_color FenPaletteCouleur%,85,85,127 container ContPalette% parent ContPalette%,FenPaletteCouleur% height ContPalette%,height_client(FenPaletteCouleur%)-5 width ContPalette%,width_client(FenPaletteCouleur%)-10 top ContPalette%,0 left ContPalette%,5 on_mouse_move ContPalette%,MouseMoveCadre alpha AlphPalette%(1) parent AlphPalette%(1),ContPalette% top AlphPalette%(1),15 left AlphPalette%(1),5 l%=5 for x%=1 to 8 t%=top(AlphPalette%(1))+height(AlphPalette%(1))+5 for y%=1 to 6 i%=i%+1 picture PictPalWindows%(i%) parent PictPalWindows%(i%),ContPalette% height PictPalWindows%(i%),20 width PictPalWindows%(i%),20 top PictPalWindows%(i%),t% left PictPalWindows%(i%),l% read V$ color PictPalWindows%(i%),hex(mid$(v$,1,2)),hex(mid$(v$,3,2)),hex(mid$(v$,5,2)) cursor_point PictPalWindows%(i%) on_click PictPalWindows%(i%),ClicPalWindows t%=t%+25 next y% l%=l%+25 next x% alpha AlphPalette%(2) parent AlphPalette%(2),ContPalette% top AlphPalette%(2),top(PictpalWindows%(48))+height(PictpalWindows%(48))+10 left AlphPalette%(2),5
l%=5 i%=0 for x%=1 to 8 t%=top(AlphPalette%(2))+height(AlphPalette%(2))+5 for y%=1 to 2 i%=i%+1 picture PictPalPerso%(i%) parent PictPalPerso%(i%),ContPalette% height PictPalPerso%(i%),20 width PictPalPerso%(i%),20 top PictPalPerso%(i%),t% left PictPalPerso%(i%),l% color PictPalPerso%(i%),0,0,0 cursor_point PictPalPerso%(i%) on_click PictPalPerso%(i%),ClicPalPerso on_double_click PictPalPerso%(i%),DClicPalPerso t%=t%+25 next y% l%=l%+25 next x%
picture PictPalette% parent PictPalette%,ContPalette% height PictPalette%,128 width PictPalette%,158 top PictPalette%,top(AlphPalette%(1))+height(AlphPalette%(1))+5 left PictPalette%,left(PictPalWindows%(48))+width(PictPalWindows%(48))+30 file_load PictPalette%,Palette2$ cursor_cross PictPalette% on_mouse_move PictPalette%,MouseMovePalette on_click PictPalette%,ClicBtn picture PictTSVpalette% parent PictTSVpalette%,ContPalette% height PictTSVpalette%,128 width PictTSVpalette%,15 top PictTSVpalette%,top(PictPalette%) left PictTSVpalette%,left(PictPalette%)+width(PictPalette%)+5 ColorPictTSVpalette(0,0,0) on_mouse_move PictTSVpalette%,MouseMoveTSVpalette on_click PictTSVpalette%,ClicBtn picture Puce% parent Puce%,ContPalette% height Puce%,9 width Puce%,5 top Puce%,top(PictTSVpalette%)-4 left Puce%,left(PictTSVpalette%)+width(PictTSVpalette%)+1 file_load Puce%,"puce1.bmp" picture PictChxPalette% parent PictChxPalette%,ContPalette% height PictChxPalette%,22 width PictChxPalette%,22 top PictChxPalette%,top(PictPalette%)+height(PictPalette%)+5 left PictChxPalette%,left(PictPalette%) color PictChxPalette%,0,0,0 cursor_point PictChxPalette% on_click PictChxPalette%,ClicBtn on_double_click PictChxPalette%,DClicPictChxPalette t%=top(PictChxPalette%) l%=left(PictChxPalette%)+width(PictChxPalette%)+9 for i%=1 to 3 spin SpnPalette%(i%) parent SpnPalette%(i%),ContPalette% width SpnPalette%(i%),45 top SpnPalette%(i%),t% left SpnPalette%(i%),l% l%=l%+width(SpnPalette%(i%))+9 font_color SpnPalette%(i%),255,255,255 min SpnPalette%(i%),0 max SpnPalette%(i%),255 next i% color SpnPalette%(1),255,0,0 color SpnPalette%(2),0,180,0 color SpnPalette%(3),0,0,255 container_option ContOptCOnvert% parent ContOptCOnvert%,ContPalette% height ContOptCOnvert%,80 width ContOptCOnvert%,155 top ContOptCOnvert%,top(SpnPalette%(1))+height(SpnPalette%(1)) left ContOptCOnvert%,left(PictChxPalette%) option AlphPalConvert%(1) parent AlphPalConvert%(1),ContOptCOnvert% width AlphPalConvert%(1),140 caption AlphPalConvert%(1),"RGB => " top AlphPalConvert%(1),10 left AlphPalConvert%(1),5 mark_on AlphPalConvert%(1) option AlphPalConvert%(2) parent AlphPalConvert%(2),ContOptCOnvert% width AlphPalConvert%(2),140 caption AlphPalConvert%(2),"HTML => " top AlphPalConvert%(2),top(AlphPalConvert%(1))+height(AlphPalConvert%(1))+5 left AlphPalConvert%(2),5 option AlphPalConvert%(3) parent AlphPalConvert%(3),ContOptCOnvert% width AlphPalConvert%(3),140 caption AlphPalConvert%(3),"KGF => " top AlphPalConvert%(3),top(AlphPalConvert%(2))+height(AlphPalConvert%(2))+5 left AlphPalConvert%(3),5 button_picture BtnPalConvert% parent BtnPalConvert%,ContPalette% height BtnPalConvert%,height(ContOptCOnvert%)-10 width BtnPalConvert%,24 top BtnPalConvert%,top(ContOptCOnvert%)+7 left BtnPalConvert%,left(ContOptCOnvert%)+width(ContOptCOnvert%)+5 cursor_point BtnPalConvert% file_load BtnPalConvert%,ImgBtnPalette$ on_click BtnPalConvert%,ClicBtn top FenPaletteCouleur%,(screen_y-height(FenPaletteCouleur%))/2 left FenPaletteCouleur%,(screen_x-width(FenPaletteCouleur%))/2 show FenPaletteCouleur%
if Langue% = 0 caption FenPaletteCouleur%,"Outils - Couleurs" caption AlphPalette%(1),"Couleurs Windows :" caption AlphPalette%(2),"Couleurs Personnalisées :" for i%=1 to 16 hint PictPalPerso%(i%),"Clic pour sélectionner"+chr$(13)+"Double clic pour effacer" next i% hint PictChxPalette%,"Cliquer pour convertir"+chr$(13)+"Double clic pour sauvegarder dans les couleurs personnalisées" hint BtnPalConvert%,"Insérer dans le source" else caption FenPaletteCouleur%,"Tools - Colors" caption AlphPalette%(1),"Windows colors :" caption AlphPalette%(2),"Personnal colors :" for i%=1 to 16 hint PictPalPerso%(i%),"Click to select"+chr$(13)+"Double click to clear" next i% hint PictChxPalette%,"Click to convert"+chr$(13)+"Double click to save personnal colors" hint BtnPalConvert%,"Insert in source file" end_if for i%=1 to 16 if ColPerso%(i%)<>0 r%= bin_and(ColPerso%(i%),255) g%= bin_and(int(ColPerso%(i%)/256),255) b%= bin_and(int(ColPerso%(i%)/(256*256)),255) color PictPalPerso%(i%),r%,g%,b% end_if next i% end_sub
' ! Clic ClicBtn: if number_click = PictPalette% if EtatStandByPalette%=0 EtatStandByPalette%=1 off_mouse_move PictPalette% ColorPictTSVpalette(R%,G%,B%) cursor_default PictPalette% else EtatStandByPalette%=0 on_mouse_move PictPalette%,MouseMovePalette cursor_cross PictPalette% end_if return end_if if number_click = PictChxPalette% r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) ConvertChxPalette(r%,g%,b%) return end_if if number_click = BtnPalConvert% Send_Color() Terminate return end_if if number_click = PictTSVpalette% if EtatStandByTSL% = 0 EtatStandByTSL% = 1 off_mouse_move PictTSVpalette% cursor_point PictTSVpalette% else EtatStandByTSL% = 0 on_mouse_move PictTSVpalette%,MouseMoveTSVpalette cursor_arrow PictTSVpalette% end_if return end_if return
ClicPalWindows: off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% return
ClicPalPerso: if mouse_left_down(number_click)=1 off_change SpnPalette%(1) off_change SpnPalette%(2) off_change SpnPalette%(3) r%=color_pixel_red(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) g%=color_pixel_green(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) b%=color_pixel_blue(number_click,mouse_x_position(number_click),mouse_y_position(number_click)) ColorPictTSVpalette(R%,G%,B%) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% else message "Raté !!" end_if return ' - ' ! Change Change: if number_change>(SpnPalette%(1)-1) and number_change<(SpnPalette%(3)+1) if position(number_change)>255 or position(number_change)<0 message "Valeur incorrect !"+chr$(13)+"Valeur de 0 et 255" position number_change,255 return end_if color PictChxPalette%,position(SpnPalette%(1)),position(SpnPalette%(2)),position(SpnPalette%(3)) return end_if return ' - ' ! DClic DClicPictChxPalette: r%=color_pixel_red(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) g%=color_pixel_green(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) b%=color_pixel_blue(PictChxPalette%,mouse_x_position(PictChxPalette%),mouse_y_position(PictChxPalette%)) SaveColorPerso(r%,g%,b%) return
DClicPalPerso: color number_double_click,0,0,0 InitColPerso() return ' - ' ! Mouse move MouseMovePalette: off_mouse_move PictPalette% if mouse_x_position(PictPalette%)<0 or mouse_y_position(PictPalette%)<0 return end_if if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if r%=color_pixel_red(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) g%=color_pixel_green(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) b%=color_pixel_blue(PictPalette%,mouse_x_position(PictPalette%),mouse_y_position(PictPalette%)) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% on_mouse_move PictPalette%,MouseMovePalette return
MouseMoveCadre: if object_exists(SpnPalette%(1))=1 : on_change SpnPalette%(1),Change : end_if if object_exists(SpnPalette%(2))=1 : on_change SpnPalette%(2),Change : end_if if object_exists(SpnPalette%(3))=1 : on_change SpnPalette%(3),Change : end_if return
MouseMoveTSVpalette: off_mouse_move PictTSVpalette% if object_exists(SpnPalette%(1))=1 : off_change SpnPalette%(1) : end_if if object_exists(SpnPalette%(2))=1 : off_change SpnPalette%(2) : end_if if object_exists(SpnPalette%(3))=1 : off_change SpnPalette%(3) : end_if top puce%,top(PictTSVpalette%)+mouse_y_position(PictTSVpalette%)-4 r%=color_pixel_red(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) g%=color_pixel_green(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) b%=color_pixel_blue(PictTSVPalette%,mouse_x_position(PictTSVPalette%),mouse_y_position(PictTSVPalette%)) color PictChxPalette%,r%,g%,b% position SpnPalette%(1),r% position SpnPalette%(2),g% position SpnPalette%(3),b% on_mouse_move PictTSVpalette%,MouseMoveTSVpalette return ' -
' mise en mémoire des couleurs personnalisées sub SaveColorPerso(r1%,g1%,b1%) dim_local i% for i%=1 to 16 if ColPerso%(i%)=0 ColPerso%(i%)=(b1%*256+g1%)*256+r1% color PictPalPerso%(i%),r1%,g1%,b1% exit_for end_if next i% end_sub
' initialisation des couleurs personnalisées sub InitColPerso() dim_local i% for i%=1 to 16 if number_double_click = PictPalPerso%(i%) ColPerso%(i%)=0 end_if next i% end_sub ' convertion des couleurs dans l' outils couleurs sub ConvertChxPalette(R1%,G1%,B1%) dim_local RH$,GH$,BH$,KGFc$ RH$ = Hex$(R1%) : if R1% < 16 then RH$ = "0" + RH$ GH$ = Hex$(G1%) : if G1% < 16 then GH$ = "0" + GH$ BH$ = Hex$(B1%) : if B1% < 16 then BH$ = "0" + BH$ KGFc$ = str$((B1%*256+G1%)*256+R1%) caption AlphPalConvert%(1),"RGB => "+str$(R1%)+","+str$(G1%)+","+str$(B1%) caption AlphPalConvert%(2),"HTML => "+RH$+GH$+BH$ caption AlphPalConvert%(3),"KGF => "+KGFc$ end_sub
' remplissage de la barre de luminosité de l' outils palette sub ColorPictTSVpalette(R1%,V1%,B1%) dim_local i%,T,S,L,R%,V%,B%,x%
R%=R1% : V%=V1% : B%=B1% RGBtoTSL(R%,V%,B%) T=TSL_T : S=TSL_S cls 2d_target_is PictTSVpalette% for i%=1 to 127 if i%>100 L=100 else L=i% end_if TSLtoRGB(T,S,L) if RGB_R%>-1 and RGB_G%>-1 and RGB_B%>-1 if RGB_R%<256 and RGB_G%<256 and RGB_B%<256 2d_pen_color RGB_R%,RGB_G%,RGB_B% 2d_line 1,i%,15,i% end_if end_if next i% end_sub
' convertion RGB > TSL sub RGBtoTSL(R%,V%,B%) dim_local i%,Mx%,Mx1%,Mn%,Mn1%,C%,t$,x% if variable("TSL_T")=0 then dim TSL_T if variable("TSL_S")=0 then dim TSL_S if variable("TSL_L")=0 then dim TSL_L Mx1% = Max(R%,V%) if Mx1% = R% : Mx% = Max(R%,B%) : else : Mx% = Max(V%,B%) : end_if Mn1% = Min(R%,V%) if Mn1% = R% : Mn% = Min(R%,B%) : else : Mn% = Min(V%,B%) : end_if C% = Mx%-Mn% if Mx% = R% if C%>0 : TSL_T = 60*mod(((V%-B%)/C%),6) : else : TSL_T = 60*mod((V%-B%),6) : end_if else if Mx% = V% if C%>0 : TSL_T = 60*(((B%-R%)/C%)+2) : else : TSL_T = 60*((B%-R%)+2) : end_if else if C%>0 : TSL_T = 60*(((R%-V%)/C%)+4) : else : TSL_T = 60*((R%-V%)+4) : end_if end_if end_if if TSL_T<0 : TSL_T=wrap_value(TSL_T) : end_if if C%>0 : TSL_S = 100*(C%/Mx%) : else : TSL_S = 0 : end_if t$=str$(frac(TSL_S))+"00" t$=left$(t$,2) if val(t$)>50 TSL_S=int(TSL_S)+1 : else : TSL_S=int(TSL_S) end_if if Mx%>0 : TSL_L = 100*(Mx%/255): else : TSL_L = 0 : end_if t$=str$(frac(TSL_L))+"00" t$=left$(t$,2) if val(t$)>50 TSL_L=int(TSL_L)+1 : else : TSL_L=int(TSL_L) end_if end_sub
' convertion TSL > RGB sub TSLtoRGB(T,S,L) dim_local i,Mx,Mm,C,X
if variable("RGB_R%")=0 then dim RGB_R% if variable("RGB_G%")=0 then dim RGB_G% if variable("RGB_B%")=0 then dim RGB_B% Mx = L*255/100 Mm = (100-S)*L*(255/10000) C = Mx-Mm i = T/60 X = C*(1-abs(mod(i,2)-1)) if i<1 RGB_R% = int(C+Mm) RGB_G% = int(X+Mm) RGB_B% = int(Mm) else if i>0.99 and i<2 RGB_R% = int(X+Mm) RGB_G% = int(C+Mm) RGB_B% = int(Mm) else if i>1.99 and i<3 RGB_R% = int(Mm) RGB_G% = int(C+Mm) RGB_B% = int(X+Mm) else if i>2.99 and i<4 RGB_R% = int(Mm) RGB_G% = int(X+Mm) RGB_B% = int(C+Mm) else if i>3.99 and i<5 RGB_R% = int(X+Mm) RGB_G% = int(Mm) RGB_B% = int(C+Mm) else RGB_R% = int(C+Mm) RGB_G% = int(Mm) RGB_B% = int(X+Mm) end_if end_if end_if end_if end_if end_sub
' envoi de la couleur au programme appelant sub Send_Color() dim_local i%,typ%,value%
for i%=1 to 3 if checked(AlphPalConvert%(i%))=1 typ% = i% exit_for end_if next i% value% = (b%*256+g%)*256+r%
event_index%=4024 user32%=2 :' event_index% doit toujours avoir la valeur 4024 LIBRARY user32%,"user32.dll" command "call_user_event","SendMessageA",user32%,"IIII","stdcall" ' déclenche l'événement call_user_event ReceiveHnd%,event_index%,typ%,value% end_sub
' ! DATA DATA "FF8080","FFFF80","80FF80","00FF80","80FFFF","0080FF","FF80C0","FF80FF" DATA "FF0000","FFFF00","80FF00","00FF40","00FFFF","0080C0","8080C0","FF00FF" DATA "804040","FF8040","00FF00","008080","004080","8080FF","800040","FF0080" DATA "800000","FF8000","008000","008040","0000FF","0000A0","800080","8000FF" DATA "400000","804000","004000","004040","000080","000040","400040","400080" DATA "000000","808000","808040","808080","408080","C0C0C0","400040","FFFFFF" ' - Un programme appelant : - Code:
-
Application_title "ProgAppel"
dim prg$ dim event_index% dim user32% dim r%,g%,b% dim Col$
label Clic label Traite_User_Event
On_User_Event Traite_User_Event
font_name 0,"Arial" font_size 0,8 font_bold 0 caption 0,"ProgAppel"
button 1 top 1,10 left 1,10 width 1,120 caption 1,"Outils couleurs" on_click 1,Clic
alpha 2 top 2,50 left 2,10 caption 2,"Réponse : "
alpha 3 top 3,80 left 3,10
end
Clic: Prg$ = "C:\Users\Yannick\Desktop\Outils_Couleurs\PanoColorSelect.exe"+chr$(32)+str$(Handle_form("ProgAppel")) Execute_wait Prg$ return
Traite_User_Event: Off_User_Event select USER_EVENT_LPARAM case 1 ConvertRGB(USER_EVENT_WPARAM) font_color 3,r%,g%,b% caption 3,"Couleur RGB = "+str$(R%)+","+str$(G%)+","+str$(B%) case 2 ConvertRGB(USER_EVENT_WPARAM) ConvertHTML(R%,G%,B%) font_color 3,r%,g%,b% caption 3,"Couleur HTML = "+Col$ case 3 ConvertRGB(USER_EVENT_WPARAM) font_color 3,r%,g%,b% caption 3,"Couleur KGF = "+str$(USER_EVENT_WPARAM) end_select On_User_Event Traite_User_Event return
sub ConvertRGB(C%) R% = bin_and(C%,255) G% = bin_and(int(C%/256),255) B% = bin_and(int(C%/(256*256)),255) end_sub
sub ConvertHTML(R%,G%,B%) dim_local RH$,GH$,BH$,KGFc$ RH$ = Hex$(R%) : if R% < 16 then RH$ = "0" + RH$ GH$ = Hex$(G%) : if G% < 16 then GH$ = "0" + GH$ BH$ = Hex$(B%) : if B% < 16 then BH$ = "0" + BH$
Col$ = RH$+GH$+BH$ end_sub Mais il y a un mais. J' ai droit à un message d'erreur à l' appel de l' outils. Ce message n' est pas bloquant, on clique sur Ok et tout se poursuit normalement. Je mets le zip sur mon webdav. j' oubliais, l' outils doit être en exécutable pour fonctionner. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Outils couleurs Sam 10 Juin 2017 - 18:42 | |
| Oui, ça marche Avec un petit souci de chemin C:\Users\Jean Claude, l'espace empêche de trouver le dossier. J'ai résolu le problème comme ceci: - Code:
-
dir_change dir_current$ Prg$ = "PanoColorSelect.exe"+chr$(32)+str$(Handle_form("ProgAppel")) Execute_wait Prg$
Il faut le faire dans les 2 programmes. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Juin 2017 - 1:45 | |
| Dans les deux programmes ?... L' appelant, je veux bien mais l' autre se sert du handle transmis. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Outils couleurs Dim 11 Juin 2017 - 9:08 | |
| En fait, le deuxième se lance mais après un message d'erreur.
A+
| |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Outils couleurs Dim 11 Juin 2017 - 10:32 | |
| Vous êtes face aux bugs de la commande 'execute_wait' signalé ici et là. J'ai essayé de relancer Jack en lui faisant remarquer que cela allait poser pb pour les éditeurs en cours d'élaboration, mais il n'a pas encore réagit | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Outils couleurs Dim 11 Juin 2017 - 11:00 | |
| Pour mon cas, je n'ai pas de problème avec la commande EXECUTE_WAIT.
Je pense que cela vient du fait que mon programme appelant est calé dans le répertoire courant (DIR_CURRENT$) et le deuxième programme est dans ce répertoire. Du coup, je lance EXECUTE_WAIT avec le chemin le plus court. Exemple: EXECUTE_WAIT "PROG2.exe"
Mon éditeur est en attente, pour corriger le problème de Ctrl+V, mais pour le reste il fonctionne très bien. Il me reste tout de même 2 parties essentiels à coder: 1) l’exécution du code et 2) la création d'un exe. Il me reste aussi l'aide (ou plutôt les aides) à coder.
A+
Dernière édition par Jean Claude le Dim 11 Juin 2017 - 13:11, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Juin 2017 - 13:01 | |
| la solution serait peut être : lancer outils par execute outils envoi un message (typ%,handle) appelant stock handle si typ%=1 outils est lancé, envoi un message avec son handle Car le message d' erreur est bizarre. dans le nom de fichier, on voit le handle en paramètre mais pas le nom du programme lui même. Comme si le paramètre était pris en nom de programme à lancer. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Juin 2017 - 14:18 | |
| Je crois que j' ai mis le doigt sur le problème. Je pense que cela vient de la procédure de Silverman pour envoyer le message avec la couleur au programme appelant. J' ai mis des "application_title" et l' entête du message est celui de l' outils. donc l' erreur vient d' une action de sa part. En fait, je pense que la sub essaie d' ouvrir le programme appelant qui l' est déjà. d' où ce message : @ Jack, si tu me lis, il serait bien d' avoir une commande permettant l' envoie de message à un programme ouvert par son handle comme le fait la procédure de Silverman mais sans l' erreur ci-dessus. la procédure : - Code:
-
' SUB sub SEND_EVENT(form_name$,value1%,value2%) if variable("event_index%")=0 ' cré la commande qui permet de déclencher un événement dim event_index%,user32% if variable("user32%")=0 then dim user32% event_index%=4024 : user32%=2 :' event_index% doit toujours avoir la valeur 4024 LIBRARY user32%,"user32.dll" command "call_user_event","SendMessageA",user32%,"IIII","stdcall" end_if ' ' dà clenche l'événement(Attention, c'est toujours et uniquement le form 0 de l'executable en cours qui active la commande 'on_user_event'!) call_user_event handle_form(form_name$),event_index%,value1%,value2% end_sub | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Outils couleurs Dim 11 Juin 2017 - 15:12 | |
| - Citation :
- Je pense que cela vient de la procédure de Silverman pour envoyer le message avec la couleur au programme appelant.
Non c'est impossible, ma sub ne fait qu'envoyer un message via l'api windows. Pour preuve, met un 'end' à la première ligne de 'panocolorselect' et recompile. L'erreur est toujours là alors que 'panocolorselect' ne fait rien. C'est bien 'execute_wait' qui est en cause, cette commande exécute d'abord les paramètres comme si c'était un programme ; Met des paramètres bidon séparés par un espace pour le voir. Ce n'est qu'ensuite qu'elle exécute correctement ce qu'on lui a dit de faire. Il y a 2 solutions pour contourner ce pb, soit tu passes par un '.bat'(surement pas compatible pour sur mac OS), ou bien comme le faisait cosmos70, en posant les paramètres dans le presse-papiers. Mais bon, ça serait mieux que ces bugs soient corrigés pour 'make_exe' - Citation :
- J' ai mis des "application_title" et l' entête du message est celui de l' outils.
C'est à dire? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 11 Juin 2017 - 15:22 | |
| Lorsque tu utilise APPLICATION_TITLE "xxxx" toutes les fenêtres de message provenant de l' application porte le nom de "xxxx" au lieu de la version de Panoramic. - Code:
-
dim titre$ : titre$="Mon Appli"
APPLICATION_TITLE titre$
caption 0,titre$+" Vs 0.1"
message "COUCOU !" end Regarde le nom de la fenêtre de message.
Dernière édition par Yannick le Dim 11 Juin 2017 - 15:59, édité 1 fois | |
| | | Contenu sponsorisé
| Sujet: Re: Outils couleurs | |
| |
| | | | Outils couleurs | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |