expertcad/SRC/SCSNormBase/U_ImageShow.pas
2025-05-12 10:07:51 +03:00

100 lines
2.3 KiB
ObjectPascal

unit U_ImageShow;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, cxControls, cxContainer, cxEdit, cxImage, cxDBEdit,
siComp, siLngLnk, ExtCtrls, cxGraphics, cxLookAndFeels, cxLookAndFeelPainters;
type
TF_ImageShow = class(TForm)
ImageDB: TcxDBImage;
lng_Forms: TsiLangLinked;
Image: TImage;
procedure ImageDBClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ImageClick(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
private
{ Private declarations }
GForm: TForm;
public
{ Public declarations }
Constructor Create(AOwner: TComponent; AForm: TForm);
procedure ShowFromFile(const aFilePath: String; aPoint: PPoint=nil);
Destructor Destroy; override;
end;
//var
//F_ImageShow: TF_ImageShow;
implementation
Uses Unit_DM_SCS, U_Main;
{$R *.dfm}
procedure TF_ImageShow.FormCreate(Sender: TObject);
begin
//Image.DataBinding.DataSource := TF_Main(GForm).DM.DataSource;
//Image.DataBinding.DataField := 'PICTURE';
end;
constructor TF_ImageShow.Create(AOwner: TComponent; AForm: TForm);
begin
GForm := AForm;
inherited Create(AOwner);
end;
destructor TF_ImageShow.Destroy;
begin
inherited;
end;
procedure TF_ImageShow.ImageDBClick(Sender: TObject);
begin
Close;
end;
procedure TF_ImageShow.ShowFromFile(const aFilePath: String; aPoint: PPoint=nil);
begin
ImageDB.visible := false;
Image.Align := alClient;
Image.visible := true;
Image.Picture.LoadFromFile(aFilePath);
Width := Image.Picture.Width + 1;
Height := Image.Picture.Height + 1;
Show;
if aPoint <> nil then
begin
if (aPoint^.X + Width) > Screen.Width then
Left := Screen.Width - Width
else
Left := aPoint^.X;
Top := aPoint^.Y;
end;
end;
procedure TF_ImageShow.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Hide;
end;
procedure TF_ImageShow.ImageClick(Sender: TObject);
begin
Hide;
end;
procedure TF_ImageShow.FormDeactivate(Sender: TObject);
begin
Hide;
end;
end.