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

142 lines
3.5 KiB
ObjectPascal

unit U_RasterImageSettings;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, siComp, ComCtrls, U_LNG, GDIPOBJ, Math;
type
TF_RasterImageSettings = class(TForm)
Button1: TButton;
Button2: TButton;
siLang1: TsiLang;
TrackBar1: TTrackBar;
CheckBox1: TCheckBox;
MbLabel: TLabel;
ImageSizeCapt: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
KBLabel: TLabel;
procedure TrackBar1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
PixelImageX, PixelImageY: Integer;
aFName: String;
CadPicWidth, CadPicHeight: integer;
ScaleKoef: Double;
FormImageScaleKoef: Double;
CadIsBiggerThanImage: boolean;
MaxAllowedTrackVal: Integer;
end;
var
F_RasterImageSettings: TF_RasterImageSettings;
implementation
uses U_BaseCommon, U_Common, U_Cad;
{$R *.dfm}
procedure TF_RasterImageSettings.Button1Click(Sender: TObject);
begin
ModalResult := mrOK;
end;
procedure TF_RasterImageSettings.TrackBar1Change(Sender: TObject);
var isize: double;
sPixelImageX, sPixelImageY: Double;
begin
FormImageScaleKoef := TrackBar1.Position/100;
if CadIsBiggerThanImage then
begin
sPixelImageX := CadPicWidth * (TrackBar1.Position/100);
sPixelImageY := CadPicHeight * (TrackBar1.Position/100);
end
else
begin
sPixelImageX := PixelImageX * (TrackBar1.Position/100);
sPixelImageY := PixelImageY * (TrackBar1.Position/100);
end;
isize := sPixelImageX*sPixelImageY;
isize := isize * 3;
//isize := isize * TrackBar1.Position;
isize := isize / 1024;
isize := isize / 10;
if isize > 18000 then
ImageSizeCapt.Font.Color := clRed
else
if isize > 5000 then
ImageSizeCapt.Font.Color := clblue
else
if isize < 5000 then
ImageSizeCapt.Font.Color := clGreen;
if isize > 1024 then
begin
isize := isize/1024;
MbLabel.Visible := True;
KbLabel.Visible := False;
ImageSizeCapt.Caption := FormatFloat('0.0', isize);
end
else
begin
MbLabel.Visible := False;
KbLabel.Visible := True;
ImageSizeCapt.Caption := IntToStr(Round(isize));
end;
Label2.Caption := inttostr(TrackBar1.Position) + ' %';
end;
procedure TF_RasterImageSettings.Button2Click(Sender: TObject);
begin
close;
end;
procedure TF_RasterImageSettings.CheckBox1Click(Sender: TObject);
begin
if Checkbox1.Checked then
TrackBar1.ShowSelRange := True
else
TrackBar1.ShowSelRange := False;
end;
Procedure TF_RasterImageSettings.FormCreate(Sender: TObject);
begin
//inherited;
CheckBox1.Checked := true;
ModalResult := mrCancel;
CadIsBiggerThanImage := False;
end;
procedure TF_RasterImageSettings.FormShow(Sender: TObject);
var isize: double;
sPixelImageX, sPixelImageY: Double;
begin
ModalResult := mrCancel;
{sPixelImageX := PixelImageX * (TrackBar1.Position/100);
sPixelImageY := PixelImageY * (TrackBar1.Position/100);
isize := sPixelImageX*sPixelImageY;
isize := isize * 3;
isize := isize / 10;
//isize := isize * TrackBar1.Position;
isize := isize / 1024;
Label2.Caption := inttostr(TrackBar1.Position) + ' %';
ImageSizeCapt.Caption := IntToStr(Round(isize));}
end;
end.