AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TShape + Canvas

Ein Thema von Schwanengel · begonnen am 10. Apr 2003 · letzter Beitrag vom 19. Mai 2003
 
Schwanengel

Registriert seit: 6. Apr 2003
22 Beiträge
 
#16
  Alt 15. Apr 2003, 17:52
Hallo

ich bekomme das nicht hin.
Mein Experiment sieht so aus, ich habe zwei Buttons Kopie und Transparent:

Delphi-Quellcode:
procedure TForm1.SpeedButton4Click(Sender: TObject);
var //Button Transparent
  Bmp1,bmp3: TBitmap;
  bmpList: TImageList;
begin
   Bmp1 := TBitmap.Create;
   bmp3 := TBitmap.create;
  try
   bmp1.width:=blatt.width;
   bmp1.height:=blatt.height;
   bmp3.width:=blatt.width;
   bmp3.height:=blatt.height;
  Bmp1.Assign(blatt); //Blatt ist das Bitmap aus Zeichen Canvas
  bmpList := TImageList.CreateSize(bmp1.Width,bmp1.Height);
  bmplist.AddMasked(bmp1,bmp1.transparentcolor);
 try
   bmpList.Getbitmap(0, bmp3);
   blatt.canvas.brush.color:=clnone;
   blatt.canvas.brush.style:=bsclear;
   paintbox1.canvas.brush.style:=bsclear;
{Paintbox1 nimmt das Bild auf welches unter onPaint mit
Paintbox1.canvas.draw(0,0,blatt); immer wider nachgezeichnet wird.
Blatt wurde zuvor durch copyrect mit einem Bitmap, weches einen bestimmten Bereich der Zeichen Canvas enthält geladen.}

   blatt.assign(bmp3);
  finally
   bmpList.Free;
  end;
   finally
   bmp1:=nil;
   bmp3:=nil;
 end;
end;
Im Zweiten Versuch habe ich unter 'BitBlt' mal alles versucht und bin zu diesm Ergebnis gekommen.

Delphi-Quellcode:
bmp1,bmp2:tbitmap;
x,y: integer;
r:TRect;
begin
 bmp1:=tbitmap.create;
 bmp2:=tbitmap.create;
 bmp1.canvas.brush.style:=bssolid;
 bmp1.assign(blatt);
  x:=bmp1.Width;
  y:=bmp1.Height;
  bmp2.Width:=x;
  bmp2.Height:=y;
 bmp2.canvas.brush.style:=bsclear;
  r:=Rect(0,0,x,y);
  bmp2.Canvas.BrushCopy(r, bmp1, r,clwhite);
  BitBlt(bmp2.Canvas.Handle,0, 0, x, y,bmp1.Canvas.Handle, 0,0,PATCOPY);
  blatt.assign(bmp2);
 end;

Hier hat man den Hintergrund vom Desktop mit kopierter Zeichnung, immer wieder lustig. Was ist alles falsch
Oder hab' ich was gefunden was es gar nicht gibt unter Delphi2.0

gruß Schwani
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz