Hi ihr,
ich habe folgendes vor:
Ich möchte eine Textausgabe um eine X-Achse direkt unterhalb des Textes spiegeln. Ich nutze zum Zeichnen auf dem Canvas die
GDI+ Flat
API, da es sich um ein
nonVCL-Projekt handelt. Allerdings blicke ich das ganze Transformieren mit den Matrizen noch nicht so.
Hier mein Code:
Delphi-Quellcode:
if FSongPosTime <> '' then
begin
GdipCreateSolidFill(FSongTimeColor, gpFontBrush);
rectF := MakeRectF(255, 56, 85, 24);
gpGetStatus(GdipDrawString(gpGraphics, StringToOleStr(FSongPosTime), length(FSongPosTime), gpTimeFont, @rectF, gpStrFormat, gpFontBrush));
GdipCreateMatrix(fMatrix);
GdipSetMatrixElements(fMatrix, -1, 1, 0, 1, DisplayWidth div 2, DisplayHeight div 2);
GdipSetWorldTransform(gpGraphics, fMatrix);
gpGetStatus(GdipDrawString(gpGraphics, StringToOleStr(FSongPosTime), length(FSongPosTime), gpTimeFont, @rectF, gpStrFormat, gpFontBrush));
GdipResetWorldTransform(gpGraphics);
GdipDeleteMatrix(fMatrix); *)
end;
Orientiert habe ich mich an dem
Beispiel der GDIPlus - Komponenten, die es für Delphi gibt. Allerdings brauche ich ja nur die Funktion, deswegen möchte ich eigentlich auf dieses "Monster" verzichten.
Oben geschriebener Code macht aber - nichts. Oder das Bild wird gespiegelt und landet im Nirvana, auf dem Bild ist es jedenfalls nicht zu sehen. Damit ihr auch seht, worum es geht, habe ich mal zwei Bilder in den Anhang gepackt. Der rechte Teil mit der Zeitanzeige ist der interessante, die Bilder habe ich mit Paint.NET bearbeitet.
Vielleicht gibt es hier ja jemanden, der schon Erfahrung mit Matrizen und der
API hat...