Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - kein Zugriff auf Klassenattribute
spacemanspiff - Mo 12.03.12 16:17
Titel: kein Zugriff auf Klassenattribute
Hallo,
ich raff es nicht. Ich kann innerhalb der Klasse nicht auf meine Attribute zugreifen?
Der Comiler meckert in der ersten Zeile der einzigen procedure an, dass FPunkt1_T nicht deklariert sei? (und alle folgenden Attribute ebenfalls)
Was übersehe ich?
hier mein Code:
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: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80:
| unit MESSUNG;
interface
uses SPRACHE, DIALOGS, SYSUTILS;
const C0 = 1.706E-12;
type TMESSUNG = class private FDatei: String; FDok1: String; FDok2: String; FDok3: String; FIonzeit: Integer; FTyp: Integer; FPunkt1_T: Integer; FPunkt1_W: Double; FPunkt2_T: Integer; FPunkt2_W: Double; FPunkt3_T: Integer; FPunkt3_W: Double; FPunkt4_T: Integer; FPunkt4_W: Double; FAbnahme: Double; FR1: Double; FR2: Double; FR3: Double; FRGes: Double; public procedure CalcResistance(); end;
implementation
procedure CalcResistance(); var POffset : Double; dTmp: Double; begin POffset := FPunkt1_T; if POffset > FPunkt2_W then POffset := FPunkt2_W; if POffset > FPunkt3_W then POffset := FPunkt3_W; if POffset > FPunkt4_W then POffset := FPunkt4_W; FPunkt1_W := FPunkt1_W - POffset + 1; FPunkt2_W := FPunkt2_W - POffset + 1; FPunkt3_W := FPunkt3_W - POffset + 1; FPunkt4_W := FPunkt4_W - POffset + 1; if ( FPunkt4_T <= FPunkt3_T ) or ( FPunkt3_T <= FPunkt2_T ) or ( FPunkt2_T <= FPunkt1_T ) then begin ShowMessage( GetResStr( 74, lang ) ); exit; end; if ( FPunkt4_W >= FPunkt3_W ) or ( FPunkt3_W >= FPunkt2_W ) or ( FPunkt2_W >= FPunkt1_W ) then begin ShowMessage( GetResStr( 75, lang ) ); exit; end; try dTmp := 1000 * ( ln( FPunkt1_W ) - ln( FPunkt2_W ) ) * C0; FR1 := ( FPunkt2_T - FPunkt1_T ) / dTmp; dTmp := 1000 * ( ln( FPunkt2_W ) - ln( FPunkt3_W ) ) * C0; FR2 := ( FPunkt3_T - FPunkt2_T ) / dTmp; dTmp := 1000 * ( ln( FPunkt3_W ) - ln( FPunkt4_W ) ) * C0; FR3 := ( FPunkt4_T - FPunkt3_T ) / dTmp; FRGes := ( FR1 + FR2 + FR3 ) / 3; except on EZerodivide do begin FRGes := 0; end; end; end;
end. |
Hoffe, es stösst mich einer mit der Nase drauf.
Beste Grüße,
Thomas
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Moderiert von
Narses: Titel geändert, war: "absolute Anfängerfrage: kein Zugriff auf Klassenattribute".
Narses - Mo 12.03.12 16:19
Moin!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
3.4 Frage formulieren - Der richtige Titel [http://www.entwickler-ecke.de/richtlinien.html]: |
Formuliere den Betreff deiner Themen so, dass der Leser (und damit möglicherweise dein Helfer) anhand des Titels bereits weiß, worum es in diesem Topic geht. Titel wie z.B. "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" machen nicht neugierig auf mehr, ehrlich. Auch "HILFEEEE!!!!" hat sich bisher nicht bewährt. Wenn du ein Topic eröffnest ist es höchstwahrscheinlich, dass du Hilfe brauchst. |
Einfach unten in deinem ersten Beitrag auf

klicken und den Titel ändern. Danke dir!
Zu deinem Problem:
Deine Prozedur ist kein Member deiner Klasse, es fehlt:
Delphi-Quelltext
1:
| procedure TMESSUNG.CalcResistance(); |
cu
Narses
Nersgatt - Mo 12.03.12 16:20
Zeile 37:
Delphi-Quelltext
1:
| procedure TMESSUNG.CalcResistance(); |
spacemanspiff - Mo 12.03.12 16:21
Oh Gott,
schwer peinlich!
Danke schön! :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!