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

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

?? e_props.pas

?? 一個關于delphi控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
Unit E_Props;
{-------------} Interface {--------------------}
Uses
      Classes  ,TypInfo;
(*******************************************************************
                            E_Props
    Get and set RTTI information routines.
    NOTE : I have encapsulated all RTTI manipulation routines in this
    unit due to the possibility that Borland may change the structure
    of RTTI with later releases. This way any changes required in an
    application can be made in only one place. The TEProperty class
    below provides an interface that can be used for displaying and
    editing a component's properties.
    Author : David Spies
    Contacts : Work - davidsp@eastsoft.com Home DSPIES@onecom.com  *)

Const
       PROP_NOTYPE        = 0;
       PROP_STRTYPE       = 1;
       PROP_INTTYPE       = 2;
       PROP_REALTYPE      = 3;
       PROP_BOOLTYPE      = 4;
       PROP_CHARTYPE      = 5;
       PROP_ENUMTYPE      = 6;
       PROP_COLORTYPE     = 7;
       PROP_CURSORTYPE    = 8;
       PROP_SETTYPE       = 9;
       PROP_CLASSTYPE     = 10;
       PROP_MODALTYPE     = 11;
       PROP_DBNAMETYPE    = 12;
       PROP_DBIDXNAMETYPE = 13;
       PROP_DBTABNAMETYPE = 14;
       PROP_DBLOOKUPFIELD = 15;

       PROP_FONTSUB        = 1;
       PROP_ICONSUB        = 2;
       PROP_BMPSUB         = 3;
       PROP_TSTRSUB        = 4;
       PROP_DATASETSUB     = 5;
       PROP_DATASOURCESUB  = 6;
Type
     TEProperty = Class
       EType        : Word;
       SubType      : Word;
       MaxChars     : Word;
       MinVal       : LongInt;
       MaxVal       : LongInt;
       ClassAddr    : LongInt;
       PValue       : String;
       TypeInfo     : PTypeInfo;
     end;



Function E_IsPublishedProp(     AComponent : TComponent;
                           Const PropName   : String) : Boolean;


Function E_GetStrProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Var   PropValue  : String) : Boolean;

Function E_GetIntProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Var   PropValue  : Integer) : Boolean;

Function E_GetBoolProp(      AComponent : TComponent;
                       Const PropName   : String;
                       Var   PropValue  : Boolean) : Boolean;

Function E_GetRealProp(     AComponent : TComponent;
                      Const PropName   : String;
                      Var   PropValue  : Double) : Boolean;

Function E_GetSetStrProp(      AComponent : TComponent;
                         Const PropName   : String;
                          Var  PropValue  : String) : Boolean;

Function E_SetStrProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Const PropValue  : String) : Boolean;

Function E_SetIntProp(      AComponent : TComponent;
                      Const PropName   : String;
                            PropValue  : Integer) : Boolean;

Function E_SetRealProp(      AComponent : TComponent;
                       Const PropName   : String;
                            PropValue   : Double) : Boolean;

Function E_SetBoolProp(     AComponent : TComponent;
                      Const PropName   : String;
                            PropValue  : Boolean) : Boolean;

Function E_SetSetStrProp(      AComponent : TComponent;
                         Const PropName   : String;
                               PropValue  : String) : Boolean;

Function E_EnumProperties(    AComponent : TComponent;
                          Var PropList   : TStringList) : Integer;

Function E_GetEnumList(      CompProp : TEProperty;
                             AList    : TStrings) : Boolean;


{-------------} Implementation {---------------}
Uses
    Controls,Db,DbTables,Graphics,SysUtils;
Type
     TIntegerSet = set of 0..SizeOf(Integer) * 8 - 1;

(*******************************************************************
                            E_GetPropInfo
    Internal helper routine to get a RTTI structure pointer.
 *******************************************************************)
Function E_GetPropInfo(      AComponent : TCOmponent;
                       Const PropName   : String;
                       Var   PropInfo   : PPropInfo) : Boolean;
begin
  PropInfo:=Nil;
  If AComponent<>Nil then
    Try
      PropInfo:=GetPropInfo(AComponent.ClassInfo,PropName);
    Except
      PropInfo:=Nil;
    end;
  Result:=PropInfo<>Nil;
end;
(*******************************************************************
                            E_IsPublished
    Return true if PropName is a published property.
 *******************************************************************)
Function E_IsPublishedProp(     AComponent : TComponent;
                           Const PropName   : String) : Boolean;
begin
  If Propname<>'' then
    Result:=GetPropInfo(AComponent.ClassInfo,PropName)<>Nil
  else
    Result:=False;
end;
(*******************************************************************
                            E_Get????????
  The next several routines get the value of PropName from component.
  Returns False if property doesn't exist.
 *******************************************************************)
Function E_GetStrProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Var   PropValue  : String) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    PropValue:=GetStrProp(TObJect(AComponent),PropInfo)
  else
    PropValue:='';
end;
Function E_GetIntProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Var   PropValue  : Integer) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    PropValue:=GetOrdProp(TObJect(AComponent),PropInfo)
  else
    PropValue:=0;
end;
Function E_GetBoolProp(      AComponent : TComponent;
                       Const PropName   : String;
                       Var   PropValue  : Boolean) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    PropValue:=Boolean(GetOrdProp(TObJect(AComponent),PropInfo))
  else
    PropValue:=False;
end;
Function E_GetRealProp(      AComponent : TComponent;
                       Const PropName   : String;
                       Var   PropValue  : Double) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    PropValue:=GetFloatProp(TObJect(AComponent),PropInfo)
  else
    PropValue:=0;
end;
Function E_GetSetStrProp(      AComponent : TComponent;
                         Const PropName   : String;
                          Var  PropValue  : String) : Boolean;
Var
    PropInfo  : PPropInfo;
    S         : TIntegerSet;
    TypeInfo  : PTypeInfo;
    I         , MinV  ,  MaxV      : Integer;
begin
  PropValue:='';
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
  begin
    Integer(S):=GetOrdProp(TObJect(AComponent),PropInfo);
//    TypeInfo:=(GetTypeData(PropInfo^.PropType)^.CompType)^;
    TypeInfo:=(GetTypeData(PropInfo^.proptype^)^.CompType)^; //***


    MinV:=GetTypeData(TypeInfo).MinValue;
    MaxV:=GetTypeData(TypeInfo).MaxValue;
    PropValue := '[';
    for I := MinV to MaxV do
      if I in S then
      begin
        if Length(PropValue) <> 1 then
          PropValue := PropValue + ',';
        PropValue := PropValue + GetEnumName(TypeInfo,I);
      end;
      PropValue := PropValue + ']';
  end;
end;
(*******************************************************************
                            E_Set????????
  The next several routines sets the value of PropName in component
  to PropVal. Returns False if property doesn't exist.
 *******************************************************************)
Function E_SetStrProp(      AComponent : TComponent;
                      Const PropName   : String;
                      Const PropValue  : String) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    SetStrProp(TObJect(AComponent),PropInfo,PropValue);
end;
Function E_SetIntProp(      AComponent : TComponent;
                      Const PropName   : String;
                            PropValue  : Integer) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    SetOrdProp(TObJect(AComponent),PropInfo,PropValue);
end;
Function E_SetBoolProp(     AComponent : TComponent;
                      Const PropName   : String;
                            PropValue  : Boolean) : Boolean;
Var
    PropInfo  : PPropInfo;
    PValue    : Integer;
begin
  PValue:=Ord(PropValue);
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    SetOrdProp(TObJect(AComponent),PropInfo,PValue);

end;
Function E_SetRealProp(      AComponent : TComponent;
                       Const PropName   : String;
                            PropValue   : Double) : Boolean;
Var
    PropInfo  : PPropInfo;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then
    SetFloatProp(TObJect(AComponent),PropInfo,PropValue);
end;
Function E_SetSetStrProp(      AComponent : TComponent;
                         Const PropName   : String;
                               PropValue  : String) : Boolean;
Var
    PropInfo  : PPropInfo;
    S         : TIntegerSet;
    TypeInfo  : PTypeInfo;
    I         : Integer;
    Tp        : String;
