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

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

?? e_props.pas

?? 一個關于delphi控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
  begin
    While PropValue<>'' do
    begin
      I:=Pos('[',PropValue);
      If I=0 then
        I:=Pos(']',PropValue);
      If I=0 then
        Break;
      Delete(PropValue,I,1);
    end;
    S:=[];
    TypeInfo:=(GetTypeData(PropInfo^.PropType^)^.CompType)^;//***
    While PropValue<>'' do
    begin
      I:=Pos(',',PropValue);
      If I=0 then
        I:=Succ(Length(PropValue));
      Tp:=Copy(PropValue,1,Pred(I));
      Delete(PropValue,1,I);
      Include(S,GetEnumValue(TypeInfo,Tp));
    end;
    SetOrdProp(TObJect(AComponent),PropInfo,Integer(S));
  end;
end;
(*******************************************************************
                            E_EnumProperties
    Enumerate the properties of a component and return them
    in stringlist Proplist where the string is the property name
    and a TEProperty class associated with the property describes
    how to manipulate the property. NOTE that it is expected that
    PropList has not been created.
 *******************************************************************)
Function E_EnumProperties(    AComponent : TComponent;
                          Var PropList   : TStringList) : Integer;
Var
    PKinds   : TTypeKinds;
    PList    : PPropList;
    PtData   : PTypeData;
    PropInfo : PPropInfo;
    CompProp : TEProperty;
    I,J      : Integer;
    TReal    : Double;
    TInt     : Integer;
    S        : TIntegerSet;
    Ts       : String;
    PCount   : Integer;
begin
  PropList:=Nil;
  PKinds:=[tkInteger, tkChar, tkEnumeration, tkFloat,tkString, tkSet, tkClass, tkLString];
  Result:=GetPropList(AComponent.ClassInfo,PKinds,Nil);
  If Result>0 then
  begin
    GetMem(PList,Result * SizeOf(Pointer));
    Try
       Result:=GetPropList(AComponent.ClassInfo,PKinds,PList);
       If Result>0 then
       begin
         PropList:=TStringList.Create;
         for I := 0 to result - 1 do
         begin
           PropInfo := PList^[I];
           CompProp:=TEProperty.Create;
           With CompProp do
           begin
             TypeInfo:=PropInfo^.PropType^;
             MinVal:=0;
             MaxVal:=0;
             ClassAddr:=0;
             MaxChars:=0;
             SubType:=0;
           end;
//           With PropInfo^,PropType^ do
           With propinfo^  do
           begin
             If propinfo^.proptype^.Kind<>tkClass then  {Acts screwy for some reason}
               PtData:=GetTypeData(PropType^);  //***
             Case propinfo^.proptype^.Kind Of
               tkFloat       : begin
                                 TReal:=GetFloatProp(TObJect(AComponent),PropInfo);
                                 With CompProp do
                                 begin
                                   EType:=PROP_REALTYPE;
                                   Case PtData^.FloatType Of
                                     ftSingle : MaxChars:=8;
                                     ftDouble : MaxChars:=16;
                                   else
                                     MaxChars:=20;
                                   end;
                                   PValue:=FloatToStrF(TReal,ffGeneral,MaxChars,0);
                                   MaxChars:=22; {For -&. in edit}
                                 end;
                               end;
               tkChar        : begin
                                 TInt:=GetOrdProp(TObJect(AComponent),PropInfo);
                                 With CompProp do
                                 begin
                                   If (TInt<32) OR (TInt>127) then
                                     PValue:='#'+IntToStr(TInt)
                                   else
                                     PValue:=''+Chr(TInt);
                                   EType:=PROP_CHARTYPE;
                                   MaxChars:=4;
                                 end;
                               end;
               tkString      ,
               tkLString     : With CompProp do
                               begin
                                 EType:=PROP_STRTYPE;
                                 If propinfo^.proptype^.Kind=tkString then
                                   MaxChars:=PtData^.MaxLength;
                                 If PropInfo^.Name='Name' then
                                   MaxChars:=63;
                                 PValue:=UpperCase(PropInfo.Name);
                                 If AComponent IS TTable then
                                 begin
                                   If Pvalue='DATABASENAME' then
                                     EType:=PROP_DBNAMETYPE
                                   else If PValue='INDEXNAME' then
                                     EType:=PROP_DBIDXNAMETYPE
                                   else If PValue='TABLENAME' then
                                     EType:=PROP_DBTABNAMETYPE;
                                 end
                                 else If (Pvalue='LOOKUPFIELD') OR (PValue='LOOKUPDISPLAY') then
                                   EType:=PROP_DBLOOKUPFIELD;
                                 PValue:=GetStrProp(TObJect(AComponent),PropInfo);
                               end;
               tkEnumeration : begin
                                 TInt:=GetOrdProp(TObJect(AComponent),PropInfo);
                                 With CompProp do If UpperCase(Name)='BOOLEAN' then
                                 begin
                                   If TInt=0 then
                                     PValue:='False'
                                   else
                                     PValue:='True';
                                   EType:=PROP_BOOLTYPE;
                                 end
                                 else
                                 begin
                                   PValue:=GetEnumName(PropType^,TInt);//***
                                   MinVal:=PtData^.MinValue;
                                   MaxVal:=PtData^.MaxValue;
                                   EType:=PROP_ENUMTYPE;
                                 end;
                               end;
               tkInteger     : With CompProp do
                               begin
                                 TInt:=GetOrdProp(TObJect(AComponent),PropInfo);
                                 PValue:=UpperCase(PropInfo.Name);
                                 If Pos('COLOR',PValue)>0 then
                                 begin
                                   PValue:=ColorToString(TColor(TInt));
                                   EType:=PROP_COLORTYPE;
                                 end
                                 else If Pos('CURSOR',PValue)>0 then
                                 begin
                                   PValue:=CursorToString(TCursor(TInt));
                                   EType:=PROP_CURSORTYPE;
                                 end
                                 else
                                 begin
                                   PValue:=IntToStr(TInt);
                                   EType:=PROP_INTTYPE;
                                   If (PtData<>Nil) then
                                   begin
                                     MinVal:=PtData^.MinValue;
                                     MaxVal:=PtData^.MaxValue;
                                   end;
                                   Case PtData^.OrdType Of
                                     otSByte : MaxChars:=4;
                                     otUByte : MaxChars:=3;
                                     otSWord : MaxChars:=6;
                                     otUWord : MaxChars:=5;
                                     otSLong : MaxChars:=11;
                                   end;
                                 end;
                               end;
               tkSet          : With CompProp do
                                begin
                                  EType:=PROP_SETTYPE;
                                  TypeInfo:=(ptData^.CompType)^;
                                  PtData:=GetTypeData(TypeInfo);
                                  MinVal:=PtData^.MinValue;
                                  MaxVal:=PtData^.MaxValue;
                                  Integer(S):=GetOrdProp(TObJect(AComponent),PropInfo);
                                  CompProp.PValue := '[';
                                  for J := MinVal to MaxVal do
                                    if J IN S then
                                    begin
                                      if Length(PValue) <> 1 then
                                        PValue := PValue + ',';
                                      PValue := PValue + GetEnumName(TypeInfo,J);
                                    end;
                                  PValue := PValue + ']';
                                end;
               tkClass        : With CompProp do
                                begin
                                  EType:=PROP_CLASSTYPE;
                                  Ts:=UpperCase(PropType^.Name);
                                  PValue:='('+PropType^.Name+')';
                                  ClassAddr:=GetOrdProp(AComponent,PropInfo);
                                  If Ts = 'TFONT' then
                                  begin
                                    SubType:=PROP_FONTSUB;
                                    If ClassAddr>0 then
                                      PValue:=TFont(ClassAddr).Name;
                                  end
                                  else If Ts = 'TICON' then
                                    SubType:=PROP_ICONSUB
                                  else If Ts = 'TBITMAP' then
                                    SubType:=PROP_BMPSUB
                                  else If Ts = 'TSTRINGS' then
                                    SubType:=PROP_TSTRSUB
                                  else If (Ts='TDATASET') OR (Ts='TTABLE') then
                                  begin
                                    If ClassAddr>0 then
                                      PValue:=TTable(ClassAddr).Name
                                    else
                                      PValue:='';
                                    SubType:=PROP_DATASETSUB;
                                  end
                                  else If (Ts='TDATASOURCE') then
                                  begin
                                    If ClassAddr>0 then
                                      PValue:=TDataSource(ClassAddr).Name
                                    else
                                      PValue:='';
                                    SubType:=PROP_DATASOURCESUB;
                                  end
                                  else
                                  begin
                                    PCount :=0; {Does It Have Some Properties?}
                                    If ClassAddr>0 then
                                      Try
                                        PCount:=GetPropList(TComponent(ClassAddr).ClassInfo,PKinds,Nil);
                                      Except
                                        PCount:=0;
                                      end;
                                    If PCount<1 then {Just Show It!}
                                    begin
                                      EType:=PROP_NOTYPE;
                                      PValue:='*'+PropType^.Name+'*';
                                    end;
                                  end;
                                end;
             end;
           end;
           PropList.AddObject(PropInfo^.Name,CompProp);
         end;
       end;
    Finally
      If Result>0 then
        FreeMem(PList,Result*SizeOf(Pointer));
    end;
  end;
end;
(*******************************************************************
                            E_GetEnumList
    Get a string list representing the values of a set type or
    an enumerated type property. NOTE that it is expected AList has
    already been created.
 *******************************************************************)
Function E_GetEnumList(      CompProp : TEProperty;
                             AList    : TStrings) : Boolean;
Var
    I        : Integer;
begin
  AList.Clear;
  Result:=False;
  If CompProp=Nil then
    Exit;
  If CompProp.EType=PROP_BOOLTYPE then
  begin
    AList.Add('True');
    AList.Add('False');
  end
  else For I:=CompProp.MinVal to CompProp.MaxVal do
    AList.Add(GetEnumName(CompProp.TypeInfo,I));
  Result:=True;
end;
{-------------------------END OF FILE---------------------------------}
end.


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情一区二区三区桃花岛亚洲| 国产一区二区三区免费| 精品在线免费视频| 精品国产制服丝袜高跟| 久久av资源网| 中文字幕一区二区三| 欧美系列一区二区| 免费一级欧美片在线观看| 国产一区在线视频| 欧美无砖砖区免费| 欧美激情综合在线| 看国产成人h片视频| 91黄色在线观看| 国产精品丝袜久久久久久app| 男女男精品视频| 欧美日韩国产一级| 亚洲欧美日韩国产综合在线| 成人免费视频免费观看| 久久久久久影视| 六月丁香综合在线视频| 欧美裸体bbwbbwbbw| 一区二区不卡在线视频 午夜欧美不卡在| 丰满少妇在线播放bd日韩电影| 日韩一区和二区| 蜜桃av一区二区三区| 91精品国产综合久久久久久| 天堂在线一区二区| 欧美日韩免费观看一区二区三区| 亚洲激情第一区| 91福利精品第一导航| 亚洲大尺度视频在线观看| 欧美日韩中文另类| 无吗不卡中文字幕| 日韩欧美电影在线| 韩国在线一区二区| 久久久亚洲国产美女国产盗摄| 国产成人鲁色资源国产91色综| 久久久国产午夜精品| 成人av在线影院| 一区二区三区四区激情| 欧美三区在线视频| 久久精品国产久精国产爱| 日韩精品在线一区| 韩国三级在线一区| 中文字幕中文在线不卡住| 91视频在线观看免费| 亚洲一区在线观看免费观看电影高清| 欧美少妇性性性| 免费在线看一区| 国产日韩欧美高清在线| 99久久精品国产一区二区三区| 亚洲永久精品大片| 制服丝袜亚洲网站| 成人在线一区二区三区| 亚洲最色的网站| 精品精品国产高清一毛片一天堂| 高清视频一区二区| 亚洲国产日韩a在线播放性色| 日韩一区二区在线播放| 国产成人av电影在线观看| 亚洲人成网站精品片在线观看| 欧美欧美欧美欧美| 高清日韩电视剧大全免费| 亚洲午夜精品17c| 国产欧美一区二区精品久导航| 日本韩国一区二区三区视频| 久久精品国产网站| 尤物视频一区二区| 精品国产乱码久久久久久免费| 成人免费高清在线观看| 日日摸夜夜添夜夜添国产精品 | 日韩免费看的电影| 国产成人免费视| 日韩电影在线观看一区| 国产精品欧美久久久久一区二区| 欧美精品乱码久久久久久按摩 | 国产精品午夜在线| 在线播放中文一区| 91性感美女视频| 麻豆精品在线视频| 亚洲精品视频在线观看免费| 久久免费的精品国产v∧| 在线观看区一区二| 不卡视频一二三| 激情综合色播激情啊| 亚洲大片免费看| 亚洲欧洲制服丝袜| 国产精品色在线| 久久―日本道色综合久久| 91精品国产综合久久久久久漫画 | 亚洲国产精品成人久久综合一区| 中文字幕日韩一区| 国产91精品一区二区麻豆亚洲| 亚洲国产日韩在线一区模特| 亚洲日本中文字幕区| 国产三级一区二区| 欧美精品一区二区三区在线播放 | 欧洲日韩一区二区三区| 国产精品一线二线三线精华| 日本欧美一区二区| 石原莉奈在线亚洲二区| 一区二区三区久久久| 韩国中文字幕2020精品| 午夜一区二区三区在线观看| 亚洲精品一二三| 国产精品久久久久三级| 中文字幕成人网| 国产欧美精品区一区二区三区| 欧美日韩黄色影视| 国产精品久久久99| 国产精品久久久久久亚洲伦| 国产亚洲污的网站| 国产亚洲女人久久久久毛片| 国产人久久人人人人爽| 国产精品系列在线| 中文字幕一区三区| 亚洲欧洲制服丝袜| 亚洲人成影院在线观看| 国产欧美视频一区二区三区| 亚洲国产精品av| 中文字幕一区av| 亚洲蜜臀av乱码久久精品| 亚洲色欲色欲www| 亚洲最快最全在线视频| 亚洲va国产天堂va久久en| 日韩高清在线一区| 理论片日本一区| 国产一区不卡视频| 国产成都精品91一区二区三| 99re亚洲国产精品| 欧美午夜精品一区二区蜜桃| 91麻豆精品国产91久久久| 亚洲精品在线免费观看视频| 国产午夜精品久久久久久免费视| 国产精品麻豆一区二区 | 亚洲精品视频一区| 一区二区三区欧美| 美女爽到高潮91| 国产成人精品一区二| 91麻豆精东视频| 欧美一区二区三区视频免费播放| 久久久国际精品| 一区二区在线观看免费视频播放 | 一道本成人在线| 欧美三区免费完整视频在线观看| 精品日韩一区二区三区免费视频| 国产精品免费丝袜| 调教+趴+乳夹+国产+精品| 国产制服丝袜一区| 91精品福利视频| 亚洲精品一线二线三线| 久久精品噜噜噜成人av农村| 国产精品66部| 欧美综合亚洲图片综合区| 日韩精品专区在线影院观看| **欧美大码日韩| 经典三级视频一区| 欧美亚洲另类激情小说| 久久九九久精品国产免费直播| 一区二区激情小说| 国产+成+人+亚洲欧洲自线| 欧美日韩国产另类一区| 国产人成亚洲第一网站在线播放| 亚洲大片免费看| 99久久精品久久久久久清纯| 日韩一级视频免费观看在线| 亚洲欧美一区二区视频| 精品影视av免费| 欧美日韩视频在线第一区 | aaa国产一区| 欧美变态tickle挠乳网站| 亚洲精品中文在线观看| 国产成人一级电影| 日韩一区二区高清| 亚洲一区二区视频在线| 99久久国产综合色|国产精品| 久久综合狠狠综合| 日韩av高清在线观看| 91黄色激情网站| 亚洲欧洲精品一区二区三区| 国产精品一二三四五| 精品久久一区二区| 日韩专区一卡二卡| 欧美日韩综合色| 亚洲一区二区三区视频在线| av在线免费不卡| 国产精品情趣视频| 国产jizzjizz一区二区| 久久综合国产精品| 国产九色sp调教91| 久久久久久97三级| 国产精品一区二区在线看| 26uuu欧美日本| 国内成人精品2018免费看| 精品国产成人在线影院| 久久99热这里只有精品| 精品少妇一区二区三区在线播放| 久久精品国产亚洲一区二区三区 | 国产一区在线不卡| 2022国产精品视频|