Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   XE5 Android Canvas und Bücher (https://www.delphipraxis.net/177041-xe5-android-canvas-und-buecher.html)

Iatros 11. Okt 2013 17:50

XE5 Android Canvas und Bücher
 
Hallo,

ich entwickle bisher mit dem C++ Builder. Bisher finde ich nur Hilfe zu Delphi (irgendwie will er meine Online Hilfe nicht installieren). Da Funktionen wie Canvas.Ellipse in Android nicht gehen - dort ist es DrawEllipse stoß ich einfach oft an meine Grenzen. Ich hab ein Image mit einem Bitmap und will einfach per Touch drauf malen. Später dann mit GDI+, falls das geht, um transparent zu malen.

Gibt es irgend ein Buch zur Android Entwicklung mit dem XE5 ?

Danke !

Bernhard Geyer 11. Okt 2013 18:06

AW: XE5 Android Canvas und Bücher
 
Zitat:

Zitat von Iatros (Beitrag 1231824)
Da Funktionen wie Canvas.Ellipse in Android nicht gehen - .... Später dann mit GDI+,

Sorry, das widerspricht sich. Android und und eine Windows-Technik wird nicht zusammen gehen.

Zitat:

Zitat von Iatros (Beitrag 1231824)
Gibt es irgend ein Buch zur Android Entwicklung mit dem XE5 ?

Bücher? Glaube ich nicht das das noch was kommt. Wenn dann maximal (englische) E-Books.

arnof 11. Okt 2013 20:06

AW: XE5 Android Canvas und Bücher
 
Von Harry Stahl gibt es ein Buch zu firemonkey der hatte auch hier im Forum geschrieben, ob er es auf xe5 erweitert hat weiß ich nicht

Rudirabbit 12. Okt 2013 17:18

AW: XE5 Android Canvas und Bücher
 
@Iatros : Wenn es dir weiterhilft, Kreise bzw. Ellipsen kann man so malen.

Delphi-Quellcode:
    rect.Left:= a;
        rect.Top:= b;
           rect.Right:= c;
           rect.Bottom:= d;
                                   Canvas.BeginScene;
                              canvas.DrawEllipse(rect,1);
                                     Canvas.EndScene;

Iatros 13. Okt 2013 18:39

AW: XE5 Android Canvas und Bücher
 
Hallo,

darf ich nochmal ne Frage dazu stellen. Ich hab das versucht, bekomme die Fehlermeldung
es gibt keine überladene funktion von drawellipse

Im Image ist ein bmp Bild. Per Touch will ich an der Stelle eine (ausgefüllte) Ellipse zeichnen.

Delphi-Quellcode:
procedure TTabbedForm.imgDrawTestMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Single);
var
   rect : TRect;
begin

  rect.Left:= 10;
  rect.Top:= 10;
  rect.Right:= 30;
  rect.Bottom:= 30;

  imgDrawTest.Canvas.BeginScene;
  imgDrawTest.Canvas.DrawEllipse(rect,1);
  imgDrawTest.Canvas.EndScene;
end;

Rudirabbit 14. Okt 2013 08:16

AW: XE5 Android Canvas und Bücher
 
Also so deklariert ?

Delphi-Quellcode:
var imgDrawTest:timage;
dann verstehe ich das nicht - denn timage.canvas.DrawEllipse gibt es

Union 14. Okt 2013 09:02

AW: XE5 Android Canvas und Bücher
 
Der Parameter ist vom Typ Delphi-Referenz durchsuchenTRectF !

Rudirabbit 14. Okt 2013 09:52

AW: XE5 Android Canvas und Bücher
 
Zitat:

Zitat von Union (Beitrag 1231960)
Der Parameter ist vom Typ Delphi-Referenz durchsuchenTRectF !

stimmt - sorry nicht bemerkt :oops::oops::oops:

Iatros 14. Okt 2013 14:53

AW: XE5 Android Canvas und Bücher
 
Ok, danke. Bringt zumindest keinen Ferhler - malt aber auch nicht :-(

Ich hab im Entwurf das Bild da rein geladen. Mit rect definier ich doch die Position, an der die Ellipse dann gezeichnet wird. Da ich das direkt im canvas des Image mache müsste er es doch anzeigen ?

Image.Canvas.Brush.Color gibt's nicht. Ich fummel mich da mal durch. Wär nur schön wenn ich zumindest drauf malen könnte.

stahli 14. Okt 2013 15:00

AW: XE5 Android Canvas und Bücher
 
So zeichne ich unter FMX (Win) Rechtecke auf einen Formularcanvas.
Vielleicht findest Du da einen Hinweis...

Delphi-Quellcode:
procedure PaintLayoutRects;
var
  I: Integer;
  iRegion: TssRegion;

  procedure FR(R: TssRect);
  begin
    PaintLayoutCanvas.FillRect(TRectF.Create(R.Left, R.Top, R.Width, R.Height),
      0, 0, [], 1, TCornerType.ctBevel);
  end;

  procedure PF;
  begin
    PaintLayoutCanvas.DrawRect(TRectF.Create(0, 0, PaintLayout.Width,
      PaintLayout.Height), 0, 0, [], 1, TCornerType.ctBevel);
  end;

  procedure PR(R: TssRect);
  begin
    PaintLayoutCanvas.DrawRect(TRectF.Create(R.Left, R.Top, R.Right, R.Bottom),
      0, 0, [], 1, TCornerType.ctBevel);
  end;

begin
  if (not Assigned(PaintLayout)) or (not Assigned(PaintLayoutCanvas)) then
    Exit;

  PaintLayoutCanvas.BeginScene;
  PaintLayoutCanvas.Clear(claWhitesmoke);
  PaintLayoutCanvas.Stroke.Kind := TBrushKind.bkSolid;
  PaintLayoutCanvas.Stroke.Color := claLime;
  PaintLayoutCanvas.StrokeThickness := 1;

  PF;
  for I := 0 to PaintLayout.Regions.Count - 1 do
  begin
    iRegion := PaintLayout.Regions.Items[I];
    PR(iRegion.NewRect);
  end;

  PaintLayoutCanvas.EndScene;
end;


Nachtrag: Ach so, Image ...
Das wird sicherlich ständig neu gezeichnet sobald eine Mausaktion triggert.
Insofern kann es sein, dass Deine Ellipse gezeichnet wird, dann aber sofort das Image (das Bild des Image) wieder neu dargestellt wird.
Auf einen Canvas zu zeichnen ist dem Fall nicht der richtige Weg.


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