AGB  ·  Datenschutz  ·  Impressum  







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

Array Zugriffsverletzung

Ein Thema von Kytrix · begonnen am 30. Dez 2009 · letzter Beitrag vom 30. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
Kytrix

Registriert seit: 26. Nov 2007
54 Beiträge
 
#1

Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:02
Delphi-Quellcode:
unit mWürfel;

interface

type
  TWürfel=Class(TObject)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    PunkteArray: Array[1..8, 1..3] of Integer;
    function GetPunkte(Punkt, Koordinate: Integer): Integer;
    procedure SetPunkte(Punkt, Koordinate, Wert: Integer);
  end;

implementation

function TWürfel.GetPunkte(Punkt, Koordinate: Integer) :Integer;
begin
  Result:=PunkteArray[Punkt,Koordinate];
end;

procedure TWürfel.SetPunkte(Punkt, Koordinate, Wert: Integer);
begin
  PunkteArray[Punkt,Koordinate]:=Wert;
end;

end.

PunkteArray[Punkt,Koordinate]:=Wert; //Hier bekomme ich die Fehlermeldung Erste Gelegenheit für Exception bei $75079617. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 004AE2FC in Modul 'Engine.exe'. Schreiben von Adresse 00000008'. Prozess Engine.exe (4720)

Irgendwie stehe ich voll auf dem Schlauch =/ ....
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:10
Hat vielleicht nichts mit deinem Problem zu tun, aber auf Umlaute würde ich persönlich verzichten. Aus dem "Würfel" würde ich einen "Wuerfel" machen!
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:11
Ich würde mal sagen Punkt ist größer als 8 oder Koordinate ist größer als 3 oder beides.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#4

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:13
1. auf Umlaute (würfel) verzeichten
2.
PunkteArray[Punkt,Koordinate]:=Wert; Dann wird wohl entweder Punkt kleiner als 1 oder größer als 8 sein
oder
Koordinate wird kleiner als 1 oder größer als 3 sein.

Mach mal folgendes uns poste das Ergebnis dann:
Delphi-Quellcode:
showmessage(IntToStr(Punkt) + ', ' + IntToStr(Koordinate));
//PunkteArray[Punkt,Koordinate]:=Wert;
  Mit Zitat antworten Zitat
Kytrix

Registriert seit: 26. Nov 2007
54 Beiträge
 
#5

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:15
PunkteArray[2,2]:=3; selbe fehlermeldung an den übergebenen werten kann es nicht liegen .... beide liegen in Wertebeereich 1..3 und 1..8
  Mit Zitat antworten Zitat
Tobinator

Registriert seit: 18. Mai 2008
Ort: Cottbus
53 Beiträge
 
#6

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:18
vielleicht einfach nur vergessen zu createn?
Tobias
  Mit Zitat antworten Zitat
helgew

Registriert seit: 30. Jul 2008
125 Beiträge
 
#7

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:20
ü:
[Error] Unit1.pas(12): Illegal character in input file: 'ü' ($FC)
dann mach ich:
Delphi-Quellcode:
var
  w : TWuerfel;
begin
  w := TWuerfel.Create;
  w.SetPunkte(2,2,3);
und der Rest tut. Also was ist passiert? Du hast die Klasse TWuerfel deklariert. Genaugenommen handelt es sich dabei um einen Satz von Funktionen, die beim Aufruf stets einen Zeiger auf einen Speicherbereich mitbekommen. durch den Create() - Konstruktor wird der eigentlich für eine Instanz (dem eigentlichen Objekt) benötigte Speicher reserviert. Ein Objekt, wie es dann w ist, wendet die in der Klassendeklaration aufgeführten Methoden auf den Speicherbereich, der hinter w als Zeiger steckt, an.
Daher ist es wichtig, sowohl die Klasse zu deklarieren als auch den Konstruktor auszuführen, der eine Instanz erzeugt.
  Mit Zitat antworten Zitat
Kytrix

Registriert seit: 26. Nov 2007
54 Beiträge
 
#8

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:25
Delphi-Quellcode:
unit mMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, mWürfel;

type
  TMain = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    ImProjEbene: TImage;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    Würfel: TWürfel; // Hier erzeuge ich doch ?
  public
    { Public-Deklarationen }
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

procedure TMain.Button1Click(Sender: TObject);
begin
  Würfel.SetPunkte(2,2,4);
  Würfel.SetPunkte(2,3,3);
  Label1.Caption:=IntToStr(Würfel.GetPunkte(2,2)) + IntToStr(Würfel.GetPunkte(2,3));
end;


end.
  Mit Zitat antworten Zitat
Tobinator

Registriert seit: 18. Mai 2008
Ort: Cottbus
53 Beiträge
 
#9

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:27
Delphi-Quellcode:
procedure TMain.Button1Click(Sender: TObject);
begin
  Würfel := TWürfel.Create; // Das muss noch rein
  Würfel.SetPunkte(2,2,4);
  Würfel.SetPunkte(2,3,3);
  Label1.Caption:=IntToStr(Würfel.GetPunkte(2,2)) + IntToStr(Würfel.GetPunkte(2,3));
  Würfel.free; // Das evtl. auch noch
end;
Tobias
  Mit Zitat antworten Zitat
Kytrix

Registriert seit: 26. Nov 2007
54 Beiträge
 
#10

Re: Array Zugriffsverletzung

  Alt 30. Dez 2009, 13:30
hat sich erledigt hab wirklich das erzeugen vergessen ..... -.-


sprich mit
Delphi-Quellcode:
  .....
  Würfel:=TWürfel.Create;
  .....
vielen dank leute und entschuldigt bitte den unnötigen thread
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:35 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