亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hwextjvinspdata.pas

?? 用于Delphi程序中嵌入公式解析
?? PAS
字號:
unit hwExtJvInspData;
{ 本單元擴展JvInspector,用于顯示公式對象和用戶表達式對象等 }

interface
uses
        SysUtils, Classes, TypInfo, Messages, JvInspector, Dialogs,
        hwExpr, hwExprExt;

type
        TJvStringData = class(TJvCustomInspectorData)
        private
            FValue: string;
        Protected
            procedure CreateChild(const AParent : TJvCustomInspectorItem); override;
            function GetAsFloat: extended; override;
            function GetAsInt64: int64; override;
            function GetAsMethod: TMethod; override;
            function GetAsOrdinal: int64; override;
            function GetAsString: string; override;
            procedure SetAsFloat(const Value : extended); override;
            procedure SetAsInt64(const Value : int64); override;
            procedure SetAsMethod(const Value : TMethod); override;
            procedure SetAsOrdinal(const Value : int64); override;
            procedure SetAsString(const Value : string); override;
        Public
            constructor Create(const AParent: TJvCustomInspectorItem;
                               const AName: string;
                               const AValue: String);
            function HasValue: boolean; override;
            function IsAssigned: boolean; override;
            function IsInitialized: boolean; override;
            procedure GetAsSet(var Buf); override;
            procedure SetAsSet(const Buf); override;
        end;

        { ExtFunctionDeclare data }
        TJvDataForExtFuncDeclare = class(TJvCustomInspectorData)
        Private
            FEFD: TExtFunctionDeclare;
        Protected
            procedure CreateChild(const AParent : TJvCustomInspectorItem); override;
            function GetAsFloat: extended; override;
            function GetAsInt64: int64; override;
            function GetAsMethod: TMethod; override;
            function GetAsOrdinal: int64; override;
            function GetAsString: string; override;
            procedure SetAsFloat(const Value : extended); override;
            procedure SetAsInt64(const Value : int64); override;
            procedure SetAsMethod(const Value : TMethod); override;
            procedure SetAsOrdinal(const Value : int64); override;
            procedure SetAsString(const Value : string); override;

        Public
            class procedure Create(const ExtFuncDeclare: TExtFunctionDeclare;
                                   const AParent: TJvCustomInspectorItem); overload;
            constructor Create(const AParent: TJvCustomInspectorItem;
                               const ExtFuncDeclare: TExtFunctionDeclare;
                               const PropName: string;
                               const ATypeInfo: PTypeInfo); overload;
            procedure GetAsSet(var Buf); override;
            function HasValue: boolean; override;
            function IsAssigned: boolean; override;
            function IsInitialized: boolean; override;
            procedure SetAsSet(const Buf); override;
        end;

        TJvDataForExprFunc = class(TJvCustomInspectorData)
        end;

        TJvDataForIValue = class(TJvCustomInspectorData)
        end;
implementation
{ ============================================================================
  >>>>   Class Implementation Begin                                       <<<<
  >>>>   Class Name  : TJvStringData
  >>>>   Description :
  >>>>   Create Date :
  ---------------------------------------------------------------------------- }
constructor TJvStringData.Create(const AParent: TJvCustomInspectorItem;
                                 const AName: string; const AValue: string);
begin
        inherited Create(AName, system.TypeInfo(String), AParent);
        FValue := AValue;
        Init(AName, System.TypeInfo(String));
        CreateChild(AParent);
end;

function TJvStringData.HasValue: Boolean;
begin
        Result := True;
end;

function TJvStringData.IsAssigned: Boolean;
begin
        Result := HasValue;
end;

function TJvStringData.IsInitialized: Boolean;
begin
        Result := HasValue;
end;

procedure TJvStringData.CreateChild(const AParent: TJvCustomInspectorItem);
begin
        SetItem(TJvInspectorStringItem.Create(AParent, Self));
end;

function TJvStringData.GetAsFloat: Extended;
begin
end;

function TJvStringData.GetAsInt64: Int64;
begin
end;

function TJvStringData.GetAsMethod: TMethod;
begin
end;

function TJvStringData.GetAsOrdinal: Int64;
begin
end;

function TJvStringData.GetAsString: string;
begin
        Result := FValue;
end;

procedure TJvStringData.SetAsString(const Value: String);
begin
        FValue := Value;
end;

procedure TJvStringData.SetAsFloat(const Value: Extended);
begin
end;

procedure TJvStringData.SetAsInt64(const Value: Int64);
begin
end;

procedure TJvStringData.SetAsMethod(const Value: TMethod);
begin
end;

procedure TJvStringData.SetAsOrdinal(const Value: Int64);
begin
end;

procedure TJvStringData.GetAsSet(var Buf);
begin
end;

procedure TJvStringData.SetAsSet(const Buf);
begin
end;

{ ============================================================================
  >>>>   Class Implementation Begin                                       <<<<
  >>>>   Class Name  : TJvDataForExtFuncDeclare
  >>>>   Description :
  >>>>   Create Date :
  ---------------------------------------------------------------------------- }
constructor TJvDataForExtFuncDeclare.Create
            (const AParent: TJvCustomInspectorItem;
             const ExtFuncDeclare: TExtFunctionDeclare;
             const PropName: string;
             const ATypeInfo: PTypeInfo);
begin
        Inherited Create;
        FEFD := ExtFuncDeclare;
        Init(PropName, ATypeInfo);
        CreateChild(Aparent);
end;

class procedure TJvDataForExtFuncDeclare.Create
                (const ExtFuncDeclare: TExtFunctionDeclare;
                 const AParent: TJvCustomInspectorItem);
var     inspCat: TJvInspectorCustomCategoryItem;
        i : Integer;
        paramData: TJvStringData;
begin
        if ExtFuncDeclare = nil then
            raise EJvInspectorData.Create('沒有公式定義對象。笨蛋,你的程序是怎么寫的?');
        { 根據公式定義對象逐一顯示其屬性 }
        { 函數名 }
        Create(AParent, ExtFuncDeclare, '函數名', System.TypeInfo(string));
        Create(AParent, ExtFuncDeclare, '返回值類型', System.TypeInfo(String));
        inspCat := TJvInspectorCustomCategoryItem.Create(AParent, nil);

        inspCat.DisplayName := '參數表(' + IntToStr(ExtFuncDeclare.ParamsCount) + ')';
        if ExtFuncDeclare.ParamsCount > 0 then
        for i := 0 to ExtFuncDeclare.ParamsCount -1 do
        begin
            TJvInspectorVarData.Create(ExtFuncDeclare.ParamsName[i], system.TypeInfo(String),
                InspCat, ExprTypeName[ExtFuncDeclare.ParamsType[i]]);
        end;
end;

function TJvDataForExtFuncDeclare.HasValue: Boolean;
begin
        if FEFD <> nil then Result := True;
end;

function TJvDataForExtFuncDeclare.IsAssigned: Boolean;
begin
        Result := HasValue;
end;

function TJvDataForExtFuncDeclare.IsInitialized: Boolean;
begin
        result := HasValue;
end;

procedure TJvDataForExtFuncDeclare.CreateChild(const AParent: TJvCustomInspectorItem);
begin
        if Name = '函數名' then
            SetItem(TJvInspectorStringItem.Create(AParent, Self))
        else if Name = '返回值類型' then
            SetItem(TJvInspectorStringItem.Create(AParent, Self));
            
end;

function TJvDataForExtFuncDeclare.GetAsFloat: Extended;
begin
end;

procedure TJvDataForExtFuncDeclare.SetAsFloat(const Value: Extended);
begin
end;

function TJvDataForExtFuncDeclare.GetAsInt64: Int64;
begin
end;

procedure TJvDataForExtFuncDeclare.SetAsInt64(const Value: Int64);
begin

end;    //

function TJvDataForExtFuncDeclare.GetAsMethod: TMethod;
begin

end;        //

procedure TJvDataForExtFuncDeclare.SetAsMethod(const Value: TMethod);
begin

end;        //

function TJvDataForExtFuncDeclare.GetAsOrdinal: Int64;
begin
end;

procedure TJvDataForExtFuncDeclare.SetAsOrdinal(const Value: Int64);
begin

end;        //

function TJvDataForExtFuncDeclare.GetAsString: string;
begin
        if Name = '函數名' then Result := FEFD.FunctionName
        else if Name = '返回值類型' then Result := ExprTypeName[FEFD.ResultType];
end;

procedure TJvDataForExtFuncDeclare.SetAsString(const Value: string);
begin
end;

procedure TJvDataForExtFuncDeclare.GetAsSet(var Buf);
begin
end;

procedure TJvDataForExtFuncDeclare.SetAsSet(const Buf);
begin
end;
 
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三区av| 国产午夜精品久久| 午夜激情一区二区| 欧美日韩一级视频| 日韩中文字幕一区二区三区| 欧美高清视频不卡网| 日韩国产一二三区| www久久精品| 粉嫩av亚洲一区二区图片| 国产精品久久久久久久裸模| av电影在线观看不卡| 亚洲精品免费播放| 欧美精品第一页| 老司机一区二区| 国产精品你懂的在线欣赏| 91免费在线看| 图片区日韩欧美亚洲| 精品精品欲导航| 成人av电影在线网| 亚洲图片有声小说| 欧美va天堂va视频va在线| 高清不卡一区二区| 亚洲一区二区三区在线| 欧美大白屁股肥臀xxxxxx| 成人午夜碰碰视频| 亚洲成人综合在线| 久久久www成人免费毛片麻豆 | 日韩专区在线视频| 久久久精品黄色| 欧美亚洲自拍偷拍| 国产真实精品久久二三区| 中文字幕在线播放不卡一区| 欧美日韩亚洲综合一区| 激情久久五月天| 亚洲一级二级三级| 久久久久一区二区三区四区| 欧美自拍偷拍午夜视频| 韩国午夜理伦三级不卡影院| 一区二区三区在线影院| 久久久综合九色合综国产精品| 91碰在线视频| 韩国精品久久久| 亚洲mv在线观看| 成人欧美一区二区三区| 精品理论电影在线| 欧美性xxxxxxxx| 国产69精品久久久久毛片| 婷婷综合久久一区二区三区| 中文字幕免费一区| 欧美tk—视频vk| 911精品产国品一二三产区| 成人黄色电影在线| 激情伊人五月天久久综合| 亚洲国产欧美在线人成| 中文字幕av免费专区久久| 欧美mv和日韩mv的网站| 精品视频1区2区| bt欧美亚洲午夜电影天堂| 国产精品一二三四区| 天堂一区二区在线| 亚洲精品视频一区二区| 国产日韩欧美高清在线| 2023国产一二三区日本精品2022| 在线播放亚洲一区| 欧美在线看片a免费观看| 99久精品国产| 不卡一区中文字幕| 成人午夜私人影院| 成人小视频免费观看| 国产美女精品在线| 国内精品视频666| 六月婷婷色综合| 久久国产精品无码网站| 天堂影院一区二区| 丝瓜av网站精品一区二区| 午夜精品在线看| 亚欧色一区w666天堂| 亚洲午夜精品在线| 亚洲aaa精品| 午夜精品一区二区三区三上悠亚| 亚洲chinese男男1069| 亚洲成人www| 日韩综合在线视频| 日韩va欧美va亚洲va久久| 日本欧美一区二区在线观看| 日韩国产一二三区| 久久国产精品第一页| 国产在线精品一区二区三区不卡| 九色综合狠狠综合久久| 狠狠色狠狠色综合日日91app| 黄色小说综合网站| 国产麻豆精品在线观看| 粉嫩欧美一区二区三区高清影视| 成人开心网精品视频| 97se亚洲国产综合自在线不卡| 色综合天天综合网国产成人综合天| 色综合久久综合网97色综合| 日本久久一区二区三区| 欧美精品丝袜中出| 日韩欧美国产wwwww| 精品国产露脸精彩对白| 国产精品天天摸av网| 自拍偷自拍亚洲精品播放| 亚洲高清免费视频| 奇米精品一区二区三区在线观看一 | 精品一区在线看| 国产精品一区不卡| 色欧美片视频在线观看| 欧美另类变人与禽xxxxx| 欧美精品一区二区三区四区 | 国内精品久久久久影院一蜜桃| 粉嫩aⅴ一区二区三区四区五区 | 成人三级在线视频| 色吊一区二区三区| 91精品国产综合久久福利软件| 亚洲精品在线观| 亚洲欧美激情小说另类| 蜜臀av一区二区在线免费观看| 成人动漫一区二区在线| 欧美高清视频一二三区 | 6080yy午夜一二三区久久| 日韩一区二区不卡| 亚洲人成小说网站色在线| 蜜桃久久久久久久| 99国产欧美另类久久久精品| 欧美一级在线视频| 亚洲视频1区2区| 另类欧美日韩国产在线| 色激情天天射综合网| 久久嫩草精品久久久精品| 一区二区三区不卡视频在线观看| 麻豆精品视频在线| 99久久国产综合精品女不卡| 欧美本精品男人aⅴ天堂| 亚洲欧美精品午睡沙发| 国产精品一区二区果冻传媒| 欧美丝袜丝nylons| 日本一区二区三区在线观看| 午夜精品一区二区三区三上悠亚 | 久久国产精品一区二区| 欧美午夜精品电影| 亚洲欧美在线aaa| 国产精品一区二区在线观看网站| 欧美吞精做爰啪啪高潮| 亚洲欧洲在线观看av| 韩国三级电影一区二区| 在线成人高清不卡| 亚洲午夜久久久久久久久电影院 | 老司机精品视频在线| 欧美日韩www| 亚洲一区二区三区四区在线观看| 国产精品正在播放| 日韩你懂的电影在线观看| 亚洲一区二区偷拍精品| 一本色道久久综合亚洲aⅴ蜜桃 | 久久伊人中文字幕| 日韩avvvv在线播放| 欧亚洲嫩模精品一区三区| 亚洲欧美一区二区三区孕妇| 高清不卡一区二区在线| 337p日本欧洲亚洲大胆色噜噜| 欧美aaaaaa午夜精品| 欧美影院一区二区| 亚洲精品欧美激情| 99riav久久精品riav| 中文字幕高清不卡| 风流少妇一区二区| 亚洲国产精品高清| av电影在线观看一区| 国产精品对白交换视频 | 久久精品99国产精品日本| 欧美人妇做爰xxxⅹ性高电影| 亚洲一区二区av电影| 色拍拍在线精品视频8848| 亚洲在线免费播放| 成人综合在线观看| 国产精品的网站| 制服丝袜激情欧洲亚洲| 久久伊99综合婷婷久久伊| 国产综合色视频| 精品国偷自产国产一区| 国产精品羞羞答答xxdd| 欧美高清在线一区二区| av一本久道久久综合久久鬼色| ...中文天堂在线一区| 91福利在线播放| 亚洲成av人片在线观看| 欧美一区二区三区在线| 久久国产麻豆精品| 亚洲国产精品黑人久久久| 一本色道亚洲精品aⅴ| 亚洲无线码一区二区三区| 日韩一卡二卡三卡| 国产成人三级在线观看| 一区二区三区成人| 日韩欧美一二三区| a美女胸又www黄视频久久| 亚洲永久免费视频| 日韩美女视频在线| 成人免费的视频|