Autor Beitrag
Johnnybg
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 16.03.10 17:11 
Hallo
nach längerem (d.h. meine oop kenntnisse sind sehr eingerostet) habe ich mich mal wieder an ein projekt gesetzt und bin gleich an einem problem bezüglich der aggregation hängengeblieben. ich weiß jetzt zwar wie man es umgeht, kann es mir nicht erklären:

also (stark vereinfacht):
angenommen in unit3 ist die klasse von b mit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  TKlasseB = class
    procedure hi;
  end;

.....

procedure TKlasseB.hi;
begin
  showmessage('Hello World');
end;

in unit2 befindet sich die Klasse von a mit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  TKlasseA = class
    procedure hi1;
  end;

var
  b : TKlasseB;

implementation

procedure TKlasseA.hi1;
begin
  b.hi;
end;

das ganze wird in unit1 mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Fa.hi1;
end;

aufgerufen, wobei Fa : TKlasseA; ein attribut von TForm1 ist.

Meine frage ist jetzt, warum das nicht funktiniert hat, als b ein attribut von TKlasseA war (genau wie es jetzt mit a in TForm1 ist), ob es jetzt unter var eine von der klasse unabhängige variable der unit ist und falls ja(was ich denke), wie es aussehen müsste, wenn TKlasseA und TKlasseB eine aggregation haben.
(ich habe den aufruf von b direkt über a und danach mit einer methode von a versucht, weil ich zuerst die sichtbarkeiten vermutete, hat aber auch nciht geklappt)

mfg Johnny
ps: achja, warum entfallen eigentlich die .create sachen und führen sogar zu Fehlermeldungen?

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 16.03.2010 um 16:46