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