Nein, aber das lässt sich alles übernehmen.
Ich würde erstmal ein Komponente ableiten.
Dann würde den Typ TShape so überschrieben, dass sie man da auch ein Karo auswählen kann.
(da
published property Shape: TShapeType read FShape write SetShape;
)
Dann musst du die Paint-Prozedur überschrieben.
Delphi-Quellcode:
unit Shape1;
interface
uses
SysUtils, Classes, Controls, ExtCtrls;
type
TShapeType = (stCircle,stEllipse,stRectangle,stRoundRect,stRoundSquar,stSquare,stKaro)
//stKaro ist neu.
TMyShape =
class(TShape)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
protected procedure Paint();
override;
public
{ Public-Deklarationen }
published
{ Published-Deklarationen }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Samples', [TShape1]);
end;
end.
procedure TMyShape.Paint();
begin
inherited;
//ruft die Ursprüngliche Prozedur "Paint" auf. Bin mir jetzt nicht sicher ob das vor oder nach deinem hinzugefügen Code stehen muss
If Self.Shape = stKaro
then begin
//Mach was
end;
end;
Ich hoffe das das erstmal stimmt was ich da geschrieben habe. (Eventuell berichtigen
)