![]() |
FillRect funktioniert nicht
Hallo,
ich möchte gerne auf die Canvas vom Formular zeichnen, klappt aber nicht. Ich kriege keinen Fehler, er zeichnet einfach nicht. Wenn ich mit dem gleichen Code auf eine PaintBox male, klappt es. Weiß jemand warum? Es liegt 100% am FillRect, ich weiß nicht, was ich dort an Werten übergeben soll.
Delphi-Quellcode:
Danke!
procedure DrawScreen;
begin with Background.Canvas do begin Brush.Color := RGB(0, 0, 0); FillRect(Game.ClientRect); end; Game.Canvas.Draw(0, 0, Background); end; |
Re: FillRect funktioniert nicht
Wenn Background ein TBitmap ist, überprüfe mal ob du ihm vor dem Aufruf von FillRect eine Größe zugewiesen hast.
|
Re: FillRect funktioniert nicht
Ja, natürlich!
Delphi-Quellcode:
procedure TGame.FormCreate(Sender: TObject);
begin Background := TBitmap.Create; Background.Height := Game.ClientHeight; Background.Width := Game.ClientWidth; DrawScreen; end; |
Re: FillRect funktioniert nicht
Habe es auch mit
Delphi-Quellcode:
probiert, klappt aber immer noch nicht.
FillRect(Rect(0, 0, Game.ClientHeight, Game.ClientWidth));
|
Re: FillRect funktioniert nicht
Ist auch der richtige Pinsel zugewiesen?
Delphi-Quellcode:
Background.Canvas.Brush.Style := bsSolid;
Ansonsten ist hier noch was zum versuchen:
Delphi-Quellcode:
Background.Canvas.Brush.Style := bsSolid;
Background.Canvas.Brush.Color := RGB(0, 0, 0); Background.Canvas.FillRect(Game.ClientRect); { oder } {Background.Canvas.Brush.Style := bsSolid;} Background.Canvas.Pen.Color := RGB(0, 0, 0); Background.Canvas.Brush.Color := Canvas.Pen.Color; Background.Canvas.Rectangle(0, 0, Game.Width, Game.Height); |
Re: FillRect funktioniert nicht
Danke @himitsu, es klappt aber beides nicht. Mein Formular bleibt leer :(
|
Re: FillRect funktioniert nicht
wird DrawScreen nur in OnCreate aufgerufen?
|
Re: FillRect funktioniert nicht
Mhh, der Gedanke kam mir auch gerade. Eigentlich müsste es ja in's OnPaint... :wall:
Danke trotzdem nochmal! (ich zieh jetzt lieber den Kopf ein und renne weg... :zwinker: ) |
Re: FillRect funktioniert nicht
Genau.
Delphi-Quellcode:
{Game / OnCreate}
Procedure TGame.FormCreate(Sender: TObject); Begin Background := TBitmap.Create; Background.Height := Game.ClientHeight; Background.Width := Game.ClientWidth; End; {Game / OnPaint} Procedure TForm1.FormPaint(Sender: TObject); Begin DrawScreen; End; {Game / OnDestroy} Procedure TGame.FormDestroy(Sender: TObject); Begin Background.Free; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz