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

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

?? e_cmped.pas

?? 一個關于delphi控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit E_cmpEd;

interface
(*******************************************************************
                            E_CmpEd
    Object Inspector/Component Editor.
    Author : David Spies
    Contacts : Work - davidsp@eastsoft.com Home DSPIES@onecom.com  *)
//uses
//  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
//  Grids, StdCtrls, Buttons, ExtCtrls, ComCtrls, E_Props,  Consts;
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls,typinfo, TeeProcs, TeEngine, Chart, Db, DBTables,
  Grids, DBGrids, ActiveX, Menus,   ComCtrls, E_Props,  Consts,Tsize;


type
   pTnotifyevent=^TnotifyEvent;
   pTmouseevent =^Tmouseevent;
   pTmousemoveevent =^Tmousemoveevent;


type
  TCompEditForm = class(TForm)
    StringGrid1: TStringGrid;
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    ComponentBox: TComboBox;
    EditStr: TEdit;
    ComboEnum: TComboBox;
    SetEdit: TListBox;

    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Panel1Resize(Sender: TObject);
    procedure ComponentBoxChange(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure StringGrid1SelectCell(Sender: TObject; Col, Row: Longint;
                                    var CanSelect: Boolean);
    procedure StringGrid1DblClick(Sender: TObject);
    procedure FixUpOnExit(Sender: TObject);
    procedure EditStrKeyPress(Sender: TObject; var Key: Char);
    procedure EditkeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    PropList     : TStringList;
    FComponent   : TComponent;
    CurComponent : TComponent;
    CompProp     : TEProperty;
    flag:boolean;
{=================     事件      =====================}

   ponclick:^TnotifyEvent;
   pdown ,pup:pTmouseevent;
   pmove:pTmousemoveevent;
   downflag,posflag:Boolean;
   oldx,oldy:integer;
   OnClickList, downlist, uplist, movelist:Tstringlist;
   OclickList,Odownlist,Ouplist,Omovelist:Tlist;

   Focuse_WinControl:Twincontrol;
   AIsModal:boolean;
   
    Procedure ShowCurrentComponent;
    procedure ClearStringGrid;
    procedure ClearPropList;
    procedure DoLastControl;
    Procedure EGetStrs(Const s : String);
    procedure SetEditBounds(AControl : TWinControl);
    Procedure SetStatusBar(Sender : TObject;
                           ARow   : Integer);
    procedure EditProperty(CurCol ,
                           CurRow : LongInt);
    procedure ClearEdit(Sender: TObject);


{=================     事件      =====================}
    function Check_Event(instance:Tobject; Event_Name:string):boolean;
    procedure new_onClick(Sender: TObject);
    procedure new_MouseDown(Sender: TObject; Button: TMouseButton;
              Shift: TShiftState; X, Y: Integer);
    procedure new_MouseMove(Sender: TObject; Shift: TShiftState; X,
              Y: Integer);
    procedure new_MouseUp(Sender: TObject; Button: TMouseButton;
              Shift: TShiftState; X, Y: Integer);
    procedure set_NewOnClick(aform:TObject; new_onclick:TnotifyEvent);
    procedure set_NewOnmousedown(aform:Tobject; new_down:TMouseEvent);
    procedure set_NewOnmousemove(aform:Tobject; new_move:Tmousemoveevent);
    procedure set_NewOnMouseUp(aform:Tobject; new_up:Tmouseevent);
    procedure set_new_event(aform: Tform ; new_onclick: TnotifyEvent ;
                                             new_mousedown,new_mouseup: Tmouseevent ;
                                             new_mousemove: Tmousemoveevent  );
//    procedure resert(aform:Tform);
    procedure SetEvent(instance:Tcomponent;
                              MethodList:Tlist; index:integer ;Event_name:string);

    function  saveEvent(instance:Tcomponent;
                          MethodList:Tlist; Event_name:string;Data:pointer):boolean;

  public
    { Public declarations }
    AForm:Tform;
    destructor Destroy; override;
    Procedure Execute(AComponent : TComponent;
                      IsModal    : Boolean);
    procedure resert(aform:Tform);
 end;
 Procedure EditAComponent(AComponent : TComponent;
                          ACaption   : String;
                          IsModal    : Boolean);
var
  CompEditForm: TCompEditForm;

implementation

{$R *.DFM}
Uses
     FileCtrl,ImageWin,StrEdit;
Type
       ECompEditError   = class(Exception);
Const
       MrArray   : Array[mrNone..MrNo] Of String =
        ('mrNone',
         'mrOk',
         'mrCancel',
         'mrAbort',
         'mrRetry',
         'mrIgnore',
         'mrYes',
         'mrNo');
Function StripAllChr(InStr    : String;
                     StripChr : Char) : String;
Var
  I : Integer;
begin
  I := 1;
  while (I <= Length(InStr)) do
    if InStr[I] = StripChr then
      Delete(InStr, I, 1)
    else
      Inc(I);
  Result := InStr;
end;
Procedure GetFileList(FPath : String;
                      Mask  : String;
                      FList : TStrings);
Var
    TMask     : String;
    P         : Integer;
    FResult   : Integer;
    SearchRec : TSearchrec;
begin
  FList.Clear;
  If FPath='' then
    Exit;
  If NOT DirectoryExists(FPath) then
    Exit;
  If FPath[Length(FPath)]<>'\' then
    Fpath:=FPath+'\';
  While Mask<>'' do
  begin
    P:=Pos(';',Mask);
    If P=0 then
      P:=Succ(Length(Mask));
    TMask:=Copy(Mask,1,Pred(P));
    Delete(Mask,1,P);
    FResult := SysUtils.FindFirst(FPath+TMask,0,SearchRec);
    while FResult = 0 do
    begin
      FList.Add(SearchRec.Name);
      FResult := SysUtils.FindNext(SearchRec);
    end;
    SysUtils.FindClose(SearchRec);
  end;
end;
Procedure EditAComponent(AComponent : TComponent;
                         ACaption   : String;
                         IsModal    : Boolean);
Var
    AForm : TCompEditForm;
begin
  AForm:=TCompEditForm.Create(Application);
  If ACaption<>'' then
    AForm.Caption:=ACaption;
  AForm.Execute(AComponent,IsModal);
  AForm.Free;

end;
procedure TCompEditForm.FormClose(    Sender: TObject;
                                  var Action: TCloseAction);
begin
// resert(AForm);//+++
  if Focuse_WinControl<>nil then
     Focuse_WinControl.SetFocus;
  ClearPropList; {Clear the property list and free the form}
  if not AIsModal then //++
     free;
end;

destructor TCompEditForm.Destroy;
begin
resert(AForm);
inherited destroy;
end;


procedure TCompEditForm.ClearStringGrid;
Var
    I       : Integer;
begin
  For I:=0 To StringGrid1.RowCount-1 do
  begin
    StringGrid1.Cells[0,I]:='';
    StringGrid1.Cells[1,I]:='';
  end;
end;
procedure TCompEditForm.ClearPropList;
Var
    I       : Integer;
begin                   {Clear the Property List}
  If PropList<>Nil then
    For I:=0 to PropList.Count-1 do
    begin
      CompProp:=PropList.Objects[I] As TEProperty;
      CompProp.Free;
    end;
  PropList.Free;
  PropList:=Nil;
  CompProp:=Nil;
  ClearStringGrid;
end;
procedure TCompEditForm.Panel1Resize(Sender: TObject);
begin
  ComponentBox.Width:=Panel1.Width;
end;
Procedure TCompEditForm.ShowCurrentComponent;
Var
    S          : String;
    ACount     : Integer;
    I          : Integer;
    AComponent : TComponent;
    TInt       : Integer;
    Find       : boolean;
               Procedure DelCurrent;
               begin
                 CompProp:=PropList.Objects[I] As TEProperty;
                 CompProp.Free;
                 PropList.Delete(I);
                 Dec(Acount);
               end;
begin
  S :=Copy(ComponentBox.Text,1,Pred(Pos(':',ComponentBox.Text)));
  AComponent:=FComponent;
    For I:=0 to FComponent.ComponentCount-1 do
      If (Fcomponent.components[I]is Twincontrol) then
            if Twincontrol(Fcomponent.components[I]).focused then
                 Focuse_WinControl:=Twincontrol(FComponent.Components[I]);
  find:=false;
  If S<>'' then
    For I:=0 to FComponent.ComponentCount-1 do
      If ((FComponent.Components[I].Name=S)and(Fcomponent.components[I]is Tcontrol)) then
      begin
        AComponent:=FComponent.Components[I];
        TDdhSizerControl.create(Acomponent,Acomponent as Tcontrol,flag );
        find:=true;
        Break;
      end;
  if ((not find )and(Focuse_WinControl is Twincontrol))then Focuse_WinControl.SetFocus;

  If (AComponent<>Nil) AND (AComponent<>CurComponent) then
  begin
    CurComponent:=AComponent;
    ClearPropList;
    ACount:=E_EnumProperties(CurComponent,PropList);
    I:=0;
    While I<ACount do
    begin
      S:=UpperCase(PropList.Strings[I]);
      If (S='MASTERFIELDS') OR (S='MASTERSOURCE') OR
         (S='SESSIONNAME') OR (S='UPDATEOBJECT') OR
         (S='INDEXFILES') then
        DelCurrent
      else
        Inc(I);
    end;
    If ACount>0 then
    begin
      StringGrid1.RowCount:=ACount;
      For I:=0 to ACount-1 do
      begin
        StringGrid1.Cells[0,I]:=PropList.Strings[I];
        CompProp:=PropList.Objects[I] As TEProperty;
        If UpperCase(PropList.Strings[I])='MODALRESULT' then
        begin
          TInt:=StrToInt(CompProp.PValue);
          If (TInt<MrNone) OR (TInt>MrNo) then
            TInt:=mrNone;
          CompProp.PValue:=mrArray[TInt];
          CompProp.EType:=PROP_MODALTYPE;
        end;
        StringGrid1.Cells[1,I]:=CompProp.PValue;
      end;
      StringGrid1.Col:=1;
      StringGrid1.Row:=0;
    end
    else
      StringGrid1.RowCount:=0;
  end;
end;
procedure TCompEditForm.ComponentBoxChange(Sender: TObject);
begin
  ShowCurrentComponent;
end;
Procedure TCompEditForm.Execute(AComponent : TComponent;
                                IsModal    : Boolean);
Var
     I : Integer;
              Function AddComponent(AComponent : TComponent) : String;
              begin
                Result:=AComponent.Name+':'+AComponent.ClassName;
              end;
begin
  AIsModal:=IsModal;        //+++++
  Aform:=TForm(Acomponent); //+++++
  posflag:=true;            //+++++
  if Aform<>nil then        //+++++
   set_new_event( Aform  , new_onclick,
                     new_mousedown, new_mouseup,
                     new_mousemove  );

  ComponentBox.Items.Clear;
  FComponent:=AComponent;
  If FComponent.ComponentCount>1 then
    ComponentBox.Items.Add(AddComponent(FComponent))
  else
    ComponentBox.Enabled:=False;
  For I:=0 to FComponent.ComponentCount-1 do
    ComponentBox.Items.Add(AddComponent(FComponent.Components[I]));
  ComponentBox.ItemIndex:=0;
  CurComponent:=Nil;
  ShowCurrentComponent;
  If IsModal then
  begin
    BorderIcons:=BorderIcons-[biMinimize];
    Height:=Height DIV 2;
    ShowModal;
  end
  else
    Show;
end;

procedure TCompEditForm.FormResize(Sender: TObject);
begin
  StringGrid1.DefaultColWidth:=(ClientWidth-26) DIV 2;
  With StringGrid1 do
  begin
    ColWidths[0]:=DefaultColWidth;
    ColWidths[1]:=DefaultColWidth;
  end;
  If (ActiveControl=EditStr) OR (ActiveControl=ComboEnum) OR
     (ActiveControl=SetEdit) then
    SetEditBounds(ActiveControl);
end;
procedure TCompEditForm.DoLastControl;
Var
    CurRow  : Integer;
    PropStr : String;
    S       : String;
    TInt    : Integer;
    Tf      : Extended;
    TBool   : Boolean;
    CAddr   : LongInt;
    I,J     : Integer;
begin
  CurRow:=StringGrid1.Row;
  If CurRow<Proplist.Count then
  begin
    PropStr:=PropList.Strings[CurRow];
    CompProp:=PropList.Objects[CurRow] AS TEProperty;
    If CompProp<>Nil then
    begin
      If CompProp.EType=PROP_STRTYPE then
      begin
        If E_SetStrProp(CurComponent,PropStr,EditStr.Text) then
          CompProp.PValue:=EditStr.Text;
      end
      else If CompProp.EType=PROP_CHARTYPE then
      begin
        S:=StripAllChr(EditStr.Text,#32);
        If S='' then
          TInt:=0
        else If S[1]='#' then
        begin
          Delete(S,1,1);
          TInt:=StrToInt(S);
        end
        else
          TInt:=Ord(S[1]);
        If E_SetIntProp(CurComponent,PropStr,TInt) then
          CompProp.PValue:=EditStr.Text;
      end
      else If CompProp.EType=PROP_BOOLTYPE then
      begin
        If E_SetBoolProp(CurComponent,PropStr,ComboEnum.Text='True') then
          CompProp.PValue:=ComboEnum.Text;
      end
      else If CompProp.EType=PROP_INTTYPE then
      begin
        TInt:=StrToInt(EditStr.Text);
        With CompProp do
          if (TInt < MinVal) or (TInt > MaxVal) then
//            raise ECompEditError.CreateResFmt(SOutOfRange, [MinVal,MaxVal]);
            raise ECompEditError.CreateResFmt( 1, [MinVal,MaxVal]);
//              exit; //***
        If E_SetIntProp(CurComponent,PropStr,TInt) then
          CompProp.PValue:=EditStr.Text;
      end
      else If CompProp.EType=PROP_REALTYPE then
      begin
        Tf:=StrToFloat(EditStr.Text);
        If E_SetRealProp(CurComponent,PropStr,Tf) then
          CompProp.PValue:=EditStr.Text;
      end
      else If CompProp.EType IN [PROP_ENUMTYPE,PROP_MODALTYPE] then
      begin
        If E_SetIntProp(CurComponent,PropStr,ComboEnum.ItemIndex) then
          CompProp.PValue:=ComboEnum.Text;
      end
      else If CompProp.EType=PROP_SETTYPE then
      begin
        CompProp.PValue:='[';
        For TInt:=0 to SetEdit.Items.Count-1 do
          If SetEdit.Selected[TInt] then
          begin
            if Length(CompProp.PValue) <> 1 then
              CompProp.PValue:=CompProp.PValue+',';
            CompProp.PValue:=CompProp.PValue+SetEdit.Items.Strings[TInt];
          end;
        CompProp.PValue:=CompProp.PValue+']';
        If NOT E_SetSetStrProp(CurComponent,PropStr,CompProp.PValue) then
          CompProp.PValue:=StringGrid1.Cells[1,CurRow];
      end
      else If CompProp.EType=PROP_COLORTYPE then
      begin
        If E_SetIntProp(CurComponent,PropStr,StringToColor(ComboEnum.Text)) then
          CompProp.PValue:=ComboEnum.Text;
      end
      else If CompProp.EType=PROP_CURSORTYPE then
      begin
        If E_SetIntProp(CurComponent,PropStr,StringToCursor(ComboEnum.Text)) then
          CompProp.PValue:=ComboEnum.Text;
      end
      else If CompProp.EType IN [PROP_DBNAMETYPE,PROP_DBIDXNAMETYPE,
                                 PROP_DBTABNAMETYPE,PROP_DBLOOKUPFIELD] then
      begin
        If E_SetStrProp(CurComponent,PropStr,ComboEnum.Text) then
          CompProp.PValue:=ComboEnum.Text;
      end
      else If CompProp.EType = PROP_CLASSTYPE then
      begin
        If CompProp.SubType=PROP_DATASETSUB then
        begin
          If ComboEnum.Text='' then
            CAddr:=0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线观| 欧美成人一区二区三区片免费| 国产精品久久久久久久久搜平片| 久热成人在线视频| 制服丝袜国产精品| 裸体一区二区三区| 精品国产乱码久久久久久浪潮| 国内一区二区在线| 国产精品久久久久一区二区三区共 | 日本久久精品电影| 亚洲欧美另类图片小说| 在线观看日韩电影| 国内一区二区在线| 久久精品人人爽人人爽| 91视频在线观看免费| 洋洋成人永久网站入口| 色综合久久久久综合体| 亚洲成av人综合在线观看| 精品乱人伦小说| 91在线看国产| 国产成人免费av在线| 天堂蜜桃91精品| 天堂av在线一区| 欧美国产精品专区| 欧美色图12p| 成人午夜私人影院| 毛片基地黄久久久久久天堂| 日韩精品中文字幕一区二区三区| 色伊人久久综合中文字幕| 国产成人精品三级麻豆| 亚洲线精品一区二区三区| 欧美sm美女调教| 欧美久久久久久久久| 日本电影欧美片| 成人av免费在线观看| 福利电影一区二区| 国产一区二区中文字幕| 精品一区二区三区免费播放| 久久se这里有精品| **网站欧美大片在线观看| 亚洲视频一二三| 91视频.com| 99国产精品视频免费观看| 成人av在线看| 99久久精品一区二区| 日韩亚洲国产中文字幕欧美| 欧美午夜片在线看| 久久久夜色精品亚洲| 亚洲国产日产av| 亚洲自拍偷拍九九九| 久草这里只有精品视频| 丁香天五香天堂综合| 欧美日韩国产首页| 26uuu国产日韩综合| 亚洲人成伊人成综合网小说| 图片区小说区国产精品视频| 国产麻豆精品95视频| 欧美色图在线观看| 91麻豆精品视频| 欧美成人性战久久| 石原莉奈在线亚洲二区| 亚洲男人天堂av网| 国产精品99久久久| 欧美日韩在线不卡| 亚洲国产裸拍裸体视频在线观看乱了 | 日本电影欧美片| 国产精品―色哟哟| 老司机免费视频一区二区| 成人av在线资源| 国产精品久久久久永久免费观看| 精品一区二区三区影院在线午夜 | 国产精品性做久久久久久| 7777精品伊人久久久大香线蕉| 亚洲欧洲日韩在线| 国产91丝袜在线播放0| 91精品国产综合久久久久| 中文字幕色av一区二区三区| 亚洲区小说区图片区qvod| 国产麻豆精品视频| 久久久精品综合| 99久久国产综合精品麻豆| 国产精品久久久久永久免费观看| 99re在线视频这里只有精品| 国产精品久久毛片a| 国产999精品久久| 国产欧美一区二区三区沐欲| 国产综合成人久久大片91| 中文字幕成人在线观看| 色婷婷国产精品综合在线观看| 日本欧美一区二区三区| 色久综合一二码| 亚洲成人激情av| 91精选在线观看| 成人小视频在线| 亚洲va韩国va欧美va| 久久新电视剧免费观看| 麻豆国产精品777777在线| 亚洲精品中文在线影院| av在线综合网| 日日嗨av一区二区三区四区| 久久久噜噜噜久久人人看 | 久久中文字幕电影| 高清不卡一区二区| 午夜久久久久久| 一区二区三区日韩精品| 国产视频在线观看一区二区三区| 99精品桃花视频在线观看| 久久国产尿小便嘘嘘| 亚洲综合色噜噜狠狠| 久久久91精品国产一区二区精品 | 日韩欧美高清dvd碟片| 99re8在线精品视频免费播放| 久久成人18免费观看| 亚洲综合在线免费观看| 亚洲欧美激情一区二区| 欧美精彩视频一区二区三区| 国产精品中文字幕一区二区三区| 日韩国产欧美在线观看| 欧美aaaaaa午夜精品| 久久99热99| 国产99精品国产| 成人精品一区二区三区四区| 国产大陆a不卡| 97se亚洲国产综合自在线观| 久久国产精品色| 99久久国产综合精品色伊| 男女性色大片免费观看一区二区 | 91在线播放网址| 国产aⅴ综合色| 欧美一级视频精品观看| 亚洲美女屁股眼交| 精品影视av免费| 91精品在线麻豆| 亚洲国产精品欧美一二99| 国产69精品久久久久777| 欧美日本一区二区在线观看| 亚洲日本va在线观看| 美女在线观看视频一区二区| 91国产免费观看| 亚洲欧美偷拍卡通变态| 成人精品免费看| 精品福利视频一区二区三区| 日产国产欧美视频一区精品| 欧美亚洲国产一区二区三区 | 裸体一区二区三区| 精品国精品国产尤物美女| 韩国精品免费视频| 5月丁香婷婷综合| 亚洲图片欧美视频| 在线观看国产一区二区| 亚洲色图欧美偷拍| 色综合久久中文字幕综合网| 中文字幕电影一区| caoporn国产一区二区| 国产精品久久久久久久岛一牛影视| 精品制服美女久久| 中文字幕精品在线不卡| 国产老女人精品毛片久久| 久久久99精品久久| 一本久道久久综合中文字幕| 国产精品进线69影院| a级精品国产片在线观看| 亚洲欧洲国产日本综合| 色婷婷av一区二区三区gif| 亚洲黄色免费电影| 日韩视频中午一区| 高清在线不卡av| 亚洲国产精品影院| 久久久久亚洲综合| 欧洲一区二区三区免费视频| 免费观看在线色综合| 国产欧美日韩视频一区二区| 色狠狠一区二区| 国产麻豆精品在线| 性感美女久久精品| 国产精品午夜在线观看| 91超碰这里只有精品国产| 99久久婷婷国产综合精品| 天天综合色天天综合| 中文字幕亚洲一区二区av在线| 欧美日韩一区成人| 色素色在线综合| 成人激情av网| 粉嫩av一区二区三区在线播放| 日本美女一区二区三区| 亚洲欧美日韩国产中文在线| 久久综合久久鬼色中文字| 91精品国产乱码久久蜜臀| 在线观看亚洲专区| 91蜜桃网址入口| 色哟哟在线观看一区二区三区| 成人午夜免费av| 久久www免费人成看片高清| 日韩精品三区四区| 日韩精品成人一区二区三区| 日韩制服丝袜av| 美女视频一区二区| 玖玖九九国产精品| 精品一区二区三区在线视频| 久久精品免费观看|