![]() |
FireMonkey zeichnen auf Circle-Komponente...
Hallo zusammen,
vielleicht kann mir jemand helfen oder einen Tip geben. Ich habe versucht auf einem FireMonkey Control (Circle1) eine Linie zu zeichnen. Leider funktioniert dieses unter XE3 nicht. Aber unter XE5 geht es. Dann habe ich mir die Trial von XE7 installiert. Auch unter XE7 funktioniert dieses nicht. Der folgende Code funktioniert aber unter XE5. Was mache ich falsch bzw. was muss ich beachten oder hat sich evtl. geändert??? :( Vielen Dank für eine hilfreiche Information... procedure TForm1.CornerButton1Click(Sender: TObject); var Data : Single; P1, P2 : TPointF; begin Circle1.Canvas.BeginScene; P1.X:= Circle1.Height / 2; P1.Y:= Circle1.Width / 2; P2.X:= 0; P2.Y:= 0; Circle1.Canvas.Stroke.Color := claBlue; Circle1.Canvas.StrokeDash := TStrokeDash.sdSolid; Circle1.Canvas.Stroke.Kind:= TBrushKind.bkSolid; Circle1.Canvas.StrokeThickness := 3.0; Circle1.Canvas.DrawLine(P1, P2, 0); P1.X:= 0; P1.Y:= 0; P2.X:= Circle1.Height; P2.Y:= Circle1.Width; Circle1.Canvas.Stroke.Color := claBlue; Circle1.Canvas.StrokeDash := TStrokeDash.sdSolid; Circle1.Canvas.Stroke.Kind:= TBrushKind.bkSolid; Circle1.Canvas.StrokeThickness := 1.0; Circle1.Canvas.DrawLine(P1, P2, 0); Circle1.Canvas.EndScene; end; |
AW: FireMonkey zeichnen auf Circle-Komponente...
Du versuchst "einmalig" auf eine Komponente zu zeichnen, welche das Verhalten hat sich selber ab und an mal neu zu zeichnen und Deines dabei zu übermalen?
Selber Schuld, wenn es nicht funktioniert, bzw. womöglich bereits nach 'ner halben Millisekunde schon wieder übermalt wurde. Entweder du malst auf eine Komponente, welche dein gemaltest speichert (z.B. in das Bitmap eines TImage, oder so ähnlich), oder du malst auf eine Komponente, welche für sowas gedacht ist TPaintBox (gibt es die noch im FMX? bin mir grade nicht sicher) und da wird natürlich im OnPaint gezeichnen oder du überschreibst die Paint-Methode deines TCircle und zeichnest dort drin, also genauso wie bei der PaintBox. :roll: Falsch machst du, dap du vergessen hast den [delphi]...[/delphi]-Code um deinen Quellcode zu machen. Und psssst, du hast deine Data-Variable vergessen zu benutzen. :zwinker: |
AW: FireMonkey zeichnen auf Circle-Komponente...
Hallo,
Zitat:
Hast Du es mal so versucht (OnPaint-Event der Circle-Komponente anstatt ButtonClick sonst ist die Linie nach dem nächsten Zeichnen des Forms futsch :wink:)?
Delphi-Quellcode:
Gruß
procedure TForm1.Circle1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
var P1, P2 : TPointF; begin Canvas.BeginScene; try P1.X := ARect.Left; P1.Y := ARect.Top; P2.X := ARect.Width; P2.Y := ARect.Height; Canvas.Stroke.Color := TAlphaColorRec.Blue; Canvas.StrokeDash := TStrokeDash.sdSolid; Canvas.Stroke.Kind:= TBrushKind.bkSolid; Canvas.StrokeThickness := 1.0; Canvas.DrawLine (P1, P2, 0.5) // <-- AOpacity <> 0! finally Canvas.EndScene end end; |
AW: FireMonkey zeichnen auf Circle-Komponente...
Na Logo... :thumb: Vielen Dank für den Tip. Auf das mit dem neu zeichnen hätte ich ja auch selbst drauf kommen können... :oops: Manchmal sieht man halt den Wald vor lauter Bäumen nicht. :wall:
Vielen Dank an Euch!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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