fixed Copy/Paste on scripting form
This commit is contained in:
		| @ -14,6 +14,7 @@ object ScriptEditor: TScriptEditor | ||||
|   OnClose = FormClose | ||||
|   OnCreate = FormCreate | ||||
|   OnDestroy = FormDestroy | ||||
|   OnShortCut = FormShortCut | ||||
|   OnShow = FormShow | ||||
|   PixelsPerInch = 96 | ||||
|   TextHeight = 13 | ||||
|  | ||||
| @ -80,6 +80,7 @@ type | ||||
|     btnBreak: TToolButton; | ||||
|     OpenDialog: TOpenDialog; | ||||
|     SaveDialog: TSaveDialog; | ||||
|     procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormDestroy(Sender: TObject); | ||||
|     procedure FormShow(Sender: TObject); | ||||
| @ -324,7 +325,7 @@ implementation | ||||
|  | ||||
| uses Main, Editor, Adjust, Global, Mutate, Registry, Preview, | ||||
|   ScriptRender, Gradient, ap_math, ap_classes, ap_sysutils, MyTypes, | ||||
|   SavePreset, ap_windows, ap_FileCtrl; | ||||
|   SavePreset, ap_windows, ap_FileCtrl, bmdll32; | ||||
|  | ||||
| {$R *.DFM} | ||||
|  | ||||
| @ -377,6 +378,8 @@ type | ||||
|     procedure CalculateBounds(AMachine: TatVirtualMachine); | ||||
|     procedure GetSaveFileName(AMachine: TatVirtualMachine); | ||||
|     procedure CopyFileProc(AMachine: TatVirtualMachine); | ||||
|     procedure BM_OpenProc(AMachine: TatVirtualMachine); | ||||
|     procedure BM_DllCFuncProc(AMachine: TatVirtualMachine); | ||||
|     procedure Init; override; | ||||
|   end; | ||||
|  | ||||
| @ -1164,6 +1167,9 @@ begin | ||||
|   Scripter.DefineMethod('NormalizeVars', 0, tkNone, nil, NormalizeVars); | ||||
|   Scripter.DefineMethod('GetSaveFileName', 0, tkString, nil, GetSaveFileName); | ||||
|   Scripter.DefineMethod('CopyFile', 2, tkString, nil, CopyFileProc); | ||||
|  | ||||
|   Scripter.DefineMethod('BM_Open', 1, tkInteger, nil, BM_OpenProc); | ||||
|   Scripter.DefineMethod('BM_DllCFunc', 2, tkInteger, nil, BM_DllCFuncProc); | ||||
| end; | ||||
|  | ||||
| procedure TOperationLibrary.RandomFlame(AMachine: TatVirtualMachine); | ||||
| @ -1264,6 +1270,34 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TOperationLibrary.BM_OpenProc(AMachine: TatVirtualMachine); | ||||
| var | ||||
|   Name: string; | ||||
| begin | ||||
|   Name := AMachine.GetInputArgAsString(0); | ||||
|  | ||||
|   if @bmdll32.Open <> nil then begin | ||||
|     AMachine.ReturnOutputArg(bmdll32.Open(Pchar(Name))); | ||||
|   end else begin | ||||
|     LastError := 'bmdll32.dll not loaded'; | ||||
|     AMachine.Halt; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TOperationLibrary.BM_DllCFuncProc(AMachine: TatVirtualMachine); | ||||
| var | ||||
|   var1, var2: Integer; | ||||
| begin | ||||
|   var1 := AMachine.GetInputArgAsInteger(0); | ||||
|   var2 := AMachine.GetInputArgAsInteger(1); | ||||
|  | ||||
|   if @bmdll32.DllCFunc <> nil then begin | ||||
|     AMachine.ReturnOutputArg(bmdll32.DllCFunc(var1, var2)); | ||||
|   end else begin | ||||
|     LastError := 'bmdll32.dll not loaded'; | ||||
|     AMachine.Halt; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TOperationLibrary.SetParamFileProc(AMachine: TatVirtualMachine); | ||||
| var | ||||
| @ -3034,5 +3068,26 @@ begin | ||||
|   Favorites.SaveToFile(AppPath + 'favorites'); | ||||
| end; | ||||
|  | ||||
| procedure TScriptEditor.FormShortCut(var Msg: TWMKey; var Handled: Boolean); | ||||
| begin | ||||
|   if GetKeyState(VK_CONTROL) >= 0 then | ||||
|     Exit; | ||||
|  | ||||
|   if Msg.CharCode = Ord('C')  then begin | ||||
|     Editor.CopyToClipBoard; | ||||
|     Handled := True; | ||||
|   end; | ||||
|  | ||||
|   if Msg.CharCode = Ord('V') then begin | ||||
|     Editor.PasteFromClipBoard; | ||||
|     Handled := True; | ||||
|   end; | ||||
|  | ||||
|   if Msg.CharCode = Ord('X') then begin | ||||
|     Editor.CutToClipBoard; | ||||
|     Handled := True; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| end. | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 ronaldhordijk
					ronaldhordijk