Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#2

Re: z.B. roundrect und das nötige handle

  Alt 12. Nov 2003, 15:25
Das kann auch nicht gehen.
"Canvas.StretchDraw(Rect, Bitmap);" - Rect gibt die Ecken für das Zeichnen und nicht die Form an.

Es ist aber möglich den Zeichnenbereich für alle Zeichenfunktionen einzuschrenken:
Delphi-Quellcode:
Procedure TForm1.ladebalken(f: Integer);

Var RHandle: HRgn;

Begin
  RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  pb.Canvas.StretchDraw(Rect(50, 50, 50 + f, 70), bild.Picture.BitMap);
End;
Notfalls danach wieder den gesammten Bereich freigeben:
Delphi-Quellcode:
Procedure TForm1.ladebalken(f: Integer);

Var RHandle: HRgn;

Begin
  RHandle := CreateRoundRectRgn(50, 50, 50 + f, 70, 10, 10);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  pb.Canvas.StretchDraw(Rect(50, 50, 50 + f, 70), bild.Picture.BitMap);

  RHandle := CreateRectRgn(0, 0, pb.Width, pb.Height);
  SelectObject(pb.Canvas.Handle, RHandle);
  DeleteObject(RHandle);

  ...

End;

Eine Demo von mir, für's Clipping, findest du dort Durchsichtiges Fenster (nicht Alpha Blend)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat