unigui控件的FASTSCRIPT封装
unigui控件的FASTSCRIPT封装
unit fs_uniControl;
interface
{$i fs.inc}
uses
  fs_iinterpreter, fs_itools, fs_ievents,
  fs_iclassesrtti,System.Variants,
  uniMainMenu,uniPageControl;
type
  TuniMenuItemRTTI = class(TUniMenuItem); // fake component
TfsNotifyEvent = class(TfsCustomEvent)
  public
    procedure DoEvent(Sender:TObject);
    function GetMethod: Pointer; override;
  end;
type
  TuniFunctions = class(TfsRTTIModule)
  private
    function CallMethod(Instance: TObject; ClassType: TClass;
      const MethodName: String; Caller: TfsMethodHelper): Variant;
    function GetProp(Instance: TObject; ClassType: TClass;
      const PropName: String): Variant;
    procedure SetProp(Instance: TObject; ClassType: TClass;
      const PropName: String; Value: Variant);
  public
    constructor Create(AScript: TfsScript); override;
  end;
VAR  uniFunctions:TuniFunctions;
implementation
{ TFunctions }
procedure TfsNotifyEvent.DoEvent(Sender: TObject);
begin
  CallHandler([Sender]);
end;
function TfsNotifyEvent.GetMethod: Pointer;
begin
  Result := @TfsNotifyEvent.DoEvent;
end;
constructor TuniFunctions.Create(AScript: TfsScript);
begin
  inherited Create(AScript);
  with AScript do
  begin
    with AddClass(TUniMenuItem, 'TUniMenuItem') do
    begin
      AddEvent('OnClick', TfsNotifyEvent);
    end;
with AddClass(TUniTabSheet, 'TUniTabSheet') do
    begin
end;
  end;
end;
function TuniFunctions.CallMethod(Instance: TObject; ClassType: TClass;
  const MethodName: String; Caller: TfsMethodHelper): Variant;
begin
end;
function TuniFunctions.GetProp(Instance: TObject; ClassType: TClass;
  const PropName: String): Variant;
begin
end;
procedure TuniFunctions.SetProp(Instance: TObject; ClassType: TClass;
  const PropName: String; Value: Variant);
begin
end;
initialization
  fsRTTIModules.Add(TuniFunctions);
finalization
  fsRTTIModules.Remove(TuniFunctions);
end.
unigui控件的FASTSCRIPT封装的更多相关文章
- IP编辑控件(因为封装的是系统自带控件,所以也使用了CreateSubClass,不过为啥要封装CN_COMMAND和CN_NOTIFY不是很明白)
		
最近需要用一个IP输入控件,网上找了几个,都不符合效果,有些还有一些奇怪的Bug.后来发现原来系统已经提供了IP地址编辑控件,只是系统提供的控件不能设置只读效果.网上找了下资料,封装了一下,自己迂回一 ...
 - 【NET】Winform用户控件的初步封装之编辑控件
		
编辑控件 public abstract partial class TEditorBase <TEntity, TRepository, TSqlStrConstruct> : User ...
 - Android-PickerView【仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器】使用
		
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文主要演示Android-PickerView的选项选择器.时间选择器的简单运用.由于每一个版本略有不用,所以实际使用方式以git ...
 - Jedi项目,还真得好好看看,有许多控件和新封装的API(Delphi里面没有)
		
以前没有重视 http://www.delphi-jedi.org/ https://github.com/project-jedi https://sourceforge.net/projects/ ...
 - 【NET】Winform用户控件的初步封装之列表页控件
		
public abstract partial class TListPager<TEntity, TRepository, TSqlStrConstruct> : UserControl ...
 - 控件使用经验-MVP模式+控件封装
		
项目背景 几年前参与了一个面向学校的人事管理软件的开发,基于WinForm平台.今天主要想谈一谈其中关于控件的使用经验.这个项目我们大量使用了第三方控件.由于这个产品的生命周期很长,我们在设计时要考虑 ...
 - [转]Oracle分页之二:自定义web分页控件的封装
		
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...
 - Delphi对于控件的SuperClassing(封装并扩展Button,使之变成TButton)
		
写博客写了这么久,但是一直不知道应该怎么样写函数之间的调用关系和执行顺序,因为不停的跳来跳去的,但是写的时候却只能顺序写调用关系,直到今天发现这种写法很不错: TButton创建窗口是在CreateW ...
 - 将webkit内核封装为duilib的浏览器控件
		
转载请说明出处,谢谢~~ 原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直 ...
 
随机推荐
- Linux学习-X Server 配置文件解析与设定
			
X server 的配置 文件都是预设放置在 /etc/X11 目录下,而相关的显示模块或上面提到的总总模块,则主要放置在/usr/lib64/xorg/modules . 比较重要的是字型文件与芯片 ...
 - Linux学习-灾难复原的考虑
			
硬件损毁,且具有完整备份的数据时 由于是硬件损毁,所以我们不需要考虑系统软件的不稳定问题,所以可以直接将完整的系统复原回去 即可. 由于软件的问题产生的被攻破资安事件 由于系统的损毁是因为被攻击,此时 ...
 - selenium2 TestNG参数化
			
想要参数化,首先要加入@Parameters({"参数1","参数2"}) package com.demo.test; import java.util.co ...
 - UVa 10564 DP Paths through the Hourglass
			
从下往上DP,d(i, j, k)表示第(i, j)个格子走到底和为k的路径条数. 至于字典序最小,DP的时候记录一下路径就好. #include <cstdio> #include &l ...
 - spoj104 HIGH - Highways 矩阵树定理
			
欲学矩阵树定理必先自宫学习一些行列式的姿势 然后做一道例题 #include <iostream> #include <cstring> #include <cstdio ...
 - 【Luogu】P3232游走(高斯消元解概率)
			
题目链接 参见远航之曲dalao的题解,我再写一遍的话就没啥意思了. #include<cstdio> #include<cstring> #include<algori ...
 - volatile的用法
			
在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized ...
 - 微软2014实习生及秋令营技术类职位在线测试(题目1 : String reorder)
			
题目1 : String reorder 时间限制:10000ms 单点时限:1000ms 内存限制:256MB Description For this question, your program ...
 - Java面试题之final、finally和finalize的区别
			
final: final是一个修饰符,可以修饰变量.方法和类,如果final修饰变量,意味着变量的值在初始化后不能被改变: 防止编译器把final域重排序到构造函数外:(面试的时候估计答出这个估计会加 ...
 - Visual Code 自定义插件安装位置
			
修改快速方式通过传入方式启动 ,示例: D:\installed_green_soft\VSCode\Code.exe --extensions-dir "D:\installed_gree ...