Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Outils couleurs avec pipette Mar 25 Mar 2014 - 11:45 | |
| Je vous livre ici le code du module outils couleurs de PPE. - Code:
-
dim M_dll$,P_dll$,RH$,GH$,BH$,H$,R$,G$,B$ dim change%,R%,G%,B%,RGB_Hex$,bouton,GP%,coord$ dim Pick_Coordonnee$,Pick_retour%,Pick_x,Pick_y
M_dll$=dir_current$+"\mouse.dll" P_dll$=dir_current$+"\pick.dll"
label Change,Pick,GoPick,Stop_timer
Caption 0,"Outils - Couleurs" height 0,230 width 0,290 top 0,(screen_y-230)/2 left 0,(screen_x-290)/2
picture 1 top 1,5 : left 1,5 : height 1,100 : width 1,100 : color 1,0,0,0 alpha 2 top 2,15 : left 2,120 : caption 2,"RGB" : font_name 2,"arial" edit 3 top 3,30 : left 3,120 : width 3,100 alpha 4 top 4,60 : left 4,120 : caption 4,"Hexa" : font_name 4,"arial" edit 5 top 5,75 : left 5,120 : width 5,100 alpha 6 top 6,117 : left 6,10 : Caption 6,"R" : font_name 6,"arial" :font_color 6,255,0,0 scroll_bar 7 top 7,115 : left 7,30 :width 7,230 :cursor_point 7:min 7,0 : max 7,255: position 7,0 on_change 7,change alpha 8 top 8,142 : left 8,10 : Caption 8,"G" : font_name 8,"arial" :font_color 8,0,255,0 scroll_bar 9 top 9,140 : left 9,30 :width 9,230 :cursor_point 9:min 9,0 : max 9,255: position 9,0 on_change 9,change alpha 10 top 10,167 : left 10,10 : Caption 10,"B": font_name 10,"arial":font_color 10,0,0,255 scroll_bar 11 top 11,165 : left 11,30 :width 11,230 :cursor_point 11:min 11,0 : max 11,255: position 11,0 on_change 11,change timer 13:timer_off 13:timer_interval 13,200 on_timer 13,Pick button 12 hint 12,"Pipette-Importer une couleur depuis votre écran" top 12,5 : left 12,width(0)-51 : height 12,30 : width 12,30 : caption 12,"P" : font_name 12,"arial" cursor_point 12 on_click 12,GoPick
text 3,str$(R%)+"-"+str$(G%)+"-"+str$(B%) RGBtoHex(R%, G%, B%) text 5,RGB_Hex$ end
Change: change%=number_change select change% case 7 : Couleur() case 9 : Couleur() case 11: Couleur() end_select return
GoPick: timer_on 13 inactive 12 off_change 7 off_change 9 off_change 11 return Pick: Pick_Coordonnee$=STRING$(20," ") dll_on M_dll$ coord$=STRING$(8," ") bouton= dll_call1("GetMouseXY",ADR(coord$)) dll_off
dll_on P_dll$ Pick_retour%=dll_call1("GetMouseXY",ADR(Pick_Coordonnee$)) Pick_x = VAL(LEFT$(Pick_Coordonnee$,INSTR(Pick_Coordonnee$,":")-1)) Pick_y = VAL(MID$(Pick_Coordonnee$,INSTR(Pick_Coordonnee$,":")+1,200)) Pick_Coordonnee$=STRING$(20," ") Pick_retour%=dll_call3("GetColorXY",Pick_x,Pick_y,ADR(Pick_Coordonnee$)) dll_off
IF BIN_AND(bouton,1)<>0 :gosub Stop_timer : end_if IF BIN_AND(bouton,2)<>0 :gosub Stop_timer : end_if IF BIN_AND(bouton,4)<>0 :gosub Stop_timer : end_if return
Stop_timer: timer_off 13 active 12 HextoRGB(Pick_Coordonnee$) return
Sub Couleur() R%=Position(7) G%=Position(9) B%=Position(11) Color 1,R%,G%,B% Text 3,str$(R%)+"-"+str$(G%)+"-"+str$(B%) RGBtoHex(R%, G%, B%) text 5,RGB_Hex$ end_sub
sub RGBtoHex(R%, G%, B%) ' Convertit le code RGB en une chaine de 6 caracteres ("0A0BCC" ...) ' Resultat dans RGB_Hex$ 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$ RGB_Hex$ = RH$+GH$+BH$ end_sub
Sub HextoRGB(Hexa$)
H$=trim$(Hexa$)
R$=mid$(H$,1,2) G$=mid$(H$,3,2) B$=mid$(H$,4,2)
R%=Hex(R$) G%=Hex(G$) B%=Hex(B$)
text 3,str$(R%)+"-"+str$(G%)+"-"+str$(B%) text 5,H$
position 7,R% position 9,G% position 11,B% color 1,R%,G%,B%
on_change 7,change on_change 9,change on_change 11,change End_sub Attention ! n' oubliez pas les dlls de notre ami Nardo26 qui manque à ce forum. | |
|