📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls, QuickRpt,
QRCtrls, jpeg, Menus;
type
TForm1 = class(TForm)
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
TabControl1: TTabControl;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
SpeedButton2: TSpeedButton;
Edit6: TEdit;
Panel1: TPanel;
BitBtn1: TBitBtn;
Edit7: TEdit;
Edit8: TEdit;
Button1: TButton;
Panel2: TPanel;
Panel3: TPanel;
SpeedButton3: TSpeedButton;
Panel4: TPanel;
Panel5: TPanel;
Image1: TImage;
Label1: TLabel;
Panel6: TPanel;
OpenDialog1: TOpenDialog;
PopupMenu1: TPopupMenu;
Button2: TButton;
RichEdit1: TRichEdit;
Panel7: TPanel;
Panel8: TPanel;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormClick(Sender: TObject);
procedure createlable;
procedure createpicture;
procedure SpeedButton2Click(Sender: TObject);
// procedure Label1Click(Sender: TObject);
procedure labelclick(sender: tobject);
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure ImageClick(Sender: TObject);
procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
sflag:integer ; //控件类型
x,y:integer; //鼠标位置
lablecount:integer;
Imagecount:integer;
DBSourcesName,DBSourcesPath:string;
ImageSourcesNameEdt,ImageWidth,ImageHeigh,ImageX,ImageY:string;
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
lablecount:=1;
Imagecount:=1;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
sflag:=1;
end;
procedure TForm1.createpicture;
var Image1:TImage;
Imagename:string;
spicture:string; //Tpicture;
begin
Image1 :=TImage.Create(self);
Imagename :='Image'+inttostr(Imagecount+1);
Image1.name:=Imagename;
//Mouse.CursorPos.XMouse.CursorPos.Y self.left,self.top
Edit2.Text := inttostr(Mouse.CursorPos.X);
Edit3.Text := inttostr(Mouse.CursorPos.Y);
Edit4.Text := inttostr(self.left);
Edit5.Text := inttostr(self.top);
// Label2.Width:=200;
Image1.left:=Mouse.CursorPos.X-self.left-4;
Image1.Top:=Mouse.CursorPos.Y-self.top-30;
Image1.Height :=90;
Image1.Width :=90;
//E:\工程\delphi\动态添加控件\picture.bmp
spicture:= 'E:\工程\delphi\动态添加控件\picture.bmp';
Image1.Picture.LoadFromFile(spicture);
//Image1.AutoSize :=true;
//Image1.caption:=Image1.Name;
Edit1.Text :=Image1.Name;
Image1.parent:=self;
//Image1.Color :=clActiveCaption;
Image1.visible:=true;
Image1.OnDblClick :=ImageClick; //定义响应的事件
Image1.OnMouseDown :=ImageMouseDown;
Imagecount:=Imagecount+1
end;
procedure TForm1.createlable;
var Label2:TLabel;
labelname:string;
begin
Label2 :=TLabel.Create(self);
labelname :='label'+inttostr(lablecount+1);
Label2.name:=labelname;
//Mouse.CursorPos.XMouse.CursorPos.Y self.left,self.top
Edit2.Text := inttostr(Mouse.CursorPos.X);
Edit3.Text := inttostr(Mouse.CursorPos.Y);
Edit4.Text := inttostr(self.left);
Edit5.Text := inttostr(self.top);
// Label2.Width:=200;
Label2.left:=Mouse.CursorPos.X-self.left-4;
Label2.Top:=Mouse.CursorPos.Y-self.top-30;
Label2.Height :=20;
Label2.AutoSize :=true;
Label2.caption:=Label2.Name;
Edit1.Text :=Label2.Name;
Label2.parent:=self;
Label2.Color :=clActiveCaption;
Label2.visible:=true;
Label2.OnDblClick :=labelclick; //定义响应的事件
lablecount:=lablecount+1
end;
procedure TForm1.FormClick(Sender: TObject);
begin
if sflag>0 then
begin
if sflag=1 then //生成控件 Label
begin
createlable;
sflag:=0;
{
Label2 :=TLabel.Create(self);
labelname :='label'+inttostr(lablecount+1);
Label2.name:=labelname;
//Mouse.CursorPos.XMouse.CursorPos.Y self.left,self.top
Edit2.Text := inttostr(Mouse.CursorPos.X);
Edit3.Text := inttostr(Mouse.CursorPos.Y);
Edit4.Text := inttostr(self.left);
Edit5.Text := inttostr(self.top);
// Label2.Width:=200;
Label2.left:=Mouse.CursorPos.X-self.left-4;
Label2.Top:=Mouse.CursorPos.Y-self.top-30;
Label2.Height :=20;
Label2.AutoSize :=true;
Label2.caption:=Label2.Name;
Edit1.Text :=Label2.Name;
Label2.parent:=self;
Label2.Color :=clActiveCaption;
Label2.visible:=true;
Label2.OnClick :=labelclick; //定义响应的事件
lablecount:=lablecount+1
}
{
Label:=TLabel.Create(self);
Label.name:='label'+inttostr(lablecount+1);
Label.Width:=200;
Label.left:=200;
Label.Top:=200;
Label.caption:=Label.name;
Label.parent:=self;
Label.visible:=true;
lablecount:=lablecount+1;
}
{
edit:=tedit.Create(self);
edit.Name:='edit'+inttostr(mycontrolcount);
edit.Width:=100;
edit.Left :=100;
edit.Top :=(30)*(mycontrolcount-1);
edit.Text :=edit.Name ;
edit.parent:=self;
edit.Visible :=true;
mycontrolcount:=mycontrolcount+1;
}
end;
if sflag=2 then
begin
createpicture;
sflag:=0;
end;
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
sflag:=0;
end;
// 生成控件 TLabel的单击事件
procedure TForm1.labelclick(sender: tobject);
begin
//此处应该放选中状态切可以改变控件大小
//(Sender as TLabel).Caption :=Edit6.Text ; //修改 Caption
(Sender as TLabel).Caption :=Edit6.Text ;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var str:String;
i:integer;
begin
str:=Edit7.Text ;
for i:=1 to length(str) do
if ord(str[i])>127 then
Edit8.Text :=Edit8.Text+str[i]+'为非法字符';
end;
procedure TForm1.Button1Click(Sender: TObject);
var str:String;
i,j:integer;
begin
str:=Edit7.Text ;
i:=0;
j:=length(str);
while j>i do
begin
if ord(str[i])>127 then
begin
Edit8.Text :=Edit8.Text+copy(str,i,2);
i:=i+1;
end;
i:=i+1;
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
sflag:=2;
end;
procedure TForm1.ImageClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
DBSourcesName:=Opendialog1.FileName;
DBSourcesPath:=ExtractFilePath(DBSourcesName);
ImageSourcesNameEdt:=Opendialog1.FileName;
end;
if ImageSourcesNameEdt<>'' then
begin
(Sender as TImage).Picture.LoadFromFile(ImageSourcesNameEdt) ;
end;
end;
procedure TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
begin
ImageWidth:=inttostr((Sender as TImage).Width);
ImageHeigh:=inttostr((Sender as TImage).Height);
ImageY :=inttostr((Sender as TImage).Top);
Imagex :=inttostr((Sender as TImage).Left);
form2.ShowModal ;
if ImageSourcesNameEdt<>'' then
begin
(Sender as TImage).Picture.LoadFromFile(ImageSourcesNameEdt) ;
end;
(Sender as TImage).Width :=strtoint(ImageWidth);
(Sender as TImage).Height:=strtoint(ImageHeigh);
(Sender as TImage).Top :=strtoint(ImageY);
(Sender as TImage).Left:=strtoint(Imagex);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var r,l,i,j:integer;
begin
Image1.AutoSize :=false;
r:=Image1.Width;
l:=Image1.Height;
RichEdit1.Lines.Text :='长*宽='+inttostr(r)+'*'+inttostr(l);
RichEdit1.Lines.Add('左边距*上边距='+inttostr(Image1.Left)+'*'+inttostr(Image1.Top));
//下面取图形点的颜色数据,白0,否则为1
for i:=0 to r do
begin
RichEdit1.Lines.Add('('+inttostr(getRvalue(Image1.Canvas.Pixels[0,i]))+','+inttostr(getGvalue(Image1.Canvas.Pixels[0,i]))+','+inttostr(getBvalue(Image1.Canvas.Pixels[0,i]))+')');
end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit8.Text :='('+inttostr(getRvalue(Image1.Canvas.Pixels[x,y]))+','+inttostr(getGvalue(Image1.Canvas.Pixels[x,y]))+','+inttostr(getBvalue(Image1.Canvas.Pixels[x,y]))+')';
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit8.Text :='('+inttostr(getRvalue(Image1.Canvas.Pixels[x,y]))+','+inttostr(getGvalue(Image1.Canvas.Pixels[x,y]))+','+inttostr(getBvalue(Image1.Canvas.Pixels[x,y]))+')';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -