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ß