![]() |
Delphi-Version: 2006
Projekt für die Schule
Hey, ich brauche unbedingt eure Hilfe!
Wir müssen für die Schule ein Programm schreiben, in dem wir einen Kreis erstellen müssen, der sich bewegt und dabei vllt auch noch zappelt. Der Kreis darf aber nur eine Linie sein, also darf nicht ausgemalt sein. Wir sollen den Kreis als Klasse erstellen. Alles soll im Rahmen der objektorientierten Programmierung laufen und wir sollen dann dazu einen Vortrag machen. Ich hab keine Ahnung was ich machen soll, aber ich muss dieses Jahr Informatik unbedingt einbringen.:oops: Ich hoffe ihr könnt mir helfen.. Vielen Dank schonmal im Voraus für die Hilfe.:wink: |
AW: Projekt für die Schule
Tja, dann fangen wir mal von vorne an:
Was ist ein Kreis? Wie definiert sich ein Kreis? Mit welchen Methoden hast du bisher etwas in Delphi gezeichnet? Sherlock |
AW: Projekt für die Schule
Also wir haben bis jetzt mit den Methoden Verschwinden, Erscheinen und Bewegen gearbeitet. Es ist also ein Programm entstanden mit 3 Buttons, in dem ein Kreis erscheint, den man bewegen kann und der dann wieder verschwindet. Wir sollen das Programm so ändern, dass man mehrere Kreise bewegen kann, die nicht weiß im innern sind. Der Kreis besteht also nur aus der Linie. Das kann man iwie über den Winkel ( mit Sinus oder Kosinus) programmieren, wie genau weiß ich aber nicht..
|
AW: Projekt für die Schule
Du solltest Dir überlegen, welche Eigenschaften und Methoden so ein Kreis hat/haben muss. Das bringst Du erst einmal zu Papier, wenn dieses Gerüst dann Deiner Meinung nach vollständig ist, kannst Du es als Klasse programmieren.
|
AW: Projekt für die Schule
Über die Eigenschaften von dem Kreis (Radius,Winkel...) und die Methoden weiß ich bescheid, ich hab nur keine Ahnung wie ich sie umsetzen soll.:|
|
AW: Projekt für die Schule
Wie sieht denn Dein bisheriger Quelltext aus?
|
AW: Projekt für die Schule
Hallo,
zeig Mal das Programm mit Verschwinden, Erscheinen und Bewegen. Dann wissen wir auf welchem Niveau Ihr euch bewegt. Zitat:
|
AW: Projekt für die Schule
Ja das kann ich aber erst am Montag früh machen weil wir nur da Informatik haben und wir nur dann Zugriff auf das Programm haben.
|
AW: Projekt für die Schule
Zitat:
Ist jetzt nicht die Schuld von Julie, sondern eher vom Lehrer. Soooo schwer ist Pascal nun auch nicht, als daß man unbedingt mit dieser "überalterten" und sprachlich vergewaltigten Bibliothek arbeiten muß. :?: Vorallem da Dieses auch noch als "leichte" Lehrsprache entwickelt wurde. Welches dann nur Probleme bereitet, da wir schwerer helfen können, da von uns kaum einer diese Code-Bibliothek kennt und man es auch schwerer hat, wenn man dann mal "richtig" programmieren möchte. |
AW: Projekt für die Schule
@Himitsu
wie jetzt? das ist sogar eine eigene Bibliothek?:shock::pale: Unglaublich...:? Müsst ihr den Kreis denn wirklich komplett neu erfinden oder dürft ihr vorhandene Methoden benutzen? LG; hans ditter |
AW: Projekt für die Schule
Ja, sowas wurde mal vor Jahren "erschaffen", um es Schülern noch einfacher zu machen ... ist quasi ein Framwork, welches viele Delphifunktionen kapselt und hinter deutschen Bezeichungen versteckt.
Leider ist es manchmal nicht unbedingt leicht verständlich, was sich hinter soeiner Funktion wirklich versteckt, wenn man die entsprechende Lib nicht kennt. Und im Gegenzug können wir schlechter Tipps geben, da wir ja nicht wissen wie die von uns empfohlene Funktion oder Komponente denn darin eventuell heißen könnte. Hide oder Visible:=False > Verschwinden Show oder Visible:=True > Erscheinen Left und Top > Bewegen Nja, dann mal sehn was Julie uns am Montag presentiert. |
AW: Projekt für die Schule
Hi,
Zitat:
Nennt sich "Stifte und Mäuse (SuM)" und scheint es für zig Programmierspracehn (u.a. eben auch Delphi) zu geben. LG, Frederic |
AW: Projekt für die Schule
Ich hoffe, der Entwickler dieser Bibliothek wurde danach gezwungen ein Office Paket damit zu programmieren. :evil:
|
AW: Projekt für die Schule
Zitat:
![]() |
AW: Projekt für die Schule
Den Quelltext gibts weiter unten.
|
AW: Projekt für die Schule
Verwende bitte die Delphi Tags um Code zu posten. Diesen Code möchte so sicherlich keiner lesen^
|
AW: Projekt für die Schule
Wir sollen den Kreis erstmal setzen, und dann mit der Hintergrundfarbe ausfüllen damit nur noch die Linie zu sehen ist. Wir sollen den Kreis "zappeln" lassen, indem wir immer wieder den Mittelpunkt um ein kleines Stückchen verschieben.
Vielen Dank schonmal für die ganze Hilfe.:) |
AW: Projekt für die Schule
Wie funktioniert das mit den Delphi Tags? Tut mir Leid, bin hier neu..
|
AW: Projekt für die Schule
Editier den Beitrag und markier den Code. Dann klickst du auf den Delphi Helm...
In etwa so:
Code:
[DELPHI]HIER DEIN CODE[/DELPHI]
|
AW: Projekt für die Schule
Delphi-Quellcode:
unit Rund2;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TKreis = class private x, y, Durchm: Integer; public constructor Create (xx,yy,dd: Integer); procedure Erscheinen; procedure Bewegen; procedure Verschwinden; end; TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); end; var Form1: TForm1; Kreis: TKreis; implementation {$R *.DFM} constructor TKreis.Create (xx,yy,dd: Integer); begin x := xx; y := yy; Durchm := dd; end; procedure TKreis.Erscheinen; begin Form1.Canvas.Ellipse (x, y, x+Durchm, y+Durchm); end; procedure TKreis.Bewegen; var i: Integer; Quelle, Ziel: TRect; begin for i := x-5 to Form1.ClientWidth-Durchm-x-5 do begin //Kopieren einer Figur an einen anderen Platz Quelle := Rect(i, y-5, i+Durchm+5, y+Durchm+5); Ziel := Rect(i+1, y-5, i+Durchm+6, y+Durchm+5); Form1.Canvas.CopyRect(Ziel, Form1.Canvas, Quelle); sleep (10); //Pause end; end; procedure TKreis.Verschwinden; begin Form1.Refresh; //Form1 erneuern end; procedure TForm1.FormCreate(Sender: TObject); begin Kreis := TKreis.Create (30,30,180); Canvas.Brush.Color := clWhite; // ansonsten Grau end; procedure TForm1.Button1Click(Sender: TObject); begin Kreis.Erscheinen; end; procedure TForm1.Button2Click(Sender: TObject); begin Kreis.Bewegen; end; procedure TForm1.Button3Click(Sender: TObject); begin Kreis.Verschwinden; end; end. |
AW: Projekt für die Schule
Du hättest deinen ersten Beitrag nur editieren brauchen. Jetzt haben wir die hässlichen Code immernoch im Thread :)
|
AW: Projekt für die Schule
Wäre es nicht besser, TKreis von TGraphicControl abzuleiten und dann natürlich auf dessen eigenen Canvas zu zeichnen anstatt fix auf den der "Form1"?! :shock:
Nachtrag: Wenn man den Kreis nicht ausgefüllt haben möchte, setzt man nicht Canvas.Brush.Color auf irgend etwas sondern statt dessen Canvas.Brush.Style auf bsClear. |
AW: Projekt für die Schule
Hallo,
Also da hast du ja schon fast alles was du brauchst du musst nun nur dafür sorgen das es etwas RANDOM wird am besten du machst dir einen Timer und generierst zuerst einen Integer im beriech von 0-2.
Delphi-Quellcode:
Nun ordnest du verschieden Integern verschiedene Funktionen zu
i := Random(3) ;
Bsp
Delphi-Quellcode:
Oder wenn ihr das noch nicht kennt kannst du auch ne If-Abfage machen
case i of
0 : TKreis.Erscheinen ; 1 : TKreis.Bewegen ; 2 : TKreis.Verschwinden; end;
Delphi-Quellcode:
So und um einen "hohlen" Kreis zu erzeugegen
If i = 0 then TKreis.Erscheinen ;
If i = 1 then TKreis.Bewegen ; If i = 2 then Kreis.Verschwinden;
Delphi-Quellcode:
(Nur wenn die Hintergrundfarbe des Fensters clBtnFace ist )
Kreis := TKreis.Create (30,30,180);
Canvas.Brush.style := bsclear ; Gruß Christian |
AW: Projekt für die Schule
Zitat:
|
AW: Projekt für die Schule
Zitat:
|
AW: Projekt für die Schule
Also bewirkt Random das Zappeln des Kreises? Wo muss ich diesen Teil in meinen Quelltext einfügen?
Danke :) |
AW: Projekt für die Schule
In Delphi gibt Random eine Zufallszahl im Bereich 0 <= X < Range zurück. Wird der Parameter Range nicht angegeben, liefert Random einen Real-Wert im Bereich
0 <= X < 1. Um den Zufallszahlengenerator zu initialisieren, rufen Sie Randomize einmal auf oder weisen der Variablen RandSeed vor dem Aufruf von Random einen Wert zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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