AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe mit Textadventure

Ein Thema von MW28 · begonnen am 8. Jan 2015 · letzter Beitrag vom 9. Jan 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Hilfe mit Textadventure

  Alt 8. Jan 2015, 20:03
Also schauen wir uns mal das vom Arbeitsblatt an
Delphi-Quellcode:
constructor TFruit.Create(name: string);
begin
  // And save the fruit name
  self.name := name;
end;
und das was du daraus gemacht hast
Delphi-Quellcode:
constructor TFruit.Create(name: string);
begin
  // And save the fruit name
  self.Fname := Fname;
end;
Was fällt uns auf? Eben, denn richtig wäre
Delphi-Quellcode:
constructor TFruit.Create(name: string);
begin
  // And save the fruit name
  self.Fname := name;
end;
denn
Delphi-Quellcode:
constructor TFruit.Create( {Argument} name: string);
begin
  // And save the fruit name
  self.name := {Argument} name;
end;
Es hat einfach damit zu tun, dass der Compiler sich hier entscheiden muss, worauf sich name denn nun bezieht. Auf ein Element der Klasse oder eben das Argument. Da das Argument der Methode in der Methode aber näher ist als die Klasse, bezieht sich name auf das Argument. Um auf die Klassen-Variable zuzugreifen muss man den Scope mit angeben durch self.name .
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Hilfe mit Textadventure

  Alt 8. Jan 2015, 21:11
Es hat schon seinen Grund, warum Borland mal empfohlen hat, Parameter mit einem "A" als Prefix zu versehen, sowie Felder mit einem "F"-Prefix:
Delphi-Quellcode:

constructor TFruit.Create(AName: string);
begin
  // And save the fruit name
  self.FName := AName;
end;
Nochmal hervorgehoben: self.FName := AName;
So gibts auch keine babylonische Sprachverwirrung mit "name" als Parameter und "name" als Feld. Ich glaube, das der TE nämlich diesen Zusammenhang gar nicht erkannt hat. Und Asche auf das Haupt des Lehrers, der das selbst nicht gerafft hat.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Hilfe mit Textadventure

  Alt 8. Jan 2015, 21:25
Woraus schliesst du, dass der Lehrer da was nicht gerafft hat? Das kann ich daraus nicht ableiten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
MW28

Registriert seit: 8. Jan 2015
5 Beiträge
 
#4

AW: Hilfe mit Textadventure

  Alt 8. Jan 2015, 21:30
Ich der hat das glaube ich schon gerafft, aber den Schülern (also uns) hat der das nicht erklärt. Der Untericht frei im Stil von "Wenn ihr was nicht wisst googlt es." Das ist erstmal garkeine so schlechte Idee aber das ist auch nicht der Sinn eines Lehrers.

Edit: Hab jetzt den Code auf das hier geändert
Delphi-Quellcode:
procedure TRaum.setAusgang(Anorth,Asouth,Aeast,Awest : TRaum) ;
begin
self.Fnorth := Anorth;
self.Fsouth := Asouth;
self.Feast := Aeast;
self.Fwest := Awest;
end;
Allerdings kann ich mit dieser procedure immer noch nicht die Ausgänge festlegen , da sie auf nil bleiben. Ich glaub ich hab das ganze immer noch nicht richtig verstanden. Oder liegt der Fehler jetzt woanders?

Geändert von MW28 ( 8. Jan 2015 um 21:43 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz