亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91国产精品成人| 夜夜揉揉日日人人青青一国产精品 | 日韩和的一区二区| 国产欧美精品一区二区色综合| 日韩高清在线一区| 国产三级一区二区| 成人黄色国产精品网站大全在线免费观看 | 日韩成人精品在线观看| 一区二区三区四区在线| 午夜精品一区二区三区电影天堂| 日韩欧美一级精品久久| 国产福利一区二区| 午夜视频一区二区| 免费观看一级特黄欧美大片| 亚洲欧美视频在线观看视频| 国产清纯白嫩初高生在线观看91 | 91亚洲精品久久久蜜桃网站 | 欧美三级资源在线| 亚洲高清免费在线| 日韩一级免费一区| 国产激情一区二区三区四区| 欧美国产日产图区| 911精品国产一区二区在线| 九九九精品视频| 亚洲人成网站影音先锋播放| 欧美人狂配大交3d怪物一区| 国产在线精品一区二区不卡了 | 国产综合一区二区| 亚洲午夜在线观看视频在线| 欧美大片在线观看一区| 97se亚洲国产综合自在线观| 免费成人在线影院| 视频一区中文字幕国产| 欧美激情一区二区三区不卡| 欧美日韩成人一区二区| 91在线精品一区二区| 国产乱码精品一区二区三区忘忧草 | 老司机精品视频线观看86| 国产精品日产欧美久久久久| 日韩欧美黄色影院| 欧美日韩一区精品| 欧美日本高清视频在线观看| www.激情成人| 日韩精彩视频在线观看| 亚洲激情自拍视频| 亚洲观看高清完整版在线观看 | 久久久久9999亚洲精品| 欧美一级高清片| 日韩三级精品电影久久久| 欧美天堂一区二区三区| 精品视频一区二区三区免费| fc2成人免费人成在线观看播放| 国产成人av电影在线观看| 国产精品一区在线观看乱码| 精品一区二区国语对白| 精品在线免费观看| 成人午夜伦理影院| 色视频一区二区| 欧美老女人第四色| 国产午夜精品一区二区| 亚洲蜜臀av乱码久久精品| 最好看的中文字幕久久| 亚洲国产精品久久一线不卡| 日韩高清一区在线| 激情五月婷婷综合网| 成人激情综合网站| 日韩欧美综合一区| 国产在线一区二区综合免费视频| 欧美精品一卡两卡| 91亚洲国产成人精品一区二三| 2023国产精华国产精品| 国产三级一区二区三区| 性感美女极品91精品| 激情成人综合网| 久久国产福利国产秒拍| 亚洲国产精品久久人人爱| 欧美日韩日日摸| 欧美一区二区三区思思人| 久久九九99视频| 亚洲成av人片一区二区三区| 免费精品视频最新在线| 91视频com| 国产精品久久久一本精品 | 亚洲成人福利片| 国产成人免费在线视频| 日韩一级片在线播放| 亚洲一区二区四区蜜桃| 粗大黑人巨茎大战欧美成人| 亚洲欧洲在线观看av| 亚洲国产精品传媒在线观看| 亚洲欧美日韩国产中文在线| 奇米影视一区二区三区小说| 18成人在线视频| 日韩激情中文字幕| 久久久久久久国产精品影院| 久久超碰97中文字幕| 久久这里只有精品首页| 91毛片在线观看| 高潮精品一区videoshd| 国产精品99久久久久| 暴力调教一区二区三区| 亚洲精品在线电影| 一区二区三区四区激情| 亚洲午夜国产一区99re久久| 成人欧美一区二区三区小说| 日韩极品在线观看| 91丨九色丨黑人外教| 国产欧美精品一区aⅴ影院| 亚洲免费在线观看视频| 日韩av一级片| 九九九精品视频| 国产亚洲一区二区三区在线观看 | 椎名由奈av一区二区三区| 欧美影院一区二区三区| 成人av在线资源网| 欧美视频在线一区二区三区| 欧美一区二区在线观看| 国产精品第五页| 国产精品欧美一区喷水| 亚洲v日本v欧美v久久精品| 精品一区二区影视| 久久久午夜精品| 一本色道亚洲精品aⅴ| 亚洲国产wwwccc36天堂| 欧美成人bangbros| 色婷婷久久久亚洲一区二区三区| 一区二区在线观看av| 久久免费视频色| 午夜国产不卡在线观看视频| 在线视频综合导航| 国产毛片精品视频| 日韩国产欧美在线观看| 中文字幕日韩一区| 欧美在线制服丝袜| 亚洲精品一区二区三区福利| 亚洲chinese男男1069| 色综合中文字幕国产 | 777色狠狠一区二区三区| 欧美亚洲综合另类| 亚洲国产中文字幕| 91啪在线观看| 欧洲人成人精品| 日韩欧美另类在线| 中文子幕无线码一区tr| 中文字幕日韩一区二区| 午夜精品福利一区二区三区av| 免费亚洲电影在线| 丁香婷婷综合色啪| 一本色道久久综合亚洲精品按摩| 欧美三级电影在线看| 欧美不卡一区二区| 亚洲激情图片小说视频| 欧美在线free| 国产a区久久久| 欧美日韩激情在线| 亚洲国产高清aⅴ视频| 亚洲午夜电影在线| 国产丶欧美丶日本不卡视频| 一本色道亚洲精品aⅴ| 国产一区视频网站| 在线观看日韩毛片| 国产亚洲女人久久久久毛片| 亚洲综合成人在线视频| 国产精品自在欧美一区| 欧美日韩日日骚| 综合色中文字幕| 国产在线不卡视频| 欧美日韩成人综合| 亚洲精品高清在线| 国产成人免费视频网站| 欧美一区在线视频| 亚洲国产三级在线| av动漫一区二区| 久久久久国产精品免费免费搜索| gogogo免费视频观看亚洲一| 粉嫩av一区二区三区粉嫩| 69堂成人精品免费视频| ...xxx性欧美| 福利电影一区二区| 日韩精品一区二区三区视频在线观看 | 制服视频三区第一页精品| 国产精品护士白丝一区av| 免费人成精品欧美精品| 欧美日韩卡一卡二| 亚洲精品国产一区二区三区四区在线 | 欧美大片拔萝卜| 日韩影视精彩在线| 欧美视频一区在线观看| 亚洲精品中文在线| 91蜜桃免费观看视频| 中文av字幕一区| 成人精品免费看| 亚洲国产成人私人影院tom| 激情五月婷婷综合| 中文一区一区三区高中清不卡| 日本成人中文字幕| 欧美一区二区在线视频| 免费精品视频最新在线| 日韩午夜激情免费电影| 亚洲第一二三四区|