Delphi-PRAXiS
Seite 1 von 2  1 2      

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 FM keine Funktionalität bei Image Manipulation (https://www.delphipraxis.net/178276-fm-keine-funktionalitaet-bei-image-manipulation.html)

zeras 29. Dez 2013 16:53

FM keine Funktionalität bei Image Manipulation
 
Ich habe nun ein ASUS Tablet Online und will nun die ersten Versuche starten.
Dabei hapert es aber schon an einer einfachen Image Manipulation.
Man sieht einfach nichts, was sich ändert.
Zum Test habe ich mal eine FM Desktopanwendung erstellt mit folgenden Code. Da wird das Image aber auch nicht eingefärbt.
Was mache ich falsch?

Delphi-Quellcode:
unit Unit13;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  FMX.Objects,

  System.UIConsts, FMX.Colors;

type
  TForm13 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    ColorBox1: TColorBox;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form13: TForm13;

implementation

{$R *.fmx}

procedure TForm13.Button1Click(Sender: TObject);
begin
  Image1.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Clear(claLime);
  Image1.Canvas.EndScene;
end;

procedure TForm13.Button2Click(Sender: TObject);
begin
  Image1.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Clear(claBlack);
  Image1.Canvas.EndScene;
end;

end.

Volker Z. 29. Dez 2013 18:56

AW: FM keine Funktionalität bei Image Manipulation
 
Hallo,

so sollte es tun:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Clear (claLime);
  Image1.Bitmap.Canvas.EndScene;
end;
Gruß

zeras 30. Dez 2013 15:25

AW: FM keine Funktionalität bei Image Manipulation
 
Ich habe das nun als komplettes Projekt und trotzdem ändert sich nichts, wenn ich auf den Button klicke. Es kann doch nicht sein, dass ich an den Basics scheitere oder doch?

Delphi-Quellcode:
unit Unit14;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  FMX.Objects,

  System.UIConsts;


type
  TForm14 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form14: TForm14;

implementation

{$R *.fmx}

procedure TForm14.Button1Click(Sender: TObject);
begin
  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Clear (claLime);
  Image1.Bitmap.Canvas.EndScene;

end;

end.

Mavarik 30. Dez 2013 15:33

AW: FM keine Funktionalität bei Image Manipulation
 
Windows oder Android?

zeras 30. Dez 2013 15:37

AW: FM keine Funktionalität bei Image Manipulation
 
Zitat:

Zitat von Mavarik (Beitrag 1241477)
Windows oder Android?

Ich möchte eine App schreiben für ein ASUS Tablet. Da dort keine Linien etc. gezeichnet wurden (TLabel ging aber), habe ich auf Grund besserer Testmöglichkeiten ein neues Projekt für Windows angefangen, um überhaupt mal mit FM anzufangen. Da ist das Ergebnis bisher.
Also eigentlich Android, aber zum Test hier erstmal unter Windows.

Mavarik 30. Dez 2013 15:47

AW: FM keine Funktionalität bei Image Manipulation
 
Zitat:

Zitat von zeras (Beitrag 1241478)
Zitat:

Zitat von Mavarik (Beitrag 1241477)
Windows oder Android?

Ich möchte eine App schreiben für ein ASUS Tablet. Da dort keine Linien etc. gezeichnet wurden (TLabel ging aber), habe ich auf Grund besserer Testmöglichkeiten ein neues Projekt für Windows angefangen, um überhaupt mal mit FM anzufangen. Da ist das Ergebnis bisher.
Also eigentlich Android, aber zum Test hier erstmal unter Windows.

Also FMX rendert Images (so weit ich weis) als DirectX Texturen. Daher auch die Größenbeschränkung.

Die Bitmap im Image wird aber nicht erzeugt durch ein Klick eines Images auf das Formular. (Wenn leer)

Ich mache daher immer:

Delphi-Quellcode:
Var
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create(Image1.width,Image1.Height);
  Image1.Bitmap.Assign(BMP);
end;
Und schon geht "alles".

Wenn das Bitmap innerhalb des Images keine Dimension hat, wird auch kein Canvas erzeugt.
(Soweit ich mich erinnern kann)

Mavarik

zeras 30. Dez 2013 16:08

AW: FM keine Funktionalität bei Image Manipulation
 
Zitat:

Zitat von Mavarik (Beitrag 1241480)
Ich mache daher immer:

Delphi-Quellcode:
Var
  Bmp : TBitmap;
begin
  Bmp := TBitmap.Create(Image1.width,Image1.Height);
  Image1.Bitmap.Assign(BMP);
end;

Wenn ich das in meinem leere Projekt ändere, kommt folgende Meldung:

[DCC Fehler] HeaderFooterTemplate.pas(36): E2250 Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann

mkinzler 30. Dez 2013 16:12

AW: FM keine Funktionalität bei Image Manipulation
 
Was für ein Typ hat Image1?

zeras 30. Dez 2013 16:15

AW: FM keine Funktionalität bei Image Manipulation
 
Zitat:

Zitat von mkinzler (Beitrag 1241483)
Was für ein Typ hat Image1?

Ich habe das immer in das obige Projekt reinkopiert.
Typ ist Image1: TImage;

Mavarik 30. Dez 2013 16:19

AW: FM keine Funktionalität bei Image Manipulation
 
Zitat:

Zitat von mkinzler (Beitrag 1241483)
Was für ein Typ hat Image1?

Aus welchem Grund die Frage?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Seite 1 von 2  1 2      

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