AW: Linien beim zeichnen anzeigen lassen
Zitat:
Das Ziel ist sehr wahrscheinlich nicht, dass sie mal eine "Animation" programmieren können der das Haus des Nikolaus zeichnet sondern eher zu überlegen wie man so etwas am besten Lösen könnte. Hier gibt es wieder unbegrenzt viele Lösungen (z.B. die Sleep-Lösung von EarlyBird oder meine Timer Lösung die sich beide komplett verschieden verhalten), wo die eine etwas besser und die andere etwas schlechter ist. Das Resultat ist dabei auch immer verschieden. An einem einfachen Code kann man eigentlich auch gut sehen wie eine Person ein Problem löst und wie weit seine Kenntnisse in der Thematik liegen. Welche Aufgabe würdest du denn vergeben? ;) Freundliche Grüsse |
AW: Linien beim zeichnen anzeigen lassen
Zitat:
|
AW: Linien beim zeichnen anzeigen lassen
Zitat:
|
AW: Linien beim zeichnen anzeigen lassen
SLEEP-Funktionen innerhalb von Graphik-Funktionen zeigen unerwartete Ergebnisse.
Delphi-Quellcode:
procedure Delay(msecs:integer);
var FirstTickCount:longint; begin FirstTickCount:=GetTickCount; repeat Application.ProcessMessages; until ((GetTickCount-FirstTickCount) >= Longint(msecs)); end; procedure TForm1.Button6Click(Sender: TObject); var D : integer; begin D:=1000; with Canvas do begin Pen.Width:=5; Pen.Color := clLime; MoveTo(100,200); LineTo(100,100); Delay(D); LineTo(200,100); Delay(D); LineTo(150,50); Delay(D); LineTo(100,100); Delay(D); LineTo(200,200); Delay(D); LineTo(100,200); Delay(D); LineTo(200,100); Delay(D); LineTo(200,200); end; end; procedure TForm1.Button8Click(Sender: TObject); var D : integer; begin D:=1000; with Canvas do begin Pen.Width:=5; Pen.Color := clRed; MoveTo(100,200); LineTo(100,100); SLEEP(D); LineTo(200,100); SLEEP(D); LineTo(150,50); SLEEP(D); LineTo(100,100); SLEEP(D); LineTo(200,200); SLEEP(D); LineTo(100,200); SLEEP(D); LineTo(200,100); SLEEP(D); LineTo(200,200); end; end; |
AW: Linien beim zeichnen anzeigen lassen
Zeichnen auf ein ungecachtes Canvas ist ebenfalls ein schöner Fauxpas.
|
AW: Linien beim zeichnen anzeigen lassen
Hallo nochmal,
ich würde meinen Quelltext gerne posten doch in hab kein Plan wie, kann das mal bitte kurz jemand beschreiben wie man des macht ? Danke :) |
AW: Linien beim zeichnen anzeigen lassen
Setzt den Delphi Code einfach zwischen [DELPHI]-Tags
Also so:
Code:
[DELPHI]
begin end; [/DELPHI]
Delphi-Quellcode:
begin
end; |
AW: Linien beim zeichnen anzeigen lassen
Oder das ganze Projekt in eine Zip-Datei packen und als Dateianhang einfügen.
|
AW: Linien beim zeichnen anzeigen lassen
Du möchtest hier, in diesem Thread, einen Delphi-Code posten?
@BadenPower: Im notfalls könnte man auch nur die nötige PAS anhängen. @milos: Für sowas fand ich den anderen geheimen BBCode auch immer ganz nett. [DELPHI]hier dein Delphi-Code[/DELPHI] Aber das mit [DELPHI] oder [CODE] bekommt man doch ganz leicht mit, wenn man oben mal die Editor-Buttons ausprobiert, oder da gaaanz unten, in den "Forumregeln", sich die BBCode-Hilfe anschaut, aber wer liest schon die Hilfe? :stupid: |
AW: Linien beim zeichnen anzeigen lassen
Jaa, das ist es...Danke! :)
Also hier meinen Code zum Haus vom Nikolaus. Ist vieleicht ein wenig primitiv, aber die 15-MSS-Punkte hats gelangt. :thumb::-D
Code:
@hathor Also über Leute wie dich kann ich nur lachen. Schön über Lehrer meckern und selber zu faul um erstmal die Problematik zu lesen. Die Aufgabe war es mit dem Zeichen auf einer canvas auseinander zu setzten und dann das Haus des Nikolaus zu implementieren. Als Zusatz Aufgabe war es dann nun es so zu programmieren, das man sieht, wie die Linien sich bewegen.
[DELPHI]
begin procedure TForm1.Button2Click(Sender: TObject); var a, b, c, i: integer; begin a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); c := StrToint(Edit3.Text); if (c>1) and (c mod 2 = 0) then begin canvas.Pen.Color := clBlack; canvas.Brush.Color := clWhite; canvas.Pen.Style := psSolid; canvas.Pen.Width := 5; canvas.clear; canvas.clear; canvas.MoveTo(a, b); for i := 0 to c do begin canvas.LineTo(a+i, b); sleep(5); end; a := a+i; for i := 0 to c do begin canvas.LineTo(a-i, b-i); sleep(5); end; a := a-i; b := b-i; for i := 0 to c do begin canvas.LineTo(a+i, b); sleep(5); end; a := a+i; for i := 0 to (c div 2) do begin canvas.LineTo(a-i, b-i); sleep(5); end; a := a-i; b := b-i; for i := 0 to (c div 2) do begin canvas.LineTo(a-i, b+i); sleep(5); end; a := a-i; b := b+i; for i := 0 to c do begin canvas.LineTo(a, b+i); sleep(5); end; b := b+i; for i := 0 to c do begin canvas.LineTo(a+i, b-i); sleep(5); end; a := a+i; for i := 0 to c do begin canvas.LineTo(a, b); sleep(5); end; end; end; end; [/DELPHI] Außerdem sind wir mittlerweile an einen deutlich schwereren Aufgabe dran. (Also aus der Sicht von jemanden, der erst seit nem halben Jahr Info hat und sich sonst sich nicht arg so viel sich mit dem Thema auseinander setzt, aber dennoch Interesse zeigt) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz