Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigenen Brush Style (https://www.delphipraxis.net/95359-eigenen-brush-style.html)

daschaos 5. Jul 2007 13:57


Eigenen Brush Style
 
Hi!

Delphi hat ja nur eine sehr begrenzte Anzahl an Brush Styles. Ich will statt zum Beispiel diesen gekreuzten Linien einen gepunkteten Hintergrund. Ich habe mir ein Bitmap erstellt, das ich jetzt gerne nebeneinander bildschirmfüllend ausgeben lassen würde. Jetzt hab ich aber festgestellt, dass ich das Bitmap entweder nur mit Draw einmal zeichnen lassen kann oder mit StretchDraw extrem vergrößert zeichnen kann. Hab ich da was übersehen oder kann man das so nicht machen oder was muss man da beachten? Oder gibt es die Möglichkeit, einen eigenen BrushStyle anzugeben, der dann verwendet wird? Wenn ja wie ginge so was? Ich hab leider keine Ahnung :roll:...

Liebe Grüße und schonmal danke,
Laura

Meflin 5. Jul 2007 14:13

Re: Eigenen Brush Style
 
Du kannst deinem TBrush ein Bitmap als BrushStyle übergeben ;)
Delphi-Quellcode:
var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('MyBitmap.bmp');
    Form1.Canvas.Brush.Bitmap := Bitmap;
    Form1.Canvas.FillRect(Rect(0,0,100,100));
  finally
    Form1.Canvas.Brush.Bitmap := nil;
    Bitmap.Free;
  end;
end;

daschaos 5. Jul 2007 14:19

Re: Eigenen Brush Style
 
Oh, das war einfach ;). Wie gut, dass ich schon eine Stunde irgendeinen Mist versucht habe. Danke, du hast mich gerettet :coder2:
Wenn es jetzt noch transparent wäre, wär ich glücklich :).

Meflin 5. Jul 2007 14:22

Re: Eigenen Brush Style
 
Ach ja, noch in Nachtrag: Das Bitmap sollte genau 8x8 Pixel groß sein


Meflin 5. Jul 2007 14:24

Re: Eigenen Brush Style
 
Zitat:

Zitat von daschaos
Wenn es jetzt noch transparent wäre, wär ich glücklich :).

Schonmal gesucht ;)
http://www.delphipraxis.net/internal...ght=brushstyle


daschaos 5. Jul 2007 14:43

Re: Eigenen Brush Style
 
Ja, hab ich, aber bei mir isses trotzdem nich transparent. Hm, ich muss nochmal drüber schauen... :?:

daschaos 5. Jul 2007 15:12

Re: Eigenen Brush Style
 
Ich kapier das noch nich so ganz, also hier mal mein Codeausschnitt:

Delphi-Quellcode:
if (Background = true) then
begin
  Bmp := TBitmap.Create;
  Bmp.Width := 4;
  Bmp.Height := 4;
  Bmp.Canvas.Pen.Width := 2;
  Bmp.Canvas.Pen.Color := clBlack;
  Bmp.Transparent := true;
  Bmp.TransparentColor := clWhite;
  Bmp.TransparentMode := tmFixed;
  Bmp.Canvas.MoveTo(Round(Bmp.Width/2), Round(Bmp.Height/2));
  Bmp.Canvas.LineTo(Round(Bmp.Width/2), Round(Bmp.Height/2));
  Canvas.Brush.Bitmap := Bmp;
end
else
  Canvas.Brush.Style := bsSolid;

Rect.TopLeft := P;
Rect.BottomRight := Q;  
Canvas.Rectangle(Rect);
Ich brauche doch mein Rechteck als Begrenzung, ich kann das doch nich irgendwie durch Canvas.Draw ersetzen...Mag sein, dass ich mich momentan extra doof anstelle, aber :roll: ...

Meflin 7. Jul 2007 12:14

Re: Eigenen Brush Style
 
Also: Du malst das, was du anzeigen willst, auf einen nicht sichtbaren Canvas (z.B. auf einem TBitmap). Dann kopierst du das ganze mittels Canvas.Draw auf den sichtbaren Canvas, dabei gibst du als TGraphic eben deine unsichtbare Quelle als Parameter an - Fertig ist ide Transparenz.


daschaos 9. Jul 2007 07:23

Re: Eigenen Brush Style
 
Ja, jetzt hab ich es :), nochmal danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz