![]() |
Kästchen am Bildschirm zeichnen
Hallo.
Ich soll Kästchen in einer Paintbox zeichnen. Gibt es eine andere Lösung als diese dafür? Eine bessere? Einfachere? Bitte immer her mit euren Vorschlägen. Das Programm soll zufällig Kästchen am Bildschirm darstellen..das ganze mit einer Liste, wie man weiter unten erkennt.
Delphi-Quellcode:
constructor TControler.Create(N: integer; pb: TPaintbox);
var i : integer; new : TBug; begin FSize := 10; FN := N; Fpb := pb; FList := TBugList.Create; for i := 0 to N-1 do begin new := TBug.Create(random(width),random(height),FSize,random(256*256*256),clBtnFace,pb.canvas); FList.Add(new); end; end; mfg |
Re: Kästchen am Bildschirm zeichnen
Wo wird da überhaupt irgendetwas gezeichnet? :gruebel:
|
Re: Kästchen am Bildschirm zeichnen
tut mir leid, hab das ganze wohl zu falsch formuliert :( das ganze ist in einem anderem Unterprogramm.
Hier wird ein neues Element erzeugt, der Liste hinzugefügt..das dann gezeichnet später wird. |
Re: Kästchen am Bildschirm zeichnen
Und was willst du jetzt wissen? Mit dem Codebruchstück kann man nichts anfangen und das
Zitat:
|
Re: Kästchen am Bildschirm zeichnen
Mit dieser Funktion zeichnet das ganze..glaube ich Zumindest:
Delphi-Quellcode:
und ich würde gern den oberen und diesen code durch eine andere Lösung ersetzen. Das ganze Programm soll eine beliebige Anzahl von Kästchen in zufälliger Richtung über den Bildschirm laufen lassen. Die Methode step prüft, ob sich an dem Platz an dem gezeichnet werden soll, schon ein Kästchen befindet. Wenn ja wird Direction freigesetzt. Move bewegt, Show zeigt..
procedure TControler.Step;
var i : integer; dir : TDirection; begin for i := 0 to Flist.Count - 1 do begin dir := TDirection(random(4)); if Fpb.Canvas.Pixels[FList.Bugs[i].NextLeft[dir],FList.Bugs[i].NextTop[dir]]<>Fpb.color then begin FList.Bugs[i].Direction := dir; Flist.Bugs[i].Move; end else FList.Bugs[i].Show; end; end; das ganze in dieser klasse:
Delphi-Quellcode:
type TControler = class
private //private Variable zum Speichern von Höhe, Breite und Anzahl FHeight, FN, FWidth : integer; //private Paintbox, in die gezeichnet werden soll FPb : TPaintBox; //private Liste zum verwalten der Bugs Flist : TBugList; FSize : integer; protected public //Properties property Height : integer read FHeight write FHeight; property N : integer read FN write FN; property Width : integer read FWidth write FWidth; //Konstruktor constructor Create(N:integer;pb : TPaintbox); //Destruktor destructor Free; procedure Show; procedure Step; |
Re: Kästchen am Bildschirm zeichnen
Delphi-Quellcode:
canvas.rectangle(left,top,width,height)
meinst du das :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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 by Thomas Breitkreuz