Hi, Danke für die Antwort.
Ich werde einige Anwendungen von Grund auf neu überarbeiten, d.h. in dem Fall wäre das komplette Neu-erstellen der Komponenten sicher nicht das Problem, nur wie du auch schon gesagt hast, heißt das, sich auch noch zumindest in eins der beiden (
DirectX,
OpenGL) einarbeiten muss. Ich glaub das werde ich mal nach hinten schieben.
Lässt sich in
GDI+ analog verfahren wie vorher üblich. D.h. beispielsweise das füllen einer beliebigen Region mit einem Muster:
Delphi-Quellcode:
...
BitmapHandle := LoadBitmap(Hinstance, '...');
Brush1:= CreatePatternBrush(BitmapHandle);
RegN:= CreateRoundRectRgn(10,10, form1.clientwidth-10,form1.clientheight-10,10,10);
FillRGN(Form1.Canvas.Handle,RegN,Brush1);
DeleteObject(RegN);
DeleteObject(Brush1);
DeleteObject(BitmapHandle);
...
nur das ich den Brush abändere in TGPBrush (oder wie die da heißen) so dass ich auch transparent-effecte und antialiasing beim Füllen nutzen kann. Ansonsten würd ich mich vllt nur in graphics32 einlesen, wobei ich da auch wieder tausend Fragen hätte. Da beide sich nicht ausschließen, wäre es für mich nun interessant ob ich die Techniken der alten
WIN32 graphic
API einfach übertragen kann auf das
GDI+ konzept (bsp überall nen GP vor oder so) und an manchen stellen vllt auf schnellere Funktionen der graphics32-lib zurückgreifen soll, oder ob ich für
GDI+ wieder ne Menge Zeit investieren muss.
Ah, vllt mein Vorhaben mal etwas präziser ausgedrückt:
Komponenten erstellen, die letztlich sehr flexible in ihrer graphischen Darstellung sind. D.h. die Komponenten vergleichbar mit Button/ Panels, Labels,... sollen von einer Control abgeleitet werden, die es ermöglicht beliebige Regionen (Sterne,RoundRect,...) mit beliebigen Mustern zu füllen (Bilder, Verläufe,...) und dabei die hässlichen Kanten glätten und Teil-Transparenz-Effekte erlauben, eventuell müsst ich nur noch ne Funktion für Spiegelungseffekte auf dem Hintergrund erstellen. Hab ich diese Komponente, kann ich mir kompliziertere Objekte daraus ableiten, die dann Button simulieren, oder als Items einer speziellen Listbox auftreten, etc. Letztlich wäre ich sehr flexibel (lässt man mal 3D-Effekte außen vor) in der Gestaltung von meinen Komponenten und ich müsste die alten Buttons nur durch meine neuen abgleiteten Komp. ersetzen.