Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#12

Re: [TPaintBox] - "Hintergrundfarbe" für Pen.Style

  Alt 8. Jan 2007, 11:04
Nagut. Eigentlich wolllte ich mir weitere Bitmaps sparen, aber es lässt sich wohl nicht verhindern

Und du hast alles richtig verstanden, und ich denke so wäre es auch umzusetzten.

Aber eine Frage: Ich kann dennoch BitBlt benutzen, oder? Er hat ja alles gezeichnet...

[edit]Okay!
Es funktioniert, wenn auch umständlich
Delphi-Quellcode:
bBuffer := TBitmap.Create;
try
  bBuffer.Width := pbMap.Width;
  bBuffer.Height := pbMap.Height;
  BitBlt(bBuffer.Canvas.Handle, xDis, yDis, bMap.Width, bMap.Width, bMap.Canvas.Handle, 0, 0, SRCCOPY);
  with bBuffer.Canvas do
  begin
    Brush.Style := bsClear;
    Pen.Style := psDot;
    Pen.Color := $000000FF;
    MoveTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis);
    LineTo(((selectRect.X + 1) * 32) + xDis, (selectRect.Y * 32) + yDis);
    LineTo(((selectRect.X + 1) * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis);
    LineTo((selectRect.X * 32) + xDis, ((selectRect.Y + 1) * 32) + yDis);
    LineTo((selectRect.X * 32) + xDis, (selectRect.Y * 32) + yDis);
  end;
  BitBlt(pbMap.Canvas.Handle, 0, 0, bBuffer.Width, bBuffer.Height, bBuffer.Canvas.Handle, 0, 0, SRCCOPY)
  finally
    FreeAndNil(bBuffer);
  end;
[/edit]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat