The code below compiles as a small Color Display Applet (36.5K). It can be compiled either with PBCC5 or PBWIN9, and can be controlled with the mouse or the keyboard. The code of the chosen color is put in the clipboard to be pasted in your program or text, in the format of your choice, Predefined Equates, Decimal, Hex or RGB, by commenting and un-commenting the proper lines.
Code:
[FONT=Courier New][/FONT] [FONT=Courier New][/FONT] [FONT=Courier New]#COMPILE EXE #CONSOLE OFF 'Comment to compile with PBWin9 DEFLNG a-z[/FONT] [FONT=Courier New]GLOBAL CLR$(),O$ GLOBAL CarH,CarW,xm,ym AS DOUBLE GLOBAL hwin,hven,hvin,I,flg,IE,IP,P,KA,ATC(),clk AS LONG[/FONT] [FONT=Courier New]FUNCTION PBMAIN () AS LONG LOCAL WAV AS DOUBLE hvin=1 caption$="Color Display" GRAPHIC WINDOW caption$,0,0,433,183 TO hwin GRAPHIC ATTACH hwin,0,REDRAW GRAPHIC CLEAR %WHITE GRAPHIC SET LOC 100,100 FONT NEW "Courier New",10,0,0,0,0 TO fnt1 GRAPHIC SET FONT fnt1 GRAPHIC CHR SIZE TO CarW,CarH REDIM CLR$(140) REDIM TC&(140) KA=0 FOR I=1 TO 279 STEP 2 INCR KA CLR(KA)= READ$(I) TC(KA)= VAL(READ$(I+1)) NEXT GRAPHIC BOX(182,3)-(198,180),,%GRAY,-2 GRAPHIC LINE(182,19)-(198,19),%GRAY GRAPHIC LINE(182,163)-(198,163),%GRAY GRAPHIC COLOR %RED GRAPHIC LINE(186,13)-(190,7) GRAPHIC LINE(193,13)-(190,7) GRAPHIC LINE(186,168)-(190,174) GRAPHIC LINE(193,168)-(190,174) DO CALL THISONE IF hvin=0 THEN EXIT LOOP GRAPHIC BOX(201,3)-(430,180),,%WHITE,TC(IE+IP),-1 HC$=RIGHT$(STRING$(6,48)+HEX$(TC(IE+IP)),6) BC=16*VAL("&H"+MID$(HC$,1,1))+VAL("&H"+MID$(HC$,2,1)) GC=16*VAL("&H"+MID$(HC$,3,1))+VAL("&H"+MID$(HC$,4,1)) RC=16*VAL("&H"+MID$(HC$,5,1))+VAL("&H"+MID$(HC$,6,1)) WAV=(BC+2*GC+RC)/4 IF WAV<156 THEN GRAPHIC COLOR %WHITE,TC(IE+IP) ELSE GRAPHIC COLOR %BLACK,TC(IE+IP) END IF GRAPHIC SET POS(215,35) GRAPHIC PRINT "%RGB_"+CLR$(IE+IP) CLIPBOARD RESET,E& GRAPHIC SET POS(215,65) GRAPHIC PRINT "DEC: "+USING$("######",TC(IE+IP)) GRAPHIC SET POS(215,95) GRAPHIC PRINT "HEX: &H"+HC$ GRAPHIC SET POS(215,125) GRAPHIC PRINT "RGB("+USING$("###",RC)+CHR$(44)+USING$("###",GC)+CHR$(44)+USING$("###",BC)+")" GRAPHIC REDRAW 'CLIPBOARD SET TEXT "%RGB_"+CLR$(IE+IP),E& 'CLIPBOARD SET TEXT USING$("######",TC(IE+IP)),E& CLIPBOARD SET TEXT "&H"+HC$,E& 'CLIPBOARD SET TEXT "RGB("+USING$("###",RC)+CHR$(44)+USING$("###",GC)+CHR$(44)+USING$("###",BC)+")",E& IF O$=CHR$(27) THEN EXIT LOOP LOOP GRAPHIC WINDOW END DATA INDIANRED,6053069,LIGHTCORAL,8421616,SALMON,7504122,DARKSALMON,8034025,LIGHTSALMON ,8036607,CRIMSON,3937500,RED,255,FIREBRICK,2237106,DARKRED,139,PINK,13353215 DATA LIGHTPINK,12695295,HOTPINK,11823615,DEEPPINK,9639167,MEDIUMVIOLETRED,8721863,PALEVIOLETRED,9662683,LIGHTSALMON,8036607,CORAL,5275647,TOMATO,4678655,ORANGERED,17919,DARKORANGE,36095 DATA ORANGE,42495,GOLD,55295,YELLOW,65535,LIGHTYELLOW,14745599,LEMONCHIFFON,13499135,LIGHTGOLDENRODYELLOW,13826810,PAPAYAWHIP,14020607,MOCCASIN,11920639,PEACHPUFF,12180223,PALEGOLDENROD,11200750 DATA KHAKI,9234160,DARKKHAKI,7059389,LAVENDER,16443110,THISTLE,14204888,PLUM,14524637,VIOLET,15631086,ORCHID,14053594,MAGENTA,16711935,MEDIUMORCHID,13850042,MEDIUMPURPLE,14381203 DATA BLUEVIOLET,14822282,DARKVIOLET,13828244,DARKORCHID,13382297,DARKMAGENTA,9109643,PURPLE,8388736,INDIGO,8519755,SLATEBLUE,13458026,DARKSLATEBLUE,9125192,MEDIUMSLATEBLUE,15624315,GREENYELLOW,3145645 DATA CHARTREUSE,65407,LAWNGREEN,64636,LIME,65280,LIMEGREEN,3329330,PALEGREEN,10025880,LIGHTGREEN,9498256,MEDIUMSPRINGGREEN,10156544,SPRINGGREEN,8388352,MEDIUMSEAGREEN,7451452,SEAGREEN,5737262 DATA FORESTGREEN,2263842,GREEN,32768,DARKGREEN,25600,YELLOWGREEN,3329434,OLIVEDRAB,2330219,OLIVE,32896,DARKOLIVEGREEN,3107669,MEDIUMAQUAMARINE,11193702,DARKSEAGREEN,9419919,LIGHTSEAGREEN,11186720 DATA DARKCYAN,9145088,TEAL,8421376,CYAN,16776960,LIGHTCYAN,16777184,PALETURQUOISE,15658671,AQUAMARINE,13959039,TURQUOISE,13688896,MEDIUMTURQUOISE,13422920,DARKTURQUOISE,13749760,CADETBLUE,10526303 DATA STEELBLUE,11829830,LIGHTSTEELBLUE,14599344,POWDERBLUE,15130800,LIGHTBLUE,15128749,SKYBLUE,15453831,LIGHTSKYBLUE,16436871,DEEPSKYBLUE,16760576,DODGERBLUE,16748574,CORNFLOWERBLUE,15570276,MEDIUMSLATEBLUE,15624315 DATA ROYALBLUE,14772545,BLUE,16711680,MEDIUMBLUE,13434880,DARKBLUE,9109504,NAVY,8388608,MIDNIGHTBLUE,7346457,CORNSILK,14481663,BLANCHEDALMOND,13495295,BISQUE,12903679,NAVAJOWHITE,11394815 DATA WHEAT,11788021,BURLYWOOD,8894686,TAN,9221330,ROSYBROWN,9408444,SANDYBROWN,6333684,GOLDENROD,2139610,DARKGOLDENROD,755384,PERU,4163021,CHOCOLATE,1993170,SADDLEBROWN,1262987 DATA SIENNA,2970272,BROWN,2763429,MAROON,128,WHITE,16777215,SNOW,16448255,HONEYDEW,15794160,MINTCREAM,16449525,AZURE,16777200,ALICEBLUE,16775408,GHOSTWHITE,16775416 DATA WHITESMOKE,16119285,SEASHELL,15660543,BEIGE,14480885,OLDLACE,15136253,FLORALWHITE,15792895,IVORY,15794175,ANTIQUEWHITE,14150650,LINEN,15134970,LAVENDERBLUSH,16118015,MISTYROSE,14804223 DATA GAINSBORO,14474460,LIGHTGRAY,13882323,SILVER,12632256,DARKGRAY,11119017,GRAY,8421504,DIMGRAY,6908265,LIGHTSLATEGRAY,10061943,SLATEGRAY,9470064,DARKSLATEGRAY,5197615,BLACK,0 END FUNCTION[/FONT] [FONT=Courier New]SUB THISONE IF IE=0 THEN IE=1 O$="" DO GRAPHIC GET DC TO hvin IF hvin = 0 THEN EXIT LOOP FOR B=0 TO 10 IF B=IP THEN GRAPHIC COLOR %WHITE,RGB(110,120,180) ELSE GRAPHIC COLOR %BLACK,%WHITE END IF GRAPHIC SET POS(3,3+CarH*B) GRAPHIC PRINT LEFT$(CHR$(32)+CLR$(B+IE)+STRING$(22,32),22) NEXT B GRAPHIC BOX(183,20)-(197,163),,%WHITE,-1 GRAPHIC BOX(183,20)-(197,20+143*((IE+IP)/KA)),,RGB(110,120,180),-1 GRAPHIC REDRAW GRAPHIC WINDOW CLICK TO clk,xm,ym GRAPHIC INKEY$ TO O$ IF clk THEN IF (xm>182 AND xm<198) AND (ym>20 AND ym<162) THEN IE=(KA-IP)*((ym-20)/142) ELSEIF (xm>182 AND xm<198) AND (ym>3 AND ym<20)THEN O$=CHR$(0,72) ELSEIF (xm>182 AND xm<198) AND (ym<180 AND ym>162)THEN O$=CHR$(0,80) ELSEIF (xm>3 AND xm<182) AND (ym<180 AND ym>3) THEN IP=(ym-3)\CarH IF clk=2 THEN O$=CHR$(13) END IF END IF SELECT CASE O$ CASE CHR$(27) EXIT LOOP CASE CHR$(0,80) IF IP<10 THEN INCR IP ELSE IF IE<KA-10 THEN INCR IE END IF CASE CHR$(0,72) IF IP>0 THEN DECR IP ELSE IF IE>1 THEN DECR IE END IF CASE CHR$(0,73) IE=IE-10 IP=0 CASE CHR$(0,81) IE=IE+10 IP=10 CASE CHR$(0,79) IE=KA-10 IP=10 CASE CHR$(0,71) IE=1 IP=0 CASE CHR$(13) ARC$=CLR$(IE+IP) EXIT LOOP END SELECT IF IE>KA-10 THEN IE=KA-10 IF IE<1 THEN IE=1 LOOP GRAPHIC REDRAW END SUB [/FONT] [FONT=Courier New][/FONT]
Comment