78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
unit uconnectionform;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, {$IfNDef VER130} Variants, {$EndIf} Classes, Graphics, Controls, Forms,
|
|
Dialogs, hyieutils, ieview, imageenview, iexBitmaps;
|
|
|
|
type
|
|
TConnectionForm = class(TForm)
|
|
Viewer: TImageEnView;
|
|
procedure ViewerVirtualKey(Sender: TObject; VirtualKey,
|
|
KeyData: Cardinal; KeyDown: Boolean);
|
|
procedure ViewerSpecialKey(Sender: TObject; CharCode: Word;
|
|
Shift: TShiftState; var Handled: Boolean);
|
|
procedure ViewerMouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
Y: Integer);
|
|
procedure MouseDownUp(Sender: TObject; Button: TMouseButton;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
rfb:TIERFBClient;
|
|
procedure OnRFBUpdate(Sender:TObject);
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TConnectionForm.FormShow(Sender: TObject);
|
|
begin
|
|
Caption := rfb.ScreenName;
|
|
Viewer.SetExternalBitmap(rfb.FrameBuffer);
|
|
rfb.OnUpdate := OnRFBUpdate;
|
|
end;
|
|
|
|
procedure TConnectionForm.OnRFBUpdate(Sender:TObject);
|
|
begin
|
|
Viewer.Update;
|
|
end;
|
|
|
|
procedure TConnectionForm.ViewerVirtualKey(Sender: TObject; VirtualKey,
|
|
KeyData: Cardinal; KeyDown: Boolean);
|
|
begin
|
|
rfb.SendKeyEvent(Virtualkey, KeyData, KeyDown);
|
|
end;
|
|
|
|
procedure TConnectionForm.ViewerSpecialKey(Sender: TObject; CharCode: Word;
|
|
Shift: TShiftState; var Handled: Boolean);
|
|
begin
|
|
Handled := true;
|
|
end;
|
|
|
|
procedure TConnectionForm.ViewerMouseMove(Sender: TObject;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
rfb.SendPointerEvent(Viewer.XScr2Bmp(X), Viewer.YScr2Bmp(Y), ssLeft in Shift, ssMiddle in Shift, ssRight in Shift);
|
|
Viewer.Update;
|
|
end;
|
|
|
|
procedure TConnectionForm.MouseDownUp(Sender: TObject;
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
rfb.SendPointerEvent(Viewer.XScr2Bmp(X), Viewer.YScr2Bmp(Y), ssLeft in Shift, ssMiddle in Shift, ssRight in Shift);
|
|
end;
|
|
|
|
|
|
procedure TConnectionForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
end.
|