![]() |
Eigene Canvas Methode
Hallo
Ich habe mich schon (ziemlich) lange darüber aufgeregt dass man in Canvas keinen Kries zeichnen kann sondern nur eine Ellipse (mit einem Kreis könnte man einfach einben Punkt und den Radius angeben) Nun habe ich mir gedacht ich schreibe meinen Kreis selber in Canvas. Ich habe also ctrl+click auf Canvas Dann war ich in Forms dort das gleiche auf TCanvas dann war ich in Canvas. Alles ganz normal... Dort hab ich dann in Public Die Procedure Circle hinzu geschrieben:
Delphi-Quellcode:
So und nun noch meine Procedure hingeschrieben
procedure BrushCopy(const Dest: TRect; Bitmap: TBitmap;
const Source: TRect; Color: TColor); procedure Circle(X,Y :Integer;Radius :Integer); procedure Chord(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
Delphi-Quellcode:
procedure TCanvas.Circle(X, Y, Radius: Integer);
begin Ellipse(X-Radius, Y-Radius, X+Radius, Y+Radius); end; ... Eigentlich sollte es ja jetzt gehen aber es passiert nicht er erkennt kein Circle. Kann man das überhaupt machen ??? Mikender |
Re: Eigene Canvas Methode
Du musst bei Änderungen in der VCL diese nochmals neu kompilieren, am besten komplett. Dann sollte es klappen.
|
Re: Eigene Canvas Methode
Hast du die .pas denn neu kompiliert?
|
Re: Eigene Canvas Methode
Zitat:
Zitat:
|
Re: Eigene Canvas Methode
Du solltest Dir lieber Deinen eigenen Canvas erzeugen, in dem Du von TCanvas ableitest, und nicht lustig in der VCL rumeditieren. Auf Dauer wirst Du damit nicht glücklich.
Untger anderem dafür ist das Konzept der Objektorientierung gedacht. |
Re: Eigene Canvas Methode
Das wäre mal ein klassischer Einsatzfall für Class Helper. Vereerbung ist ungünstig, da man dann von TCanvas abgeleitete Klassen erst casten müsste, was unschön wäre. Oder man könnte eine normale Prozedur nehmen, müsste dann aber Self explizit und nicht mit der Punkt-Syntax übergeben. Welche Delphi-Version hast du denn? Class Helper gibt es ab Delphi 2006 (soweit ich weiß) Korrektur: in Delphi 2005 geht es auch schon, aber meines Wissens nicht früher.
|
Re: Eigene Canvas Methode
Ok ich lasses lieber
|
Re: Eigene Canvas Methode
ich habe Turbo Delphi Explorer
|
Re: Eigene Canvas Methode
Warum? Kannst doch auch ganz einfach eine Prozedure erstellen:
Delphi-Quellcode:
Offenburg? Tjaha, da muss ich jeden Tag hin zur Schule :mrgreen:
procedure Circle(Canvas: TCanvas; X, Y, Radius: Integer);
begin Canvas.Ellipse(X-Radius, Y-Radius, X+Radius, Y+Radius); end; [edit] Mit TDE kannst Du die Class Helper benutzen:
Delphi-Quellcode:
Aufruf ist dann:
type
TCanvasHelper = class helper for TCanvas public procedure Circle(X, Y, Radius: Integer); end; implementation procedure TCanvasHelper.Circle(X, Y, Radius: Integer); begin Ellipse(X-Radius, Y-Radius, X+Radius, Y+Radius); end;
Delphi-Quellcode:
Canvas.Circle(10, 10, 10); // z.B.
|
Re: Eigene Canvas Methode
In Turbo Explorer gibt es Class Helper, also kannst du so vorgehen:
Delphi-Quellcode:
Der Vorteil gegenüber der Variante der Muhkuh ist der "objektorientiertere" Aufruf.
type
TCanvasCircleHelper = class helper for TCanvas procedure Circle(X, Y, Radius: Integer); end; procedure TCanvasCircleHelper.Circle(X, Y, Radius: Integer); begin //Implementierung end; //Aufruf: Canvas.Circle(5, 5, 3); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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