Entwickler-Ecke
Sonstiges (Delphi) - Wuerfel mit OOP
theSonGoku - Di 02.06.09 00:22
Titel: Wuerfel mit OOP
Hallo,
bin neu im Forum, daher hoffe ich mal, dass ich hier richtig bin.^^
Also:
Ich schreibe am Donnerstag eine praktische Prüfung in Delphi. Wir sollen in OOP einen Würfel erstellen können.
Wir haben nur bisher nicht wirklich gezeigt bekommen, wie sowas geht.
Ich poste mal mein Programm und hoffe ihr nehmt es auseinander.^^ Denn ich weis nicht wie es geht.^^
Hatte zwar Programmieren immer eine 2, aber mit OOP Programmieren ist irgendwie etwas komisch. :P
WuerfelUnit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| unit WuerfelUnit;
interface
uses Math;
type TWuerfel = class private FSeiten : byte; FAugen : byte; protected procedure wuerfeln(); public constructor create();
end;
implementation
constructor TWuerfel.create(); begin FSeiten := 6; end;
procedure TWuerfel.wuerfeln(); begin FAugen := randomrange(0,7); end;
end. |
WuerfelProjekt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| unit WuerfelnUnit;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, WuerfelUnit, Math, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1; Wuerfel : byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Wuerfel := WuerfelUnit.create(); end;
end. |
mfG
theSonGoku
Moderiert von
Narses: Delphi-Tags hinzugefügt
Narses - Di 02.06.09 00:30
Moin!
Und was ist jetzt deine Frage? :gruebel: :nixweiss:
cu
Narses
Bergmann89 - Di 02.06.09 00:31
HI,
was genau verstehst du denn nich? Du hast deine Klasse TWuerfel. Und wenn du auf den Butten klickst erstellst du n neues Obkejt vom Typ TWuerfel.
MfG Bergmann.
theSonGoku - Di 02.06.09 00:33
Was ich nicht verstehe ist:
1. Wie das mit der OOP daoben überhaupt klappt.^^ Ich kapier das mit public und soweite garnicht.
2. Das Programm, wie es da steht, klappt nicht. Ich hätte mich auch gewundert wenn es gehen würde.^^
jaenicke - Di 02.06.09 00:36
theSonGoku hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| unit WuerfelUnit;
type TWuerfel = class ...
var Form1: TForm1; Wuerfel : byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Wuerfel := WuerfelUnit.create(); end; | |
Du deklarierst eine Klasse TWuerfel in der Unit WuerfelUnit, dann deklarierst du eine Variable Wuerfel vom Typ byte und versuchst eine Instanz der Unit WuerfelUnit zu erstellen und in eine Variable vom Typ byte zu legen. :eyecrazy:
Einen sehr guten Crashkurs findest du hier:
http://crashkurs.christian-stelzmann.de
und die neue Version speziell ab Turbo Delphi:
http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html
Ein weiteres gutes Online-Buch:
http://de.wikibooks.org/wiki/Programmierkurs:_Delphi
Du wolltest wohl eher sowas machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var Wuerfel: TWuerfel; begin Wuerfel := TWuerfel.Create(); try Wuerfel... finally Wuerfel.Free; end; end; |
theSonGoku - Di 02.06.09 00:41
Das einfachste wäre jetzt, mir zu sagen was warum falsch war, und mir dann zu sagen wie es anders richtig ist.^^ Weil ist ja nicht so als hätte ich von Delphi keine Ahnung. :P
Nur mit OOP komm ich nicht wirklich gut klar.
Also mit dem gebrauchen einer Unit, aber warum der mir den Fehler anzeigt, ind er Zeile, wo create steht etc.
jaenicke - Di 02.06.09 00:44
Naja, wenn du gar nicht erst weißt was ein Objekt oder eine Klasse ist, dann kann man da auch nicht viel erklären... Ich kann jetzt nicht den ganzen Inhalt eines Grundlagenbuchs abspulen...
Da musst du schon selber nachlesen.
Eine Klasse ist sozusagen der Bauplan für ein tatsächliches Objekt im Speicher. Und mit Create erzeugst du aus dem Bauplan ein solches Objekt. Nur ist der Bauplan ja TWuerfel, denn du willst ja ein Würfel-Objekt erzeugen. Du jedoch hast versucht die Unit als Bauplan zu benutzen. Das ist aber nur Quasi der Hefter, in dem der Bauplan abgeheftet ist...
theSonGoku - Di 02.06.09 00:47
Was eine Klasse und Atribute etc sind weis ich doch.^^
private
protected
procedure
public
constructor
Was sind das für Begriffe? Und wie ist das Programm am besten zu realisieren und warum?^^ DAS ist meine Frage,
Delete - Fr 26.06.09 22:15
- Nachträglich durch die Entwickler-Ecke gelöscht -
alzaimar - Sa 27.06.09 00:19
theSonGoku hat folgendes geschrieben : |
| Was eine Klasse und Atribute etc sind weis ich doch.^^ |
Ach. Wie kommt es dann, das Du keine Klasse verwendest, sondern die Unit ('TWuerfelUnit.Create').
Und warum verwendest Du eine Variable vom Typ 'Byte'?
Komm schon. Fang mal von vorne an. Dann ergibt sich der Rest von selbst.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!