bin neu hier und hoffe mal, dass ich den richtigen Forenbereich getroffen habe..
zuerst ist mal das problem, dass ich das programm heute abend um 23:59 meinem lehrer geschickt haben muss^^..
wir sollen also mit canvas einen weihnachtsbaum erstellen, und der soll ein paar special-features haben..
ich habe jetzt eine checkbox eingebaut, wodurch kugeln an den baum gehangen werden..
klappt auch, aber wenn der haken weg ist, bleiben die kugeln.. wie kann ich die dann wieder entfernen? übermalen geht nicht, weil man einen zufällig generierten hintergrund wählen kann..
problem 2:
ich lasse unten vom image geschenke positionieren, über ein spinedit kann man die anzahl festlegen.
aber wenn ich erst 8 geschenke festlege und danach z.b. 4, zeigt er 12.. logisch, er fügt sie einfach hinzu.. die ersten "8" soll er aber wieder verschwinden lassen..
hier der quelltext von problem 1 und 2
1:
Code: Alles auswählen
procedure TForm1.CKugelChange(Sender: TObject);
begin
k := 105;
u := 90;
k1 := 125;
u1 := 110;
if CKugel.Checked then
for Kugelnlinks := 1 to 3 do
with ITannenbaumBild.canvas do // linke Kugelseite
begin
pen.color := random(color);
brush.color := pen.color;
ellipse(k, u, k1, u1);
k := k - 30;
u := u + 80;
k1 := k1 - 30;
u1 := u1 + 80;
end;
k := 225;
u := 90;
k1 := 245;
u1 := 110;
if CKugel.Checked then
for Kugelnlinks := 1 to 3 do
with ITannenbaumBild.canvas do // rechte Kugelseite
begin
pen.color := random(color);
brush.color := pen.color;
ellipse(k, u, k1, u1);
k := k + 30;
u := u + 80;
k1 := k1 + 30;
u1 := u1 + 80;
end;
end;
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
Geschenke := StrToInt(SGeschenke.Text);
with ITannenbaumBild.canvas do
if Geschenke > 8 then
begin
ShowMessage('Du bist zu gierig!');
Close;
end
else
begin
for Lauf := 1 to Geschenke do
begin
x2 := random(300) + 10;
y2 := random(50) + 340;
Brush.Color := clred;
pen.color := clred;
rectangle(x2 - 20, y2, x2 + 20, y2 + 10); //Geschenk
Brush.Color := clyellow;
Pen.Color := clyellow;
rectangle(x2 - 1, y2 + 10, x2 + 1, y2 + 0);
//Schleife Geschenk von oben nach unten
rectangle(x2 - 20, y2 + 4, x2 + 20, y2 + 6);
//Schleife Geschenk von links nach rechts
end;
end;
end;
