Autor Beitrag
spacemanspiff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53
Erhaltene Danke: 1



BeitragVerfasst: Mo 12.03.12 16:17 
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:

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:
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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Titel geändert, war: "absolute Anfängerfrage: kein Zugriff auf Klassenattribute".


Zuletzt bearbeitet von spacemanspiff am Mo 12.03.12 16:22, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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:
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 user defined image klicken und den Titel ändern. Danke dir!

Zu deinem Problem:
Deine Prozedur ist kein Member deiner Klasse, es fehlt:
ausblenden Delphi-Quelltext
1:
procedure TMESSUNG.CalcResistance();					
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Mo 12.03.12 16:20, insgesamt 1-mal bearbeitet
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 12.03.12 16:20 
Zeile 37:

ausblenden Delphi-Quelltext
1:
procedure TMESSUNG.CalcResistance();					

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
spacemanspiff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53
Erhaltene Danke: 1



BeitragVerfasst: Mo 12.03.12 16:21 
Oh Gott,

schwer peinlich!

Danke schön! :)