| Autor |
Beitrag |
theSonGoku
      
Beiträge: 29
|
Verfasst: Di 02.06.09 00:22
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.
WuerfelUnit:
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:
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
      

Beiträge: 10184
Erhaltene Danke: 1259
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 02.06.09 00:30
Moin!
Und was ist jetzt deine Frage?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
theSonGoku 
      
Beiträge: 29
|
Verfasst: 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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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.
Einen sehr guten Crashkurs findest du hier:
crashkurs.christian-stelzmann.de
und die neue Version speziell ab Turbo Delphi:
www.christian-stelzm...shkurs_reloaded.html
Ein weiteres gutes Online-Buch:
de.wikibooks.org/wik...grammierkurs:_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 
      
Beiträge: 29
|
Verfasst: 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.
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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 29
|
Verfasst: 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,
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 26.06.09 22:15
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: 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.
_________________ Na denn, dann. Bis dann, denn.
|
|
|