AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Radieren/Freilegen von Bildern mit FMX

Ein Thema von paul.kunig · begonnen am 23. Jul 2019 · letzter Beitrag vom 28. Aug 2019
 
paul.kunig

Registriert seit: 25. Sep 2017
42 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 31. Jul 2019, 09:31
Hallo striderx,

ich konnte folgende mir unverständliche Reaktion feststellen:
Gegeben:
TImage, 3x TButton.

Folgender Quelltext:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyRect: TRectF;
begin
  Image1.Bitmap.Clear($FFFFFF);
  // initializes the image bitmap canvas
  Image1.Bitmap := TBitmap.Create(241, 425);

  Image1.Bitmap.Clear($FFFFFF);
  // sets the rectangle to be drawn
  MyRect := TRectF.Create(0, 0, 241, 425);
  // fills and draws the rectangle on the canvas
  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Fill.Color := TAlphaColors.Black;
  Image1.Bitmap.Canvas.FillRect(MyRect, 0, 0, AllCorners, 1);
  Image1.Bitmap.Canvas.EndScene;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  MyRect: TRectF;
begin
  Image1.Bitmap.Clear($FFFFFF);
  // initializes the image bitmap canvas
  Image1.Bitmap := TBitmap.Create(Image1.Bitmap.Width, Image1.Bitmap.Height);

  Image1.Bitmap.Clear($FFFFFF);
  // sets the rectangle to be drawn
  MyRect := TRectF.Create(0, 0, 241, 425);
  // fills and draws the rectangle on the canvas
  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Fill.Color := TAlphaColors.Red;
  Image1.Bitmap.Canvas.FillRect(MyRect, 0, 0, AllCorners, 1);
  Image1.Bitmap.Canvas.EndScene;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
  MyRect: TRectF;
begin
  Image1.Bitmap.Clear($FFFFFF);
  // initializes the image bitmap canvas
  Image1.Bitmap := TBitmap.Create;

  Image1.Bitmap.Clear($FFFFFF);
  // sets the rectangle to be drawn
  MyRect := TRectF.Create(0, 0, 241, 425);
  // fills and draws the rectangle on the canvas
  Image1.Bitmap.Canvas.BeginScene;
  Image1.Bitmap.Canvas.Fill.Color := TAlphaColors.Green;
  Image1.Bitmap.Canvas.FillRect(MyRect, 0, 0, AllCorners, 1);
  Image1.Bitmap.Canvas.EndScene;
Folgendes Verhalten in folgender Reihenfolge ist festzustellen:
Betätigen des Button1 = schwarzes Rechteck | O.k.
Betätigen des Button2 = rotes Rechteck | O.K
Betätigen des Button3 = löschen des roten Rechtecks(richtig wäre grünes Rechteck)

Erneutes Betätigen des Button2 = keine sichtbare Reaktion
Erneutes Betätigen des Button1 = schwarzes Rechteck |O.k.

Während das schwarze Rechteck jederzeit aufgerufen werden kann, wird das rote Rechteck nur gezeichnet, wenn vorher nicht Button3 betätigt wurde.

Hat jemand eine Idee, aus welchem Grund diese Verhalten auftritt?
Konnte man früher in Delphi die Komponenten nicht Positionieren, also z.B. 30px vom Rand, nächste Komponente 30px von erster Komponente usw.?

Gruß
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 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