![]() |
Shape Hintergrund transparent
Hi,
folgendes: Wie kann ich den Hintergrund von einem Shape transparent machen, wenn ich das Shape immer wieder zeichnen muss? Fettes Merci ;) |
Re: Shape Hintergrund transparent
Liste der Anhänge anzeigen (Anzahl: 1)
hat niemand ne ahnung?
vllt kann man es ja auch anders machen aber ich weiss nicht wie und hab auch keine idee :) hier nochmal das problem: |
Re: Shape Hintergrund transparent
Hmm...du setzt die Transparentcolor des Forms auf bspw: clFuchsia und den Hintergrund deines Shapes auch auf clFuchsia. dann sollte er transparent sein.
Tobi |
Re: Shape Hintergrund transparent
hmm ne funktioniert leider nicht :(
kann ich nicht in der ursprungs datei von shape schauen? weil mit den normalen shapes geht es ja nur mit meinen definierten formen nicht... |
Re: Shape Hintergrund transparent
Ich weiss zwar nicht ob es dir hilft, aber im Prinzip kannst du das selbe ja auch mit einem Image lösen.
|
Re: Shape Hintergrund transparent
hmm ich glaube das ein image mehr resourcen frisst und da ich wahrscheinlich später mehr als 100 objekte habe werde ich mit diesen resourcen äußerst sparsam umgehen müssen...
|
Re: Shape Hintergrund transparent
Was genau ist das für ein Shape? (Meins kann keine Pfeile)
|
Re: Shape Hintergrund transparent
ist eine abgeleitete komponente von tcustomcontrol in der die paint funktion einfach überschrieben bzw erweitert wurde... hab einfach auf das canvas einen pfeil gemalt...
Delphi-Quellcode:
unit Pfeil;
interface uses SysUtils, Classes, Controls, Windows, Graphics; type TMyPfeil = class(TCustomControl) private { Private declarations } FSelected : Boolean; procedure SetSelection(Value : Boolean); protected { Protected declarations } protected procedure Paint();override; public { Public declarations } published { Published declarations } property Selected: Boolean read FSelected write SetSelection; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TMyPfeil]); end; procedure TMyPfeil.SetSelection(Value : Boolean); begin FSelected := Value; if Value = True then Self.DoubleBuffered := true else Self.DoubleBuffered := False; Invalidate; end; procedure TMyPfeil.Paint; begin inherited; // Canvas.Brush.Color := $00654987; // Canvas.Fillrect(Rect(0,0,self.Width, self.Height)); Canvas.Brush.Color := $00000000; Canvas.Polygon([ Point(self.Width-18,3), Point(self.Width - 10, Trunc(self.Height / 2)), Point(self.Width-18,self.Height-4) ]); Canvas.Pen.Color := $00000000; Canvas.MoveTo(8, Trunc(self.Height /2)); Canvas.LineTo(self.Width - 4, Trunc(self.Height / 2)); if self.Selected = True then begin Canvas.Pen.Color := $00000000; Canvas.Brush.Color := $00FFFFFF; Canvas.Rectangle(0, Trunc(self.Height /2)-4, 8, Trunc(self.Height /2)+4); Canvas.Rectangle(self.Width - 8, Trunc(self.Height /2)-4, self.Width, Trunc(self.Height /2)+4); end; end; end. |
Re: Shape Hintergrund transparent
Also bei einem CustomControl könnts schwierig werden. Ich würde die Komponente von TGraphicControl ableiten, dann müsste es gehen.
|
Re: Shape Hintergrund transparent
hmm dann funktioniert das doublebuffered aber nicht mehr... ?!?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 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