AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi type Auf Eigenschaft kann hier nicht zugegriffen werden
Thema durchsuchen
Ansicht
Themen-Optionen

type Auf Eigenschaft kann hier nicht zugegriffen werden

Ein Thema von gandime · begonnen am 16. Nov 2007 · letzter Beitrag vom 16. Nov 2007
Antwort Antwort
gandime
(Gast)

n/a Beiträge
 
#1

type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:22
Hi,
ich habe folgenden Fehler:
Zitat:
[DCC Fehler] Unit1.pas(51): E2233 Auf Eigenschaft 'i_pos_x' kann hier nicht zugegriffen werden
bei folgendem code:
Delphi-Quellcode:
type
  ball = class
  private
    i_x,i_y:integer;
  public
    procedure mal_dich;
  published
    property i_pos_x: integer read i_x write i_x;
    property i_pos_y: integer read i_y write i_y;
end;

procedure mal_dich;
var
  i:integer;
begin
  i:=ball.i_pos_x;//hier is der fehler
end;
warum is das so?^^


mfg
gandime
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:25
Weil Deine Variable genauso wie die Klasse heißt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#3

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:25
Lass das Ball mal weg und schau was dann passiert

Delphi-Quellcode:
type
  ball = class
  private
    i_x,i_y:integer;
  public
    procedure mal_dich;
  published
    property i_pos_x: integer read i_x write i_x;
    property i_pos_y: integer read i_y write i_y;
end;

procedure mal_dich;
var
  i:integer;
begin
  i:=i_pos_x;//hier is der fehler
end;
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:26
Nimm das "ball." dort raus.

Erklärung:

Eine Klasse kann statische Felder und Instanzfelder enthalten. Statische Felder werden von allen Instanzen geteilt und durch Klassenname.Feldname angesprochen. Instanzfelder werden nur von einer Instanz der Klasse benutzt (wie der Name schon sagt) und werden durch Self.Feldname angesprochen. Das Self. fügt Delphi aber implizit ein.

Das selbe gilt auch für Methoden und Properties.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:27
Delphi-Quellcode:
type
  Tball = class //habe mal den Klassennamen geändert
  private
    i_x,i_y:integer;
  public
    procedure mal_dich;
  published
    property i_pos_x: integer read i_x write i_x;
    property i_pos_y: integer read i_y write i_y;
end;

procedure Tball.mal_dich; //hier fehlte die Definition als Klassenmethode
var
  i:integer;
begin
  i:=self.i_pos_x;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#6

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:30
danke für die schnelle antwort jetzt gehts

edit:
wenn aber eine andere Procedure, die nichts mit Ball zutun hat hab ich wieder das selbe Prob

nen beispiel:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Tball.i_pos_x:=10;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:35
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Ball: TBall;
begin
  Ball := TBall.Create;
  Ball.i_pos_x:=10;
end;
Nicht Klassen und Instanzen durcheinanderwerfen!
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:36
Hai gandime,

Du musst erst eine Instanz deiner Klasse erzeugen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
 meinBall : TBall;
begin
  meinBall := TBall.Create;
  Try
    meinBall.i_pos_x:=10;
  Finally
    meinBall.Free; // Das natürlich nicht im FormCreate ;-)
  end;
end;
Ausserdem solltest Du deiner Klasse einen Delphi-Referenz durchsuchenconstructor spendieren. Selbst wenn der fast nichts macht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#9

Re: type Auf Eigenschaft kann hier nicht zugegriffen werden

  Alt 16. Nov 2007, 17:37
ups doofe frage

jetzt gehts danke
  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 09:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz