![]() |
Eigene Shape Formen
Hi,
ich muss ein Programm programmieren mit dem man Flussdiagramme erstellen kann. Wie kann ich denn eine Komponente erstellen um die einzelnen Objekte zu erzeugen. Also ich brauch ja quasi Shapes, also brauch ich eigene Formen. Wie kann ich z.b. ein Karo als Shape erstellen. Oder würdet ihr das nicht über Shapes machen? Ich möchte es ja so machen dass man danach die Shapes noch verschieben kann... Mfg Owo Danke im Vorraus! |
Re: Eigene Shape Formen
ich glaube ganz unverbindlich da gab es mal was bei den jedi sachen als beispiel..... bin mir aber nicht mehr 100% sicher...
|
Re: Eigene Shape Formen
kann ich nich einfach shapes ableiten und einfach andere formen definieren?
|
Re: Eigene Shape Formen
ich würde es einfach probieren... denn probieren geht über studieren :-)
|
Re: Eigene Shape Formen
guuut :) seh ich auch so
is aber schon lange her dass ich das dass letzte mal gemacht habe. gibts irgendwo gutes tutorials dazu?? danke ;) |
Re: Eigene Shape Formen
puh, da muss ich leider passen :-(
|
Re: Eigene Shape Formen
Zitat:
![]() Sowas? |
Re: Eigene Shape Formen
hmm gibts nich eins mit shapes?!? :roll:
|
Re: Eigene Shape Formen
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
Delphi-Quellcode:
)
published property Shape: TShapeType read FShape write SetShape;
Dann musst du die Paint-Prozedur überschrieben.
Delphi-Quellcode:
Ich hoffe das das erstmal stimmt was ich da geschrieben habe. (Eventuell berichtigen :oops:)
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; |
Re: Eigene Shape Formen
das ist schonmal super!
aber ich greif ich jetzt da an um das Karo zu definieren? wie kann ich sagen was er zeichnen soll? und dann als 2.: ich möchte ja die objekte verschieben können d.h. ich möchte z.b. kleine weise vierecke an die vier ecken setzen um z.b. zu skalieren oder zu verschieben... ist das möglich? danke!! |
Re: Eigene Shape Formen
Ich geh mal von der Prozedur Paint aus. (Also muss erstmal stimmen, aber es kam ja noch kein Protest :roll: )
Delphi-Quellcode:
Das sollte die Umrisse erstmal machen.
procedure TMyShape.Paint();
begin inherited; If Self.Shape = stKaro then begin Canvas.PenPos(Trunc(Self.ClientWidth/2),0); //Setzt die Stift Position ganz oben in die Mitte Canvas.LineTo(0,Trunc(Self.Clientheight/2)); //zeichnet eine Linie von der Stiftposition zu ganz links und Mitte Canvas.LineTo(Trunc(Self.ClientWidth/2),Self.Clientheight);//ganz unten mitte Canvas.LineTo(Self.ClientWidth,Trunc(Self.Clientheight/2));// ganz rechts mitte end; end; (Ähm, habs nicht getestet...) Guck mal in der Delphi Hilfe nach ![]() Wie man die Flächen ausfüllt weiß ich jetzt auch nicht. Such mal im Forum. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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-2025 by Thomas Breitkreuz