Autor Beitrag
wuchzael
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 08.10.06 03:06 
Hi!


Ich hab folgendes Problem. Ich erstelle gerade ein KLEINES Spielchen, mit mehreren Units, auf welchen jeweils eine Klasse und deren Routinen drauf sind.

Ausgangspunkt:
user defined image


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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
unit U_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons,U_Hero, jpeg, ComCtrls, Menus, U_Items;

type
  TForm1 = class(TForm)
    P_Intro: TPanel;
    L_INtro: TLabel;
    [...]
    procedure FormCreate(Sender: TObject);
    [...]
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Hero : THero;
  Trank : TItems;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
 Hero := THero.Create;
 Trank := TItems.Create;
 Hero.HPSpeichern(50);
 Hero.MaxHPSpeichern(200);
 Trank.PunkteSpeichern(50);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Trank.ItemUse;
end;

end.



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:
35:
36:
37:
38:
unit U_Hero;

interface

uses Messages, Dialogs, Sysutils;

type
 THero = class (TObject)
  private
   Lebensenergie : Integer;
   MaxHP : Integer;
  public
   procedure HPSpeichern(Wert : Integer);
   procedure MaxHPSpeichern(Wert : Integer);
   function HPAuslesen : Integer;
 end;


implementation


procedure THero.HPSpeichern(Wert : Integer);
begin
 Lebensenergie := Wert;
end;

procedure THero.MaxHPSpeichern(Wert : Integer);
begin
 MaxHP := Wert;
end;

function THero.HPAuslesen : Integer;
begin
 Result := Lebensenergie;
end;


end.



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:
35:
36:
unit U_Items;

interface


uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, Menus, ExtCtrls, StdCtrls, U_Hero;


type TItems = class (TObject)
     private
      HPReg    : Integer;
     public
      procedure PunkteSpeichern(Wert : Integer);
      procedure ItemUse;
end;


var Hero : THero;

implementation

procedure TItems.PunkteSpeichern(Wert : Integer);
begin
 HPReg := Wert;
end;



procedure TItems.ItemUse;
begin
 Hero.HPSpeichern((Hero.HPAusgeben+HPReg));
end;


end.





Also, ich will, dass ich vom Formular aus eine Routine aus U_Item aufrufen kann und diese Routine einen Wert in U_Hero ändert. Man sieht schon, dass das nicht funktionieren kann... ich habe aus Verzweiflung die Variable "Hero : THero" in der U_Items Unit nochmal deklariert, weil "unbekannter Bezeichner (Hero)" als Fehlermeldung kam. Jetzt kennt er zwar "Hero", aber "Hero" wird hier nicht created, also gibts nen Speicherfehler. Und WENN ich "Hero" hier create, dann ist das ein eigener "Hero", der mit dem auf dem Formuler createden nichts zu tun hat. Ich hab einfach vergessen, wie ich das alles verknüpfen muss, dass das so geht, wie ich das möchte :D


Hoffentlich könnt ihr mir schnell und einfach helfen, bin noch nicht so weit ;)





Grüße!
wuchzael Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 08.10.06 13:58 
Kommt schon, dass ist doch für euch Cracks ne Kleinigkeit oder nicht? ;)



Grüße!