Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to create gradient background?
Message
 
To
27/04/2006 00:34:22
Beng Buhat
PolyOptimum, Inc.
Sydney, Australia
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
01116971
Message ID:
01117122
Views:
15
Hi,
********************************
* Top-Down
******************************
LOCAL  r,g,b
LOCAL ARRAY laColor(3)
CLEAR
#define COLOR_INACTIVECAPTION   3 && left
#define COLOR_GRADIENTINACTIVECAPTION   28 && right
#define COLOR_INACTIVECAPTIONTEXT 19

DECLARE INTEGER GetSysColor IN USER32.DLL INTEGER

=C2RGB(GetSysColor(COLOR_INACTIVECAPTIONTEXT),@laColor)

r1=laColor(1)
g1=laColor(2)
b1=laColor(3)  && Any start color

=C2RGB(GetSysColor(COLOR_GRADIENTINACTIVECAPTION),@laColor)
r2=laColor(1)
g2=laColor(2)
b2=laColor(3) && Any stop color

liHeight=32

for lii=0 TO liHeight
    r = r1 + (lii * (r2-r1) / liHeight)
    g = g1 + (lii * (g2-g1) / liHeight)
    b = b1 + (lii * (b2-b1) / liHeight)

    _Screen.ForeColor=RGB(r,g,b)
    _Screen.Line(50,100+lii , 250,100+lii)

NEXT


procedure C2RGB(liColor,laColor)
LOCAL lcPom
lcPom=RIGHT(TRANSFORM(liColor,"@0"),6)
laColor(1)=VAL("0x"+RIGHT(lcPom,2))
laColor(2)=VAL("0x"+SUBST(lcPom,3,2))
laColor(3)=VAL("0x"+LEFT(lcPom,2))
********************************
* Left-Right
******************************
LOCAL r,g,b
CLEAR

r1=127
g1=127
b1=56 && Any start color

r2=5
g2=55
b2=165 && Any stop color

liWidth=500
for lii=0 To liWidth-1
    r = r1 + (lii * (r2-r1) / liWidth)
    g = g1 + (lii * (g2-g1) / liWidth)
    b = b1 + (lii * (b2-b1) / liWidth)
     _Screen.ForeColor=RGB(r,g,b)
     _Screen.Line(100+lii,50 , 100+lii,250)
next
********************************
* Top-Down
* Left-Right
******************************
LOCAL x1,y1,x2,y2,liWidth,liHeight,lii,r,b,g
CLEAR

r1=255 && 245
g1=255 &&190
b1=255 && 240

r2=0&& 130
g2=0 && 0 
b2=255 &&0

STORE 0 TO  x1,y1,x2,y2
liWidth=500
liHeight=250


DO WHILE (x1 < liWidth AND y1 < liHeight)

   if y1 < liHeight-1
      y1 = y1 + 1 
   else
      x1 = x1 + 1
   ENDIF

   if x2 < liWidth-1
      x2 = x2 + 1 
    else
       y2 = y2 + 1 
    ENDIF  

    lii = x1+y1
    r = r1 + (lii * (r2-r1) / (liWidth+liHeight))
    g = g1 + (lii * (g2-g1) / (liWidth+liHeight))
    b = b1 + (lii * (b2-b1) / (liWidth+liHeight))

    _Screen.ForeColor=RGB(r,g,b)
    _Screen.Line(x1+50,y1+50 , x2+50,y2+50)
ENDDO
>How can I create a background with a gradient and shading style? (Similar to what you can do in Powerpoint slides)
>
>thanks!
>
>Marietta
"Navision is evil that needs to be erazed... to the ground"

Jabber: gorila@dione.zcu.cz
Jabber? Jabbim
Previous
Reply
Map
View

Click here to load this message in the networking platform