Autor Beitrag
theSonGoku
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: 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. :P

WuerfelUnit:
ausblenden volle Höhe 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:
ausblenden volle Höhe 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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Wuerfel : byte;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Wuerfel := WuerfelUnit.create();
end;

end.

mfG

theSonGoku

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 02.06.09 00:30 
Moin!

Und was ist jetzt deine Frage? :gruebel: :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 02.06.09 00:36 
user profile icontheSonGoku hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden 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:
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:
ausblenden 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(); // Instanz von TWuerfel erstellen und in Wuerfel legen
  try
    Wuerfel... // Wuerfel benutzen
  finally
    Wuerfel.Free; // Den belegten Speicher von Wuerfel wieder freigeben
  end;
end;
theSonGoku Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 29



BeitragVerfasst: 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



BeitragVerfasst: Fr 26.06.09 22:15 
- Nachträglich durch die Entwickler-Ecke gelöscht -
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 27.06.09 00:19 
user profile icontheSonGoku hat folgendes geschrieben Zum zitierten Posting springen:
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.