hallo,
habe mir jetzt eine Klasse Dartboard erstellt die von TPainbox abgeleitet ist und ein paintbox mit einem bild Dartbrett zeichnen soll.
Delphi-Quellcode:
unit DartBoard;
interface
uses
Messages, SysUtils, Variants, Classes, Graphics, Controls,
Dialogs, ExtCtrls, StdCtrls;
type
TImageBox =
class(TPaintBox)
private
Tboard: TGraphic;
public
constructor Create(AOwner: TComponent);
destructor Destroy;
override;
procedure OnPaint(Sender : TObject);
end;
implementation
{ TImageBox }
constructor TImageBox.Create;
begin
inherited Create(AOwner);
TBoard := TGraphic.Create;
TBoard.LoadFromFile('
Dartbrett.bmp');
end;
destructor TImageBox.Destroy;
begin
FreeAndNil(TBoard);
inherited;
end;
procedure TImageBox.OnPaint(Sender : TObject);
begin
Canvas.Draw(0,0,TBoard);
end;
end.
Wenn ich diese paintbox jewtzt in meinem Formular erstellen will, bekomme ich einen fehler. Als ich versucht habe diesen mit dem debugger auf dem grund zu gehen. habe ich gesehen das er erst den kontruktor und dann gleich wieder den destruktor aufruft was mache ich falsch.
Delphi-Quellcode:
private Gameboard : TImageBox;
...
Gameboard := TImageBox.Create(self);
Gameboard.Left := 410;
Gameboard.Top := 125;
Gameboard.Width := 350;
Gameboard.height := 350;