Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#21

AW: OOP-Delphi-Anfänger

  Alt 11. Jan 2012, 18:54
Zitat:
// Das hier ist der Button , wenn ich auf den klicke , soll die Prozedur
// TRechteck.Zeichne aufgerufen werden , aber der Button " an sich " ist ja eine Procedure
// Ich weiß , wenn ich mit TRechteck.Zeichne arbeiten will die Parameter eingeben muss aber
// ich kann ja jetzt einfach unter Button-Procedu TRechteck.Zeichne(20,20) oder so eingeben
Also gut, du scheinst das vorherige Problem gelöst zu haben.
Nun zum Nächsten - Instanzierung.

Eine Klasse beschreibt etwas (~Designplan). Die Instanz selbst ist die "Umsetzung" (sozusagen).
Du musst dir vorher nun eine Instanz vom Typ "TRechteck" erstellen.

Definier einfach mal provisorisch global (dh. unter Form1: TForm1) MeinRechteck: TRechteck;

Nun muss Speicher für die Instanz alloziert werden -> MeinRechteck := TRechteck.Create;
das könntest du z.B. ins OnCreate() Ereignis der Form packen! Der Speicher muss natürlich wieder freigegeben werden, daher auch ein MeinRechteck.free aufrufen - am besten im OnDestroy() Ereignis der Form!

So, wenn du das dann hast, musst du nur noch mehr die Zeichenmethode der Klasse durch die Instanz aufrufen ->
MeinRechteck.Zeichne(Canvas). Übrigens, Canvas ist eine "Variable" der übergeordnetten Klasse (die TForm1 wäre).
Mein Vorschlag - hau das ins OnPaint() Ereignis der Form!

Sollte anschließend klappen

EDIT:
Ach zu dem hier noch etwas:
Zitat:
ich kann ja jetzt einfach unter Button-Procedu TRechteck.Zeichne(20,20) oder so eingeben
Zeichne() verlangt als Parameter einen Canvas, keine 2 Zahlen (Integer)!
Bevor zu zeichnest, musst du bei der Instanz die Werte für XPos, YPos, ... usw richtig setzen!
MeinRechteck.XPos := 100; (zb)
(und kein "TRechteck.Zeichne", sondern "MeinRechteck.Zeichne"...)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (11. Jan 2012 um 18:57 Uhr)
  Mit Zitat antworten Zitat