Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Text ohne Hintergrund auf Canvas... (https://www.delphipraxis.net/46150-text-ohne-hintergrund-auf-canvas.html)

shareholder 19. Mai 2005 14:44


Text ohne Hintergrund auf Canvas...
 
Moin, wenn ich über TextOutA einen Text auf'm Canvas ausgebe,
ist der Hintergrund von der Schrift in der Farbe des Brushes. (glaub ich)

Ich möchte aber nur Text, ohne Hintergrundfarbe!, ausgeben.
Wie funkt das? Thanx

Manne 19. Mai 2005 14:52

Re: Text ohne Hintergrund auf Canvas...
 
Mit
Delphi-Quellcode:
 SetBkMode(ACanvas,TRANSPARENT);
sollte es gehen.

Muetze1 19. Mai 2005 15:18

Re: Text ohne Hintergrund auf Canvas...
 
Moin!

Oder alternativ ohne WinAPI:
Delphi-Quellcode:
Canvas.Brush.Style := bsClear;
MfG
Muetze1

barf00s 19. Mai 2005 15:30

Re: Text ohne Hintergrund auf Canvas...
 
Zitat:

SetBkMode(ACanvas,TRANSPARENT);
wenn ACanvas nen hDC ist dann schon, aber das sieht mir mehr nachnem TCanvas aus :warn: aaaaaaaaaaalso

Delphi-Quellcode:
SetBkMode(ACanvas.Handle, TRANSPARENT);
:)

shareholder 19. Mai 2005 15:54

Re: Text ohne Hintergrund auf Canvas...
 
Denkt euch das mal büdde im Delphi-Format. ;)

Delphi-Quellcode:

  b->Canvas->Font->Name = "Helvetica";
  b->Canvas->Font->Color = clRed;
  b->Canvas->Font->Size = 12;

  b->Width = b->Canvas->TextWidth(s);
  b->Height = b->Canvas->TextHeight(s);

  b->Canvas->Brush->Style = bsClear;  // <- geht nicht
  // SetBkMode(b->Handle, TRANSPARENT); // <- geht auch nicht

  b->Canvas->TextOutA(0, 0, s);

  Canvas->CopyRect(Rect(x, y, b->Width, b->Height), b->Canvas, b->Canvas->ClipRect);
Wieso geht das nicht? :freak:

Muetze1 19. Mai 2005 16:01

Re: Text ohne Hintergrund auf Canvas...
 
Moin!

Was genau geht nicht? (Meckert der Compiler - worüber oder passiert nicht das gewünschte?)
Was für ein Typ ist "b" ?

MfG
Muetze1

shareholder 19. Mai 2005 16:04

Re: Text ohne Hintergrund auf Canvas...
 
b ist ein Bitmap! (welches nachhern auf das Canvas der Form gezeichnet wird...)
Delphi-Quellcode:
Graphics::TBitmap *b = new Graphics::TBitmap();

shareholder 19. Mai 2005 16:09

Re: Text ohne Hintergrund auf Canvas...
 
Liste der Anhänge anzeigen (Anzahl: 2)
Es gibt keine Fehlermeldung vom Compiler! Die Anzeige funkt bloß irgendwie nicht. :gruebel:

Muetze1 19. Mai 2005 16:19

Re: Text ohne Hintergrund auf Canvas...
 
Moin!

Der Text wird transparent ausgegeben - das funktioniert. Das neue Bitmap hat nur standardmässig einen weissen Hintergrund! Wenn du den Text direkt auf den endgültigen Canvas malst, dann haut das hin - kannste testen.

Abhilfe: Setze das Bitmap Transparent (b->TransparentColor = clWhite;) und dann male es mit Draw(), weil afair beachtet CopyRect() die Transparenz des Bitmaps nicht.

MfG
Muetze1

shareholder 19. Mai 2005 16:28

Re: Text ohne Hintergrund auf Canvas...
 
Supa, wenn ich direkt male, dann geht's auch mit dem bsClear des Brushes. :cool:

Bin total verplant. Danke!


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