AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Eigene Klasse, welche den Canvas verwenden soll.
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Klasse, welche den Canvas verwenden soll.

Ein Thema von Diamont · begonnen am 12. Feb 2009 · letzter Beitrag vom 12. Feb 2009
 
Diamont

Registriert seit: 22. Mai 2008
30 Beiträge
 
#1

Eigene Klasse, welche den Canvas verwenden soll.

  Alt 12. Feb 2009, 20:31
Hallo,

ich möchte mir das OOP aneignen und ahbe mir dafür überlegt eine Klasse zu erstellen die Geometrische Figuren auf die Form zeichnet. Nun ist mein Problem das meine Klasse nicht weiss wo sie hinmalen soll...
Meine Unit 1 sieht so aus:





Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,geomForm,Rechteck,Kreis, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    la_flaeche: TLabel;
    ed_hoehe: TEdit;
    ed_breite: TEdit;
    bt_flaeche: TButton;
    Image1: TImage;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure bt_flaecheClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private

    { Private-Deklarationen }
  public
  rechteck: TRechteck;
    { Public-Deklarationen }
  end;
var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var geomForm : TgeomForm;
begin
  rechteck := TRechteck.create(12, 12);
end;

Meine Klasse (in einer anderen Unit) sieht momentan so aus:

unit geomForm;
interface
uses Graphics;
 type
  TgeomForm = class(TCanvas)
  private
   Fx:Integer;
   Fy:Integer;
  public
   procedure verschieben(dx,dy :Integer);
   function flaeche:Integer; virtual; abstract;
   procedure zeichne(x,y:Integer) ; virtual; abstract;
  end;
implementation

procedure TgeomForm.verschieben(dx,dy: Integer);
begin
 self.Fx := self.Fx + dx;
 self.Fy := self.Fy + dy;
end;
end.


Von dieser Klasse leitet sich wiederrum die Klasse TRechteck ab:

unit rechteck;

interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,geomForm,Kreis, StdCtrls, ExtCtrls;
type
  TRechteck = class(TgeomForm)
  private
  Fhoehe:Integer;
  Fbreite:Integer;
  public
  constructor create(hoehe, breite: Integer);
  function flaeche : Integer; override;
  procedure zeichne(x,y:integer); override;
  end;

implementation

constructor TRechteck.create(hoehe, breite: Integer);
begin
  inherited create;

  FHoehe := hoehe;
  FBreite := breite;
end;

function TRechteck.flaeche: Integer;
begin
  result := Fhoehe*Fbreite;
end;

procedure TRechteck.zeichne(x,y:Integer);
var handle:hdc;
begin
 moveto(x,y);
 lineto(x+50,y+50);
end;
end.
Nun ist die Methode Zeichne der Knackpunkt, denn wie soll ich ihr Mitteilen wodrauf sie zeichnen soll?!

Vielen dank schonmal für die Hilfe.

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
Windows Vista Home Premium (64 Bit)
Intel Core 2 Duo E8400 @ 3,0 GHZ
Nvidea Geforce 8800 GTS 512
4 GB RAM
  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:19 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 by Thomas Breitkreuz