Painted gradation function

xiaoxiao2021-03-06  17

Code

Procedure colorful (_Sender: tcanvas; _c1, _c2: tcolor; _width, _Height: integer; _mode: integer; var i: integer; rct: TRECT; R1, G1, B1, R2, G2, B2, R3, G3, B3 : Byte; begin with tcanvas (_sender) Do Begin r1: = byte (_C1); B1: = Byte (_C1 shr 16); r2: = byte (_c2); g2: = B2: = byte (_c2 shr 16); case _mode of 1: begin for i: = 0 to _width do bas = r1> r2 THEN R3: = R1-Muldiv (i, R1-R2, _Width) Else R3: = R1 MULDIV (i, R2-R1, _WIDTH); if G1> G2 THEN G3: = G1-Muldiv (i, G1-G2, _WIDTH) ELSE G3: = G1 MULDIV (i, g2 -G1, _width; if B1> B2 THEN B3: = B1-Muldiv (i, b1-b2, _width) else B3: = B1 MULDIV (i, b2-b1, _width); brush.color: = RGB ( R3, G3, B3); RCT: = RECT (I, 0, I 1, _HEIGHT); FillRect (RCT); end; end; 2: Begin for i: = 0 to _Height Do Begin if r1> R2 THEN R3 : = R1-MULDIV (i, R1-R2, _HEIGHT) ELSE R3: = R1 MULDIV (i, R2-R1, _HEENT); if G1> G2 THEN G3: = G1-Muldiv (i, g1-g2, _height ELSE G3: = G1 MULDIV (i, g2-g1, _height); if B1> B2 THEN B3: = B1-M Uldiv (i, b1-b2, _height) else b3: = b1 muldiv (i, b2-b1, _height); brush.color: = RGB (R3, G3, B3); RCT: = RECT (0, I, _Width, i 1); FillRect (RCT); end; end; end; setbkmode (handle, windows.transparent); end;

usage

Procedure TFORM1.FormPaint (Sender: Tobject); Begin Colorful (Self.canvas, ClskyBlue, CLWHIGHT, 2); // 1 is horizontal, 2 is vertical end;

转载请注明原文地址:https://www.9cbs.com/read-41594.html

New Post(0)