« on: November 23, 2021, 04:35:45 am »
Why can't I set the image on this simple control?
unit mytestbtn;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, ExtCtrls, Dialogs, Buttons,
lclintf;
type
TMytestbtn = class(TCustomControl)
private
fbtnEXTRA : TBitBtn;
fImage : TBitmap;
procedure SetImage(aValue : TBitmap);
protected
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property TheImage : TBitmap read fImage write SetImage;
end;
procedure Register;
implementation
constructor TMytestbtn.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
fImage := TBitmap.Create;
Color := clLime;
fbtnEXTRA := TBitBtn.Create(self);
With fbtnEXTRA do
begin
Top := 10;
Left := 10;
Width := 80;
Height := 80;
Caption := '';
Layout := blGlyphTop;
Parent := Self;
Glyph.Assign(fImage);
end;
SetInitialBounds(0, 0, 100, 100);
end;
Destructor TMytestbtn.Destroy;
begin
fImage.Free;
inherited Destroy;
end;
procedure TMytestbtn.SetImage(aValue : TBitmap);
begin
fImage.Assign(aValue);
if fbtnEXTRA <> nil then
fbtnEXTRA.Glyph.Assign(fImage);
Invalidate;
end;
procedure Register;
begin
RegisterComponents('Misc', [TMytestbtn]);
end;
end.
« Last Edit: November 24, 2021, 08:15:42 am by pcurtis »
Logged
Windows 10 20H2
Laz 2.2.0
FPC 3.2.2