begin
  Result:=E_GetPropInfo(AComponent,PropName,PropInfo);
  If Result then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日韩欧美一区二区三区| 中文字幕中文在线不卡住| 欧美专区日韩专区| 色哟哟一区二区在线观看| 97精品久久久午夜一区二区三区| av一区二区三区| 99久久精品情趣| 一本色道综合亚洲| 欧美最猛性xxxxx直播| 欧美三区免费完整视频在线观看| 欧美日韩精品系列| 日韩一区二区三区四区五区六区| 日韩午夜激情电影| 国产欧美日韩三级| 亚洲三级在线免费观看| 亚洲成a人v欧美综合天堂| 午夜a成v人精品| 精品一区二区三区免费毛片爱 | 欧美精品色综合| 日韩一级片在线观看| 久久久久久日产精品| 亚洲欧美经典视频| 日精品一区二区| 国产 日韩 欧美大片| 日本精品视频一区二区三区| 欧美美女一区二区| 久久久精品免费观看| 樱花草国产18久久久久| 久草这里只有精品视频| av在线不卡网| 欧美一卡在线观看| 国产精品另类一区| 青青草一区二区三区| 99久久免费视频.com| 欧美一级精品在线| 亚洲男人的天堂在线aⅴ视频| 免费看欧美女人艹b| av在线不卡免费看| 欧美精品一区二| 亚洲国产va精品久久久不卡综合| 国产美女一区二区三区| 欧美久久久久久久久| 国产精品日韩精品欧美在线| 日本不卡一区二区三区| 99久久99久久精品免费观看| 精品久久一二三区| 亚洲国产wwwccc36天堂| av亚洲精华国产精华| 久久久久99精品国产片| 日韩电影在线观看电影| 91高清在线观看| 国产精品女同一区二区三区| 狠狠色狠狠色合久久伊人| 欧美乱熟臀69xxxxxx| 亚洲色图欧洲色图婷婷| 不卡一区二区三区四区| 久久久亚洲欧洲日产国码αv| 亚洲va韩国va欧美va精品| 色综合天天天天做夜夜夜夜做| 欧美精品一区二区高清在线观看| 日韩影视精彩在线| 欧美视频一区二区三区在线观看| 中文字幕人成不卡一区| 懂色av一区二区在线播放| 亚洲精品在线免费观看视频| 久久精品国产一区二区三| 精品视频123区在线观看| 亚洲一区电影777| 91福利社在线观看| 亚洲图片欧美综合| 欧美性视频一区二区三区| 一区二区三区蜜桃| 欧美亚洲精品一区| 婷婷中文字幕综合| 欧美一区二区三区视频免费| 日本亚洲欧美天堂免费| 欧美一二三在线| 黄色资源网久久资源365| 欧美成人aa大片| 久久aⅴ国产欧美74aaa| xf在线a精品一区二区视频网站| 久久成人18免费观看| 久久精品一二三| 成人激情黄色小说| 亚洲美女淫视频| 欧美精品乱人伦久久久久久| 日本三级亚洲精品| 国产视频视频一区| 91在线视频播放| 婷婷中文字幕综合| 国产午夜精品一区二区 | 在线观看亚洲精品| 日韩专区欧美专区| 久久久久久久精| 一本色道**综合亚洲精品蜜桃冫 | 欧美一区二区三区四区高清| 麻豆视频一区二区| 亚洲精品一区二区三区在线观看| 国产精品12区| 亚洲综合成人在线| 欧美v日韩v国产v| 成人av电影免费在线播放| 亚洲一区二区影院| 精品日韩成人av| 91在线观看地址| 人人狠狠综合久久亚洲| 国产精品高清亚洲| 日韩一区二区在线观看视频| 波多野洁衣一区| 免费看黄色91| 一区二区在线观看免费| 精品久久久久久久人人人人传媒 | 不卡电影一区二区三区| 午夜免费久久看| 日本一区二区视频在线| 欧美日韩精品一区二区三区四区| 国产成人自拍在线| 日韩电影免费在线| 亚洲激情自拍视频| 国产精品亲子乱子伦xxxx裸| 日韩欧美二区三区| 欧美怡红院视频| 99精品视频在线观看| 国产一区二区中文字幕| 亚洲国产欧美在线| 中文字幕制服丝袜成人av| 精品国产乱码久久久久久1区2区| 色域天天综合网| 成年人午夜久久久| 国产成人综合亚洲91猫咪| 青青草97国产精品免费观看| 亚洲一区视频在线观看视频| 国产精品污www在线观看| 久久色.com| 日韩欧美国产精品一区| 欧美日韩国产系列| 在线视频一区二区三| 中文字幕亚洲不卡| 国产精品国产三级国产aⅴ入口 | 色噜噜狠狠色综合中国| 欧美精品久久天天躁| 国产喂奶挤奶一区二区三区| 亚洲三级免费电影| 麻豆91在线观看| 99久久婷婷国产综合精品电影 | 亚洲欧美视频在线观看视频| 日韩专区在线视频| 成人黄色av电影| 欧美高清www午色夜在线视频| 久久久www免费人成精品| 亚洲婷婷综合色高清在线| 日韩在线播放一区二区| 不卡一二三区首页| 日韩欧美高清dvd碟片| 亚洲视频免费观看| 久久 天天综合| 欧美在线|欧美| 国产精品人成在线观看免费| 日韩—二三区免费观看av| 波多野结衣在线aⅴ中文字幕不卡| 欧美日韩亚州综合| 国产精品美女久久久久久2018 | 一区二区三区在线观看网站| 久久国内精品自在自线400部| 99久久国产综合精品麻豆 | 欧美日精品一区视频| 国产色产综合色产在线视频| 石原莉奈在线亚洲二区| 99re这里只有精品首页| 久久综合狠狠综合久久综合88| 亚洲一二三级电影| 94-欧美-setu| 欧美经典三级视频一区二区三区| 日韩成人av影视| 色噜噜狠狠色综合欧洲selulu| 中文字幕第一区二区| 九九国产精品视频| 欧美日韩美少妇 | 亚洲色图色小说| 丰满少妇在线播放bd日韩电影| 91精品国产全国免费观看| 一区二区三区精品视频| 国产91丝袜在线18| 久久婷婷成人综合色| 毛片基地黄久久久久久天堂| 欧美高清性hdvideosex| 午夜精品一区二区三区电影天堂| 一本到不卡精品视频在线观看| 欧美国产激情一区二区三区蜜月 | 91麻豆swag| 成人免费小视频| 成人午夜短视频| 国产精品无遮挡| av电影一区二区| 国产精品成人午夜| 成人18视频在线播放| 综合精品久久久| 日本乱码高清不卡字幕| 亚洲综合精品久久| 欧美三级在线播放|