📄 showpic.pas
字号:
unit ShowPic;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DynamicSkinForm, jpeg, Menus, SkinCtrls, SkinBoxCtrls,
StdCtrls, Mask, Buttons, ToolWin, ComCtrls, SkinMenus, Gauges, IdGlobal, LangFrm;
type
TShowPm = class(TLangForm)
ClickTimer: TTimer;
SaveDialog1: TSaveDialog;
ControlBar1: TspSkinControlBar;
MainPanel: TspSkinPanel;
Gauge1: TGauge;
spDynamicSkinForm1: TspDynamicSkinForm;
PopupMenu3: TspSkinPopupMenu;
N4: TMenuItem;
Loadskin1: TMenuItem;
Storedskin1: TMenuItem;
About1: TMenuItem;
N7: TMenuItem;
N16: TMenuItem;
N11: TMenuItem;
N256: TMenuItem;
ScrollBox1: TScrollBox;
SaveButton: TspSkinSpeedButton;
PaintBox1: TPaintBox;
jianpanButton: TspSkinSpeedButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormResize(Sender: TObject);
procedure ClickTimerTimer(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N256Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure Loadskin1Click(Sender: TObject);
procedure Storedskin1Click(Sender: TObject);
procedure JianpanButtonClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure SaveButtonClick(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
procedure PaintBox1Click(Sender: TObject);
procedure PaintBox1DblClick(Sender: TObject);
procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
LastX : integer;
LastY : integer;
but : integer;
NumClick : integer;
procedure FullScreen;
procedure HuiFuScreen;
public
{ Public declarations }
end;
var
ShowPm: TShowPm;
implementation
uses
Main;
{$R *.dfm}
function IntToByteStr(Value: integer): string;
begin
SetLength(Result, 4);
Move(Value, Result[1], sizeof(integer));
end;
procedure TShowPm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
jianpanButton.Down:=False;
ViKing.ScreenCThread.Connection.Disconnect;
ViKing.ScreenCThread.Terminate;
except
end;
try
ViKing.ScrControl.Connection.Disconnect;
ViKing.ScrControl.Terminate;
except
end;
ViKing.ZhuDongCmdSend('004', '0', True);
end;
procedure TShowPm.FormResize(Sender: TObject);
begin
try
MainPanel.Width:= ShowPm.Width;
except
end;
end;
procedure TShowPm.ClickTimerTimer(Sender: TObject);
begin
ClickTimer.Enabled := False;
try
if (NumClick=1) and (but=1) then //单击左键
begin
ViKing.ScrControl.Connection.Write(IntToByteStr(1)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
end;
if (NumClick=2) and (but=1) then //双击左键
begin
ViKing.ScrControl.Connection.Write(IntToByteStr(2)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
end;
if (NumClick=1) and (but=2) then //单击右键
begin
ViKing.ScrControl.Connection.Write(IntToByteStr(3)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
end;
if (NumClick=2) and (but=2) then //双击左键
begin
ViKing.ScrControl.Connection.Write(IntToByteStr(4)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
end;
except
end;
ViKing.Enabled:=True;
end;
//远程主机屏幕颜色
procedure TShowPm.N16Click(Sender: TObject);
begin
N16.Checked := True;
ViKing.ZhuDongCmdSend('079',InttoStr(2), True);
end;
procedure TShowPm.N256Click(Sender: TObject);
begin
N256.Checked := True;
ViKing.ZhuDongCmdSend('079',InttoStr(0), True);
end;
procedure TShowPm.N11Click(Sender: TObject);
begin
N11.Checked := True;
ViKing.ZhuDongCmdSend('079',InttoStr(1), True);
end;
//屏幕控制
procedure TShowPm.Loadskin1Click(Sender: TObject);
begin
Loadskin1.Checked:=True;
Storedskin1.Checked:=False;
JianpanButton.Down:=True;
end;
//屏幕监视
procedure TShowPm.Storedskin1Click(Sender: TObject);
begin
Storedskin1.Checked:=True;
Loadskin1.Checked:=False;
JianpanButton.Down:=False;
end;
procedure TShowPm.JianpanButtonClick(Sender: TObject);
begin
if JianpanButton.Down then
begin
Loadskin1.Checked:=True;
Storedskin1.Checked:=False;
end else
begin
Storedskin1.Checked:=True;
Loadskin1.Checked:=False;
end;
end;
procedure TShowPm.SpeedButton1Click(Sender: TObject);
begin
FullScreen;
end;
procedure TShowPm.N3Click(Sender: TObject);
begin
HuiFuScreen;
end;
procedure TShowPm.N5Click(Sender: TObject);
begin
FullScreen;
end;
procedure TShowPm.FullScreen;
begin
showpm.BorderStyle := bsNone;
ScrollBox1.BorderStyle:= bsNone;
ControlBar1.Visible:=False;
showpm.Left:= 0;
showpm.Top:= 0;
showpm.Width:=Screen.Width;
showpm.Height:=Screen.Height;
// with showpm do
// begin
// DefaultMonitor:= dmDesktop;
// FormStyle:= fsStayOnTop;
// end;
showpm.WindowState := wsMaximized;
end;
procedure TShowPm.HuiFuScreen;
begin
showpm.BorderStyle := bsSizeable;
ScrollBox1.BorderStyle:= bsSingle;
ControlBar1.Visible:=True;
showpm.WindowState := wsNormal;
showpm.Left:=192;
showpm.Top:=140;
showpm.Width:=657;
showpm.Height:=477;
//with showpm do
// begin
// DefaultMonitor:= dmActiveForm;
// end;
end;
procedure TShowPm.SaveButtonClick(Sender: TObject);
begin
try
if SaveDialog1.Execute then
begin
Viking.FDoubleBuffer.SaveToFile(SaveDialog1.FileName);
end;
except
end;
end;
procedure TShowPm.PaintBox1Paint(Sender: TObject);
begin
try
if (PaintBox1.Width<>ViKing.FDoubleBuffer.Width)
or (PaintBox1.Height <> ViKing.FDoubleBuffer.Height) then
begin
PaintBox1.Top:=0;
PaintBox1.Left:=0;
PaintBox1.Width := ViKing.FDoubleBuffer.Width;
PaintBox1.Height := ViKing.FDoubleBuffer.Height;
end;
PaintBox1.Canvas.Draw(0, 0, ViKing.FDoubleBuffer);
except
end;
end;
procedure TShowPm.PaintBox1Click(Sender: TObject);
begin
if jianpanButton.Down then
begin
NumClick := 1;
ClickTimer.Enabled := False;
ClickTimer.Enabled := True;
end;
end;
procedure TShowPm.PaintBox1DblClick(Sender: TObject);
begin
if jianpanButton.Down then
begin
NumClick := 2;
ClickTimer.Enabled := False;
ClickTimer.Enabled := True;
end;
end;
procedure TShowPm.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if jianpanButton.Down then
begin
but := 1;
if Button = mbRight then but := 2;
//HgzVip.ZhuDongCmdSend('015',IntToStr(X) + IntToStr(Y)+ IntToStr(but),-1);
end;
end;
procedure TShowPm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if jianpanButton.Down then
begin
LastX := X;
LastY := Y;
try
Viking.ScrControl.Connection.Write(IntToByteStr(0)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
except
end;
//HgzVip.AddLineStr(inttostr(X) +' '+ inttostr(Y),1,False);
end;
end;
procedure TShowPm.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if jianpanButton.Down then
begin
if but = 2 then
begin //单击右键
ViKing.ScrControl.Connection.Write(IntToByteStr(3)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -