📄 unitfrmlook.pas
字号:
unit UnitfrmLook;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ExtCtrls, Clipbrd, Buttons, UnitFP;
type
TfrmLook = class(TForm)
Panel1: TPanel;
LabelX: TLabel;
EditX: TEdit;
ScrollBoxPic: TScrollBox;
ImageView: TImage;
PopupMenuPic: TPopupMenu;
N17: TMenuItem;
Label1: TLabel;
EditY: TEdit;
BitBtn1: TBitBtn;
CheckBox1: TCheckBox;
ComboBox1: TComboBox;
CheckBox2: TCheckBox;
procedure N17Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLook: TfrmLook;
implementation
uses UnitAuto;
{$R *.dfm}
procedure TfrmLook.N17Click(Sender: TObject);
var
MyFormat : Word;
AData : THandle;
APalette : HPALETTE;
begin
Clipboard.Clear;
self.ImageView.Picture.Bitmap.SaveToClipBoardFormat(MyFormat,AData,APalette);
ClipBoard.SetAsHandle(MyFormat,AData);
end;
procedure TfrmLook.FormResize(Sender: TObject);
begin
ImageView.Visible:=false;
try
ScrollBoxPic.AutoScroll:=true;
if ImageView.Width> ScrollBoxPic.Width then
ImageView.Left:=-ScrollBoxPic.HorzScrollBar.Position
else
ImageView.Left:= (ScrollBoxPic.Width-ImageView.Width) div 2;
if ImageView.height> ScrollBoxPic.height then
ImageView.top:=-ScrollBoxPic.VertScrollBar.Position
else
ImageView.top:= (ScrollBoxPic.height-ImageView.height) div 2;
except
//
end;
ImageView.Visible:=true;
end;
procedure TfrmLook.BitBtn1Click(Sender: TObject);
var
xMin,xMax,yMin,yMax :extended; //值范围
pxMin,pxMax,pyMin,pyMax :integer; //屏幕范围
i,iCount :integer;
dIndexX,dIndexY :string;
dDatax,dDatay :array of extended; //横轴
X,Y :integer;
begin
try
self.ImageView.Width:=trunc(strtofloat(self.EditX.Text));
self.ImageView.Height:=trunc(strtofloat(self.EditY.Text));
self.ImageView.Picture.Bitmap.Width:=trunc(strtofloat(self.EditX.Text));
self.ImageView.Picture.Bitmap.Height:=trunc(strtofloat(self.EditY.Text));
FormResize(Sender);
self.ImageView.Canvas.Pen.Width:=1;
self.ImageView.Canvas.Brush.Color:=frmMain.ColorComboBox1.ColorValue;
frmMain.ScrollBox1.Color:=frmMain.ColorComboBox1.ColorValue;
self.ImageView.Canvas.FillRect(rect(0,0,self.ImageView.Picture.Width-1,self.ImageView.Picture.Height-1));
pxMin:=self.ImageView.Picture.Bitmap.Width div 10;
pxMax:=self.ImageView.Picture.Bitmap.Width*9 div 10;
pyMin:=self.ImageView.Picture.Bitmap.Height*9 div 10;
pyMax:=self.ImageView.Picture.Bitmap.Height div 10;
dIndexX:=frmMain.ComboBox2.Text;
dIndexY:=frmMain.ComboBox3.Text;
ClientDataSetDataOld.Last;
ClientDataSetDataOld.First;
iCount:=ClientDataSetDataOld.RecordCount;
if not (iCount<1) then
begin
setlength(dDatax,iCount);
setlength(dDatay,iCount);
frmMain.DBGridDataOld.DataSource.DataSet:=nil;
i:=0;
while not (ClientDataSetDataOld.Eof) do
begin
dDataX[i]:=ClientDataSetDataOld.fieldByName(dIndexX).AsFloat;
dDataY[i]:=ClientDataSetDataOld.fieldByName(dIndexY).AsFloat;
ClientDataSetDataOld.Next;
i:=i+1;
end;
ClientDataSetDataOld.First;
frmMain.DBGridDataOld.DataSource.DataSet:=ClientDataSetDataOld;
end
else
begin
exit;
end;
xMin:=MinInArray(dDatax);
xMax:=MaxInArray(dDatax);
yMin:=MinInArray(dDatay);
yMax:=MaxInArray(dDatay);
if xMin=xMax then
begin
xMin:=xMin-1;
xMax:=xMax+1;
end;
if yMin=yMax then
begin
yMin:=yMin-1;
yMax:=yMax+1;
end;
PicxMin:=xMin;
PicxMax:=xMax;
PicyMin:=yMin;
PicyMax:=yMax;
for i:=high(dDatax) downto 0 do
begin
X:=trunc((dDatax[i]-xMin)/(xMax-xMin)*(PxMax-PxMin)+pxMin);
y:=trunc((dDatay[i]-yMin)/(yMax-yMin)*(PyMax-PyMin)+pyMin);
self.ImageView.Canvas.Pixels[X,Y]:=frmMain.ColorComboBox2.ColorValue;
self.ImageView.Canvas.Pixels[X+1,Y]:=frmMain.ColorComboBox2.ColorValue;
self.ImageView.Canvas.Pixels[X-1,Y]:=frmMain.ColorComboBox2.ColorValue;
self.ImageView.Canvas.Pixels[X,Y+1]:=frmMain.ColorComboBox2.ColorValue;
self.ImageView.Canvas.Pixels[X,Y-1]:=frmMain.ColorComboBox2.ColorValue;
end;
except
//
end;
end;
procedure TfrmLook.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmLook.FormCreate(Sender: TObject);
begin
BitBtn1Click(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -