Einzelnen Beitrag anzeigen

hotkey

Registriert seit: 20. Aug 2011
Ort: Berlin
113 Beiträge
 
Delphi 6 Personal
 
#22

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 17:55
Vielen Dank für diese Richtungszuweisung

Das geht leider nciht so schnell , ich muss mich erstmal mit der OOP anfreunden nicht so einfach das Ganze.

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class( TForm )
    // Im Object-Inspector das Ereignis "OnClick" von "btn_Rechteck" mit "btn_RechteckClick" verbinden
    procedure btn_RechteckClick( Sender : TObject );
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TRechteck = class
    hoehe, breite : Integer;
   PaintBox1: TPaintBox;
    // Zeichnet relativ zur aktuellen Stiftposition auf "aCanvas" das Rechteck
    procedure ZeichneAuf( aCanvas : TCanvas );
  end;

var
  Form1 : TForm1;
    PaintBox1: TPaintBox;
implementation

{$R *.dfm}
{ TRechteck }

procedure TRechteck.ZeichneAuf( aCanvas : TCanvas );
begin
  // Jedes Zeichnen mit "LineTo" setzt auch die Stiftposition "PenPos"
  aCanvas.LineTo( aCanvas.PenPos.X + Self.breite, aCanvas.PenPos.y ); // Linie nach rechts // Das verstehe ich nicht: Was macht diese Zeile hier genau ? Warum nach rechts ?
  aCanvas.LineTo( aCanvas.PenPos.X, aCanvas.PenPos.y + Self.hoehe ); // Linie nach unten
  aCanvas.LineTo( aCanvas.PenPos.X - Self.breite, aCanvas.PenPos.y ); // Linie nach links
  aCanvas.LineTo( aCanvas.PenPos.X, aCanvas.PenPos.y - Self.hoehe ); // Linie nach oben
end;

{ TForm1 }

procedure TForm1.btn_RechteckClick( Sender : TObject );
var
  MyRechteck : TRechteck;
begin
  // Diese Methode soll aufgerufen werden, wenn der Button "btn_Rechteck" gedrückt wurde

  // Die Stiftposition setzen
  PaintBox1.Canvas.MoveTo( 50, 40 );

  // Instanz erzeugen
  MyRechteck := TRechteck.Create;

  // Werte zuweisen
  MyRechteck.hoehe := 50;
  MyRechteck.breite := 80;

  // Zeichen-Methode aufrufen
  MyRechteck.ZeichneAuf( PaintBox1.Canvas );

  // Instanz wieder freigeben
  MyRechteck.Free;
end;



end.
Das mit der Paintbox musste ich ändern , denn der hatte das als uncleared gesetzt.
Bekomme trotzdem diese Fehlermeldung , aber nicht unter dem Quelltext , sondern als kleines Fensterchen:
""Exception EClassNotFound in Module Project1.exe at 00216D
Class TPaintBox not found""
Felix
  Mit Zitat antworten Zitat