Einzelnen Beitrag anzeigen

progopa

Registriert seit: 22. Nov 2012
28 Beiträge
 
#1

Graphics32 + Layer

  Alt 4. Mär 2013, 12:25
Hallo vielleicht kann mir wer helfen?

Ich habe ein TImage32. In dieses lade ich eine Bitmap.
Über dieses Bitmap lege ich einen Layer.
In diesen zeichne ich ein farbiges Feld und beschrifte es.
Mein Problem ist, das das ganze 3 bis 4 mal funktioniert und dann ist die Schrift verschwunden.
Schriftfarbe kann ich nicht ändern.
Soviel habe ich mit der graphics32 noch nicht gemacht, das ich das Problem finden könnte.

Layer anlegen:

Delphi-Quellcode:
Layer := TPositionedLayer.Create(img.Layers);
  Layer.Location := FloatRect(1, 1, img.Width, img.Height);
  Layer.Scaled := True;
  Layer.OnPaint := PaintSimpleDrawingHandler;
Das Hintergrundbild einlesen:

Delphi-Quellcode:
img.Bitmap.loadfromfile(Filename);
  ox := img.Bitmap.Width;
  oy := img.Bitmap.Height;
  dx := img.Width / ox;
  dy := img.Height / oy;
  img.ScaleMode := smStretch;

Die Grafikausgabe. Hier läßt sich die Textfarbe nicht ändern und nach einigen Ausgaben ist der Text verschwunden.
PaintSimpleDrawingHandler übergibt eine Variable Buffer, diese ist eine Bitmap.

Delphi-Quellcode:
with Buffer do
          begin
            PenColor := clBlack32;
            Canvas.Pen.Style:= psSolid;
            Canvas.Pen.Mode:= pmNop;
            FillRectT(x+1,y+1, x + w - 1,y + h - 1, color);
            FrameRectS(x,y, x + w,y + h, clBlack32);
            if pt.GrType = grInfoText then
            begin
              Font.Color := pt.FontColor;
              Font.Size := pt.FontHeight;
              Font.Name := pt.FontName;
              Textout(x+1,y+1,pt.Text);
            end;
          end;
Für einen Tip eäre ich sehr dankbar.

Peter
  Mit Zitat antworten Zitat