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 Brush.Style Schraffur Abstand (https://www.delphipraxis.net/138212-brush-style-schraffur-abstand.html)

uwewo 5. Aug 2009 08:54


Brush.Style Schraffur Abstand
 
Hallo,

wahrscheinlich gibt es keine Möglichkeit, und meine Suche war leider bisher Erfolglos.

Deshalb hier meine Frage:

Kann man den Linienabstand einer Schraffur z.B

Delphi-Quellcode:
Brush.Style := bsHorizontal;
irgendwie beinflussen?

Uwe

uwewo 5. Aug 2009 21:29

Re: Brush.Style Schraffur Abstand
 
Ok ist erst 12 Stunden her, aber mein Posting verschwand auch nach 5 Minuten weil so viele neue kamen :-(

Push***

Namenloser 5. Aug 2009 21:36

Re: Brush.Style Schraffur Abstand
 
Du kannst mit API-Funktionen eigene Brushs erstellen, wie das geht, weiß ich zwar auch nicht auswendig, steht aber in der OH.

uwewo 8. Aug 2009 11:56

Re: Brush.Style Schraffur Abstand
 
@Namenlozer

So richtig viel gefunden habe ich zwar noch nichts, werde mich aber am Wochenende damit beschäftigen.

Danke Dir

brechi 8. Aug 2009 14:27

Re: Brush.Style Schraffur Abstand
 
vill hilft dir das:
http://msdn.microsoft.com/en-us/library/aa930487.aspx

Bbommel 3. Jan 2011 16:06

AW: Brush.Style Schraffur Abstand
 
Da muss ich doch mal glatt ein altes Thema wieder aufwärmen:

Ähnlich wie Uwe sind mir beim Zeichnen mit dem Brush.Style bsHorizontal die Abstände zwischen den horizontalen Linien für meine Zwecke viel zu weit. Nun würde ich das gerne ändern und habe auch mal einen Blick auf CreatePatternBrush geworfen, aber so richtig klar, was ich tun muss, ist mir noch nicht.

Ich versuche mal zu überlegen:
  • Ich muss ein TBitmap(?) erstellen. Das muss dann nur ein Pixel breit sein und letztlich so hoch, wie ich brauche, um den Abstand zwischen den Linien richtig zu zeichnen, oder?
  • Dieses Bitmap rufe ich dann mit CreatePatternBrush verwurschteln - und das Ergebnis kann ich dann direkt dem "Brush" aus dem TCanvas zuweisen und dann damit zeichnen? Oder wie?
  • Kann/muss ich nachher auch irgendwie aufräumen?

Würde mich freuen, wenn mich jemand an seinen Erfahrungen teilhaben lassen könnte, falls vorhanden. :)

Bis denn
Bommel

Matze 3. Jan 2011 17:15

AW: Brush.Style Schraffur Abstand
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Bommel,

ich habe nur schnell was zusammengeklickt, was bei mir funktioniert. Vielleicht ist es nicht sinnvoll, das im OnPaint immer neu zu laden, aber es zeigt die Anwendung:
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  BmpBrush: TBitmap;
  Brush: Thandle;
begin
  BmpBrush := TBitmap.Create;
  try
    BmpBrush.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'brush.bmp');
    Brush := CreatePatternBrush(BmpBrush.Handle);

    FillRect(PaintBox1.Canvas.Handle, Rect(10, 10, 100, 100), Brush);
  finally
    FreeAndNil(BmpBrush);
  end;
end;
Transparent kriegt man das vermutlich auch noch irgendwie. So hat's bei mir nicht geklappt:
Delphi-Quellcode:
BmpBrush.TransparentColor := clWhite;
BmpBrush.Transparent := true;
Wobei ich mir nicht sicher bin, ob man "Brush" noch irgendwie freigeben kann/muss.

Grüße
Matze

Bummi 3. Jan 2011 17:22

AW: Brush.Style Schraffur Abstand
 
Freigeben per
Delphi-Quellcode:
DeleteObject(Brush);


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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