Delphi Tutorial


 

Circular color gradient Red Green Blue Yellow

 

      

 

     

 

Download this example

Following procedure create gradient at startup. Main technique of this procedure is fill pixels that have black color. Because within the form black exists only in text area.


procedure TForm1.FormCreate(Sender: TObject);
Var
    Y, C, R, H, W, L : Integer;
    Step : Real;
begin
    { Get form size }
    H:=Image1.Height;
    W:=Image1.Width;

    { Fill area with form color }
    Image1.Canvas.Pen.Color:=Form1.Color;
    Image1.Canvas.Brush.Color:=Form1.Color;
    Image1.Canvas.Rectangle(0,0,W,H);

    { Insert text }
    Image1.Canvas.Font.Name:='Arial Black';
    Image1.Canvas.Font.Size:=35;
    Image1.Canvas.Font.Style:=[fsBold];
    Image1.Canvas.TextOut(5,20,'digitalcoding.com');

    { Set fill size }
    L:=W Div 3;

    { Set fill step size }
    Step:=255/L;

    For R:=0 To W Do
    Begin
        { Select color for gradient starting from RED
        to YELLOW }

        { Change fill color }
        If R<=L Then
        Begin
            C:=Round(R*Step);
            { Red -> Green }
            Image1.Canvas.Pen.Color:=RGB(255-C,C,0);
        End
        Else If R<=2*L Then
        Begin
            C:=Round((R-L)*Step);
            { Green -> Blue }
            Image1.Canvas.Pen.Color:=RGB(0,255-C,C)
        End
        Else If R<=3*L Then
        Begin
            C:=Round((R-2*L)*Step);
            { Blue -> Yellow }
            Image1.Canvas.Pen.Color:=RGB(C,C,255-C);
        End;

        For Y:=0 to H Do
        { Fill only text area using text color}
        If Image1.Canvas.Pixels[R,Y]=clBlack Then
            Image1.Canvas.Pixels[R,Y]:=Image1.Canvas.Pen.Color;
    End;
end;

 

DOWNLOAD this example

Click here to download this complete example for Delphi 6. (File size 4KB)

 

 

Go top

 


Previous Page First Page Next Page
 
Copyright © 2002 digitalcoding.com. All rights reserved.