AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EAccessViolation beim aufrufen der eigenen Klasse
Thema durchsuchen
Ansicht
Themen-Optionen

EAccessViolation beim aufrufen der eigenen Klasse

Ein Thema von Lee500 · begonnen am 3. Mär 2008 · letzter Beitrag vom 4. Mär 2008
 
Benutzerbild von Lee500
Lee500

Registriert seit: 18. Sep 2006
39 Beiträge
 
Delphi 2010 Architect
 
#1

EAccessViolation beim aufrufen der eigenen Klasse

  Alt 3. Mär 2008, 14:38
Folgendes Problem:

In der MainGame.pas

Delphi-Quellcode:
unit MainGame;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Paint, ExtCtrls;

type
  TMain = class(TForm)
    PaintBox: TPaintBox;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Main: TMain;
  Painter: TPaint;

implementation

{$R *.dfm}

procedure TMain.FormActivate(Sender: TObject);
begin
  Main.Width := Screen.Width;
  Main.Height := Screen.Height;
  Painter := TPaint.Create(PaintBox);
end;

procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Painter.Destroy;
end;

end.
wird meine PainterKlasse (TPaint) erstmal erzeugt.
Daraufhin bekomme ich beim erzeugen der Klasse eine EAccessViolation.

Hier der Code der Painterklasse:

Delphi-Quellcode:
unit Paint;

interface
uses Graphics, Classes, ExtCtrls;

type
  TPaint = class
  private
    Colors: array [0..7] of array [0..7] of Boolean;
    Size: Integer;
    PenBlack, PenWhite: TPen;
    BrushBlack, BrushWhite: TBrush;
  protected

  public
    constructor Create(PaintBox: TPaintBox);
    destructor Destroy();
    procedure Paint(C: TCanvas);
  end;

implementation

uses MainGame;

 constructor TPaint.Create(PaintBox: TPaintBox);
 var
   X,Y: Integer;
   Bool: Boolean;
 begin
   inherited Create();
   self.Size := PaintBox.Height div 8;
   self.PenBlack.Color := clblack;
   self.PenWhite.Color := clwhite;
   self.PenBlack.Width := 1;
   self.PenWhite.Width := 1;
   self.BrushBlack.Color := clBlack;
   self.BrushWhite.Color := clWhite;
   Bool := true;
   for X := 0 to Length(Colors)-1 do
   begin
     for Y := 0 to Length(Colors[X])-1 do
     begin
       Colors[X,Y] := Bool;
       if Bool then
       begin
         Bool := false;
       end else
       begin
         Bool := true;
       end;
     end;
   end;
 end;

 destructor TPaint.Destroy();
 begin
 inherited Destroy;
   self.Free;
 end;

 procedure TPaint.Paint(C: TCanvas);
 var
   X,Y: Integer;
 begin
   for X := 0 to Length(self.Colors)-1 do
   begin
     for Y := 0 to Length(self.Colors[X])-1 do
     begin
       if self.Colors[X,Y] then
       begin
         C.Pen := self.PenWhite;
         C.Brush := self.BrushWhite;
       end else
       begin
         C.Pen := self.PenBlack;
         C.Brush :=self.BrushBlack;
       end;
       C.Rectangle(Rect(X*Size,Y*Size,(X+1)*Size,(Y+1)*Size));
     end;
   end;
 end;

end.
Ich hab auch schon gegoogelt udn auch die Foren Suche benutzt, habe jedoch nichts passendes gefunden. Ich hoffe ihr könnt mir helfen. Schonma im vorraus Danke
  Mit Zitat antworten Zitat
 


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 15:45 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