Bei Methode 1 lässt sich die Farbe überhaupt nicht mehr ändern und bei Methode 2 fehlt das kleine canvas (Name des Bildes) und es wird Undeclared Identifier bei Brush/FloodFill ausgegeben!

Hier mal der ganze Sourcecode:

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    quadrat: TButton;
    canvas: TImage;
    kreis: TButton;
    dreieck: TButton;
    ende: TButton;
    ext_kreis: TButton;
    ext_dreieck: TButton;
    ext_quadrat: TButton;
    ch_color_dreieck: TButton;
    ch_color_kreis: TButton;
    ch_color_quadrat: TButton;
    color_dreieck_timer: TTimer;
    color_kreis_timer: TTimer;
    color_quadrat_timer: TTimer;
    procedure quadratClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure kreisClick(Sender: TObject);
    procedure dreieckClick(Sender: TObject);
    procedure endeClick(Sender: TObject);
    procedure ext_dreieckClick(Sender: TObject);
    procedure ext_kreisClick(Sender: TObject);
    procedure ext_quadratClick(Sender: TObject);
    procedure ch_color_dreieckClick(Sender: TObject);
    procedure color_dreieck_timerTimer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  color_dreieck_zaehler:integer;
  color_kreis_zaehler:integer;
  color_quadrat_zaehler:integer;

implementation

{$R *.dfm}

procedure TForm1.quadratClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.Rectangle(10,10,110,110);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
        color_quadrat_zaehler := 1;
        color_kreis_zaehler := 1;
        color_dreieck_zaehler := 1;
        canvas.Canvas.Brush.Style := bsSolid;
        canvas.Canvas.Brush.Color := clBlack;
        canvas.Canvas.Pen.Color := clBlack;
        canvas.Canvas.Rectangle(0,0,1137,633);
end;

procedure TForm1.kreisClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.Ellipse(10,10,110,110);
end;

procedure TForm1.dreieckClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.MoveTo(60,10);
        canvas.Canvas.LineTo(20,85);
        canvas.Canvas.LineTo(100,85);
        canvas.Canvas.LineTo(60,10);
end;

procedure TForm1.endeClick(Sender: TObject);
begin
        Form1.Close();
end;

procedure TForm1.ext_dreieckClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.MoveTo(60,210);
        canvas.Canvas.LineTo(20,285);
        canvas.Canvas.LineTo(100,285);
        canvas.Canvas.LineTo(60,210);
end;

procedure TForm1.ext_kreisClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.Ellipse(10,310,110,410);
end;

procedure TForm1.ext_quadratClick(Sender: TObject);
begin
        canvas.Canvas.Brush.Style := bsClear;
        canvas.Canvas.Pen.Color := clRed;
        canvas.Canvas.Pen.Width := 1;
        canvas.Canvas.Rectangle(10,430,110,530);
end;

procedure TForm1.ch_color_dreieckClick(Sender: TObject);
begin
        color_dreieck_timer.Enabled := true;
end;

procedure TForm1.color_dreieck_timerTimer(Sender: TObject);
begin
        color_dreieck_zaehler := color_dreieck_zaehler+1;
        if color_dreieck_zaehler = 2 then canvas.Canvas.Brush.Color := clWhite;
        if color_dreieck_zaehler = 3 then canvas.Canvas.Brush.Color := clGray;
        if color_dreieck_zaehler = 4 then canvas.Canvas.Brush.Color := clYellow;
        if color_dreieck_zaehler = 5 then canvas.Canvas.Brush.Color := clOlive;
        if color_dreieck_zaehler = 6 then canvas.Canvas.Brush.Color := clGreen;
        if color_dreieck_zaehler = 7 then canvas.Canvas.Brush.Color := clLime;
        if color_dreieck_zaehler = 8 then canvas.Canvas.Brush.Color := clAqua;
        if color_dreieck_zaehler = 9 then canvas.Canvas.Brush.Color := clTeal;
        if color_dreieck_zaehler = 10 then canvas.Canvas.Brush.Color := clBlue;
        if color_dreieck_zaehler = 11 then canvas.Canvas.Brush.Color := clNavy;
        if color_dreieck_zaehler = 12 then canvas.Canvas.Brush.Color := clPurple;
        if color_dreieck_zaehler = 13 then canvas.Canvas.Brush.Color := clFuchsia;
        if color_dreieck_zaehler = 14 then canvas.Canvas.Brush.Color := clMaroon;
        if color_dreieck_zaehler = 15 then canvas.Canvas.Brush.Color := clRed;
        //if color_dreieck_zaehler = 16 then canvas.Canvas.Brush.Color := clBlack;
        Case color_dreieck_zaehler of
        16 : begin
        color_dreieck_zaehler := 1;
        canvas.Canvas.Brush.Color := clBlack;
             end;
**      canvas.Canvas.FloodFill(60,260,clRed,fsBorder);
        color_dreieck_timer.Enabled := false;
end;
end;
end.
Einziger Error hier ist halt "Constant expression expected in der mit ** vormarkierten Zeile!

Greetz,
h-7