Hallo,
das ganze ist kein ganz einfaches Thema. Aber ein paar Erfaqhrungswerte:
1. Die Verschiedenen Klassen/Objekte können zur Auswahl in "TPaletteButtons"
hinterlegt werden. Die Klasse kann in "Data" des Items hinterlegt werden.
Die Symbole für eigene Komponenten sollten am besten aus einer Resource-Datei
kommen. Diese kann z.B. mit rc.exe erstellt werden.
2. Beim Anklick auf ein Formular muss TPaletteButtons abgefragt werden, ob
etwas aktiviert wurde. Wenn ja, entsprechendes Objekt erzeugen. Beim Anlegen
Owner und Parent setzen. Klasse kommt aus Item von TPaletteButtons.
3. Beim Bewegen von Objekten muss MouseDown, MouseMove usw. abgefangen werden.
Am besten "ApplicationMessage" benutzen und das Objekt bzw. den aktuellen
Status zu prüfen. Alternativ kann dies auch im Objekt hinterlegt werden
(ist aber sehr Aufwendig).
4. Für Copy/Paste gibt es ObjectBinaryToText und ObjectTextToBinary (
Unit Classes).
Damit die Bezüge richtig gesetzt werden, muss ggf. TReader abgeleitet/angepasst
werden.
Wie gesagt, nicht ganz einfach und sehr aufwendig. Hoffe es hilft