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
 
#8

Re: EAccessViolation beim aufrufen der eigenen Klasse

  Alt 3. Mär 2008, 15:20
Hab ich ja. Oh sry. Hab vergessen das zu erwähnen^^

Hier nochmal der ganze Code:

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.
Delphi-Quellcode:

unit Paint;

interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

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

  public
    constructor Create(PaintBox: TPaintBox);
    destructor Destroy(); override;
    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-100) div 8;
   self.Space := (PaintBox.Width - PaintBox.Height + 100) div 2;
   self.PenBlack := TPen.Create;
   self.PenWhite := TPen.Create;
   self.BrushBlack := TBrush.Create;
   self.BrushWhite := TBrush.Create;
   self.PenBlack.Color := clblack;
   self.PenWhite.Color := clwhite;
   self.PenBlack.Width := 5;
   self.PenWhite.Width := 5;
   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;
     if Bool then
     begin
       Bool := false;
     end else
     begin
       Bool := true;
     end;
   end;
 end;

 destructor TPaint.Destroy;
 begin
   self.PenBlack.Free;
   self.PenWhite.Free;
   self.BrushBlack.Free;
   self.BrushWhite.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(Space+X*Size,50+Y*Size,Space+(X+1)*Size,50+(Y+1)*Size));
     end;
   end;
 end;

end.
  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 06:13 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