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

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

?? e_cmped.pas

?? 一個關于delphi控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
          else
          begin
            TBool:=False;
            For I:=0 to FComponent.ComponentCount-1 do
              If FComponent.Components[I] IS TTable then
               If CompareText(ComboEnum.Text,(TTable(FComponent.Components[I]).Name))=0 then
               begin
                 TBool:=True;
                 CAddr:=Longint(FComponent.Components[I]);
                 Break;
               end;
            If NOT TBool then With Session do  for I:= 0 to DatabaseCount - 1 do
              With Databases[I] do
                For J:=0 to DataSetCount-1 do
                If CompareText(ComboEnum.Text,DataSets[I].Name)=0 then
               begin
                 CAddr:=Longint(DataSets[I]);
                 Break;
               end;
            If E_SetIntProp(CurComponent,PropList.Strings[CurRow],CAddr) then
            begin
              CompProp.PValue:=ComboEnum.Text;
              CompProp.ClassAddr:=CAddr;
            end;
          end;
        end
        else If CompProp.SubType=PROP_DATASOURCESUB then
        begin
          TBool:=True;
          CAddr:=0;
          If ComboEnum.Text<>'' then
          begin
            For I:=0 to FComponent.ComponentCount-1 do
              If FComponent.Components[I] IS TdataSource then
               If CompareText(ComboEnum.Text,(TdataSource(FComponent.Components[I]).Name))=0 then
               begin
                 CAddr:=Longint(FComponent.Components[I]);
                 Break;
               end;
            TBool:=E_SetIntProp(CurComponent,PropList.Strings[CurRow],CAddr);
          end;
          If TBool then
          begin
            CompProp.PValue:=ComboEnum.Text;
            CompProp.ClassAddr:=CAddr;
          end;
        end;
      end;
      StringGrid1.Cells[1,CurRow]:=CompProp.PValue;
    end;
  end;
end;
Procedure TCompEditForm.SetStatusBar(Sender : TObject;
                                     ARow   : Integer);
begin
  If Assigned(PropList) then
    If Sender IS TStringGrid then
      If TEProperty(PropList.Objects[ARow]).EType=PROP_NOTYPE then
        StatusBar1.SimpleText:='This Property Cannot Be Edited'
      else
        StatusBar1.SimpleText:='Double Click/Enter To Edit Property'
    else
      StatusBar1.SimpleText:='Escape To Cancel'
  else
    StatusBar1.SimpleText:='';
end;
procedure TCompEditForm.StringGrid1SelectCell(Sender        : TObject;
                                              Col           ,
                                              Row           : Longint;
                                              var CanSelect : Boolean);
begin
  If Col=1 then
  begin
    CanSelect:=True;
    SetStatusBar(StringGrid1,Row);
  end
  else
    CanSelect:=False;
end;
Procedure TCompEditForm.EGetStrs(Const s : String);
begin
  ComboEnum.Items.Add(S);
end;
procedure TCompEditForm.SetEditBounds(AControl : TWinControl);
Var
    Rect : TRect;
begin
  If AControl<>Nil then With AControl do
  begin
    CompProp:=PropList.Objects[StringGrid1.Row] AS TEProperty;
    Rect := StringGrid1.CellRect(1,StringGrid1.Row);
    If CompProp.EType = PROP_SETTYPE then
    begin
      Left:=0;
      Top:=Rect.Top+StringGrid1.Top+StringGrid1.DefaultRowHeight;
      Height:=StringGrid1.DefaultRowHeight*3;
      Width:=StringGrid1.Width;
    end
    else
    begin
      Left:=Rect.Left+1;
      Top:=Rect.Top+StringGrid1.Top;
      Height:=StringGrid1.DefaultRowHeight;
      Width:=StringGrid1.DefaultColWidth;
    end;
    StatusBar1.SimpleText:='';
    Visible:=True;
    ActiveControl:=AControl;
    SetStatusBar(AControl,0);
  end
end;
procedure TCompEditForm.EditProperty(CurCol ,
                                     CurRow : LongInt);
Var
    DoIt       : Boolean;
    CurEdit    : TWinControl;
    I,J        : Integer;
    S          ,
    Ts         : String;
    FontDialog : TFontDialog;
    AList      : TStrings;
    TBool      : Boolean;
    CAddr      : Longint;
                Function GetDataBaseName : Boolean;
                begin
                  Result:=False;
                  If StringGrid1.RowCount>0 then
                  begin
                    I:=0;
                    While (I<StringGrid1.RowCount) AND (UpperCase(StringGrid1.Cells[0,I])<>'DATABASENAME') do
                      Inc(I);
                    If I<StringGrid1.RowCount then
                    begin
                      S:=StringGrid1.Cells[1,I];
                      Result:=S<>'';
                    end;
                  end;
                end;
                Function GetDataBasePath : Boolean;
                begin
                  Result:=False;
                  AList:=TStringList.Create;
                  Session.GetAliasParams(S,AList);
                  S:='';
                  I:=0;
                  While I < AList.Count do
                    If Pos('PATH',UpperCase(Alist.Strings[I]))>0 then
                    begin
                      S:=AList.Strings[I];
                      Delete(S,1,Pos('=',S));
                      Result:=True;
                      Break;
                    end
                    else
                      Inc(I);
                    AList.Free;
                end;
                Function GetTableName : Boolean;
                begin
                  Result:=False;
                  S:='';
                  If StringGrid1.RowCount>0 then
                  begin
                    I:=0;
                    While (I<StringGrid1.RowCount) AND (UpperCase(StringGrid1.Cells[0,I])<>'TABLENAME') do
                      Inc(I);
                    If I<StringGrid1.RowCount then
                      S:=StringGrid1.Cells[1,I];
                    Result:=S<>'';
                  end;
                end;
                Function GetLookUpSource : Boolean;
                begin
                  Result:=False;
                  CAddr:=0;
                  If StringGrid1.RowCount>0 then
                  begin
                    I:=0;
                    While (I<StringGrid1.RowCount) AND (UpperCase(StringGrid1.Cells[0,I])<>'LOOKUPSOURCE') do
                      Inc(I);
                    If I<StringGrid1.RowCount then
                    begin
                      S:=StringGrid1.Cells[1,I];
                      If S<>'' then
                        CAddr:=LongInt(TDataSource(TeProperty(PropList.Objects[I]).ClassAddr).DataSet);
                    end;
                    Result:=CAddr>0;
                  end;
                end;
begin
  If (PropList=Nil) OR (CurCol<>1) then
    Exit;
  CompProp:=PropList.Objects[CurRow] AS TEProperty;
  If CompProp.EType IN [PROP_STRTYPE,PROP_INTTYPE,PROP_REALTYPE,PROP_CHARTYPE] then
  begin
    EditStr.MaxLength:=CompProp.MaxChars;
    EditStr.Text:=CompProp.PValue;
    CurEdit:=EditStr;
  end
  else If CompProp.EType IN [PROP_BOOLTYPE,PROP_ENUMTYPE,PROP_COLORTYPE,PROP_CURSORTYPE,PROP_MODALTYPE] then
  begin
    ComboEnum.Items.Clear;
    CurEdit:=ComboEnum;
    Case CompProp.EType of
      PROP_BOOLTYPE   ,
      PROP_ENUMTYPE   : If NOT E_GetEnumList(CompProp,ComboEnum.Items) then
                          CurEdit:=Nil;
      PROP_COLORTYPE  : GetColorValues(EGetStrs);
      PROP_CURSORTYPE : GetCursorValues(EGetStrs);
      PROP_MODALTYPE  : For I:=MrNone to MrNo do
                          ComboEnum.Items.Add(MrArray[I]);
    else
      CurEdit:=Nil;
    end;
  end
  else If CompProp.EType = PROP_SETTYPE then
  begin
    If E_GetEnumList(CompProp,SetEdit.Items) then
    begin
      S:=StripAllChr(StripAllChr(StringGrid1.Cells[1,CurRow],'['),']');
      While S<>'' do
      begin
        I:=Pos(',',S);
        If I=0 then
          I:=Succ(Length(S));
        Ts:=Copy(S,1,Pred(I));
        Delete(S,1,I);
        I:=SetEdit.Items.IndexOf(Ts);
        If I>-1 then
          SetEdit.Selected[I]:=True;
      end;
      CurEdit:=SetEdit;
    end;
  end
  else If CompProp.EType IN [PROP_DBIDXNAMETYPE,PROP_DBTABNAMETYPE,
                            PROP_DBNAMETYPE,PROP_DBLOOKUPFIELD] then
  begin
    ComboEnum.Style:=csDropDown;
    If CompProp.EType=PROP_DBNAMETYPE then
      Session.GetDataBaseNames(ComboEnum.Items)
    else If CompProp.EType=PROP_DBIDXNAMETYPE then
    begin
      If GetTableName AND GetDataBaseName then
        If E_GetBoolProp(CurComponent,'Active',TBool) then
        begin
          If NOT TBool then
            If E_SetBoolProp(CurComponent,'Active',True) then
            begin
              Try
                 TTable(CurComponent).IndexDefs.Update;
                 For I := 0 to TTable(CurComponent).IndexDefs.Count - 1 do
                    ComboEnum.Items.Add(TTable(CurComponent).IndexDefs.Items[I].Fields);
              Finally
                 If NOT TBool then
                   E_SetBoolProp(CurComponent,'Active',False);
              end;
            end;
        end;
    end
    else If CompProp.EType=PROP_DBTABNAMETYPE then
    begin
      If GetDataBaseName AND GetDataBasePath then
        GetFileList(S,'*.DB;*.DBF',ComboEnum.Items);
    end
    else If CompProp.EType=PROP_DBLOOKUPFIELD then
    begin
      If GetLookupSource then
      begin
        TBool:=TTable(CAddr).Active;
        If NOT TBool then
          TTable(CAddr).Active:=True;
        For I := 0 to TTable(CAddr).FieldDefs.Count - 1 do
            ComboEnum.Items.Add(TTAble(CAddr).FieldDefs.Items[I].Name);
        If NOT TBool then
          TTable(CAddr).Active:=False;
      end;
    end;
    CurEdit:=ComboEnum;
  end
  else If CompProp.EType=PROP_CLASSTYPE then
  begin
    If CompProp.SubType=PROP_DATASETSUB then
    begin
      ComboEnum.Style:=csDropDown;
      With Session do  for I:= 0 to DatabaseCount - 1 do
        With Databases[I] do
          For J:=0 to DataSetCount-1 do
            If ComboEnum.Items.IndexOf(Datasets[I].Name)<0 then
              ComboEnum.Items.Add(DataSets[I].Name);
      For I:=0 to FComponent.ComponentCount-1 do
         If FComponent.Components[I] IS TTable then
           If ComboEnum.Items.IndexOf(TTable(FComponent.Components[I]).Name)<0 then
             ComboEnum.Items.Add(TTable(FComponent.Components[I]).Name);
      CurEdit:=ComboEnum;
    end
    else If CompProp.SubType=PROP_DATASOURCESUB then
    begin
      ComboEnum.Style:=csDropDown;
      For I:=0 to FComponent.ComponentCount-1 do
         If FComponent.Components[I] IS TDataSource then
           If ComboEnum.Items.IndexOf(TDataSource(FComponent.Components[I]).Name)<0 then
             ComboEnum.Items.Add(TDataSource(FComponent.Components[I]).Name);
      CurEdit:=ComboEnum;
    end;
  end;
  If CurEdit<>Nil then
  begin
    If CurEdit=ComboEnum then
    begin
      ComboEnum.Text:=CompProp.PValue;
      ComboEnum.ItemIndex:=ComboEnum.Items.IndexOf(CompProp.PValue);
    end;
    SetEditBounds(CurEdit);
  end
  else If CompProp.EType=PROP_CLASSTYPE then
  begin
    Try
      If CompProp.SubType=PROP_FONTSUB then
      begin
        FontDialog := TFontDialog.Create(Application);
        try
          FontDialog.Font := TFont(CompProp.ClassAddr);
          FontDialog.Options := FontDialog.Options + [fdForceFontExist];
          if FontDialog.Execute then
            If E_SetIntProp(CurComponent,PropList.Strings[CurRow],LongInt(FontDialog.Font)) then
              CompProp.PValue:=FontDialog.Font.Name;
        finally
          FontDialog.Free;
        end;
      end
      else If CompProp.SubType=PROP_ICONSUB then
      begin
        ImageForm.IconsOnly;
        ImageForm.Image1.Picture.Icon.Assign(TIcon(CompProp.ClassAddr));
        If ImageForm.ShowModal=mrOk then
          TIcon(CompProp.ClassAddr).Assign(ImageForm.Image1.Picture.Icon);
      end
      else If CompProp.SubType=PROP_BMPSUB then
      begin
        DoIt:=UpperCase(StringGrid1.Cells[0,CurRow])='GLYPH';
        ImageForm.BmpsOnly(DoIt);
        ImageForm.Image1.Picture.BitMap.Assign(TBitMap(CompProp.ClassAddr));
        If ImageForm.ShowModal=mrOk then
          TBitMap(CompProp.ClassAddr).Assign(ImageForm.Image1.Picture.BitMap);
        If DoIt then
        begin
          For I := 0 To StringGrid1.RowCount-1 do
            If UpperCase(StringGrid1.Cells[0,I])='NUMGLYPHS' then
            begin
              If E_SetIntProp(CurComponent,StringGrid1.Cells[0,I],StrToInt(ImageForm.UpDownEdit.Text)) then
              begin
                With PropList.Objects[I] AS TEProperty do
                begin
                  PValue:=ImageForm.UpdownEdit.Text;
                  StringGrid1.Cells[0,I]:=PValue;
                end;
              end;
              Break;
            end;
        end;
      end
      else If CompProp.SubType=PROP_TSTRSUB then
      begin
        SedForm.StrList.Lines.Assign(TStrings(CompProp.ClassAddr));
        If (SedForm.ShowModal=mrOk) then
          TStrings(CompProp.ClassAddr).Assign(SedForm.StrList.Lines);
      end
      else If Assigned(TComponent(CompProp.ClassAddr)) then
      begin
        E_GetStrProp(CurComponent,'Name',ts);
        If ts<>'' then
          ts:=ts+'.';
        ts:=ts+StringGrid1.Cells[0,CurRow];
        EditAComponent(TComponent(CompProp.ClassAddr),ts,True);
      end;
      StringGrid1.Cells[1,CurRow]:=CompProp.PValue;
    Finally
    end;
  end;
end;
procedure TCompEditForm.StringGrid1DblClick(Sender: TObject);
Var
    CurCol     : LongInt;
    CurRow     : LongInt;
    MousePoint : TPoint;
begin             {THIS WAS ADDED DUE TO A BUG FOUND BY Wm David Parker}
  GetCursorPos(MousePoint);
  MousePoint:=StringGrid1.ScreenToClient(MousePoint);
  StringGrid1.MouseToCell(MousePoint.X,MousePoint.Y,CurCol,CurRow);
  EditProperty(CurCol,CurRow);
end;

procedure TCompEditForm.ClearEdit(Sender: TObject);
begin
  E_SetBoolProp(TComponent(Sender),'Visible',False);
  ActiveControl:=StringGrid1;
  If Sender=ComboEnum then
  begin
    ComboEnum.Items.Clear;
    ComboEnum.Style:=csDropDownList;
  end;
  SetStatusBar(StringGrid1,StringGrid1.Row);
end;
procedure TCompEditForm.FixUpOnExit(Sender: TObject);
Var
    S         : String;
    IsVisible : Boolean;
begin
  If NOT E_GetBoolProp(TComponent(Sender),'Visible',IsVisible) then
    IsVisible:=False;
  If IsVisible AND (PropList<>Nil) then
  begin
    CompProp:=PropList.Objects[StringGrid1.Row] AS TEProperty;
    If CompProp.EType=PROP_SETTYPE then
      S:=''
    else If NOT E_GetStrProp(TComponent(Sender),'Text',S) then
      S:=StringGrid1.Cells[1,StringGrid1.Row];
    Try
      If (S<>StringGrid1.Cells[1,StringGrid1.Row]) then
        DoLastControl;
    Finally
      ClearEdit(Sender);
    end;
  end
  else
    ClearEdit(Sender);
end;

procedure TCompEditForm.EditStrKeyPress(Sender: TObject; var Key: Char);
begin
  If StringGrid1.Row>=PropList.Count then
    Exit;
  CompProp:=PropList.Objects[StringGrid1.Row] AS TEProperty;
  Case CompProp.EType Of
    PROP_CHARTYPE : If Key IN ['0'..'9'] then
                      If Pos('#',EditStr.Text)=0 then
                        Key:=#0;
    PROP_INTTYPE  : If (Key='-') AND (CompProp.MinVal>-1) then
                      Key:=#0
                    else If NOT (Key IN ['-','0'..'9']) then
                      Key:=#0;
    PROP_REALTYPE  : If (Key='.') AND (EditStr.Text='') then
                      Key:=#0
                    else If NOT (Key IN ['-','.','0'..'9']) then
                      Key:=#0;
  end;
end;



procedure TCompEditForm.EditkeyDown(Sender: TObject; var Key: Word;
                                    Shift: TShiftState);
Var
     ARow : Integer;
begin
  If Key=VK_ESCAPE then
  begin          {Suggested by Wm David Parker to allow for cancel of edit}
    E_SetBoolProp(TComponent(Sender),'Visible',False);
    Key:=0;
  end
  else If Key IN[VK_UP,VK_DOWN] then
  begin
    If (Sender = ComboEnum) AND (ComboEnum.DroppedDown) then
      Exit;
    With StringGrid1 do
    begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三区免费完整视频在线观看| 国产成人亚洲精品狼色在线| 久久影视一区二区| 成人自拍视频在线观看| 亚洲另类在线制服丝袜| 日韩美女在线视频| 丰满亚洲少妇av| 亚洲一区二区欧美激情| 精品国产电影一区二区| 欧美日韩一卡二卡三卡| 粉嫩蜜臀av国产精品网站| 亚洲国产综合91精品麻豆| 精品少妇一区二区三区在线视频| 91在线码无精品| 国产九色sp调教91| 亚洲一区免费观看| 欧美国产日韩在线观看| 日韩一区二区三区免费观看| 日本道色综合久久| 国产剧情在线观看一区二区| 日韩精品乱码免费| 亚洲午夜久久久久久久久电影网| 久久综合色8888| 欧美欧美午夜aⅴ在线观看| 在线一区二区三区做爰视频网站| 国产一区二区三区久久久 | 五月天欧美精品| 国产精品狼人久久影院观看方式| 日韩三级在线观看| 欧美一区二区视频免费观看| 91蝌蚪porny九色| 国产福利不卡视频| 国产乱码精品一区二区三区五月婷| 五月天激情综合网| 国产精品毛片高清在线完整版| 久久五月婷婷丁香社区| 7777精品伊人久久久大香线蕉 | 一本大道久久a久久精品综合| 国产一区不卡视频| 午夜成人免费视频| 亚洲一区二区三区四区五区中文| 亚洲欧洲成人自拍| 亚洲精品中文字幕乱码三区| 日韩理论片一区二区| 久久久久久久久97黄色工厂| 国产网红主播福利一区二区| 精品国产1区二区| 337p亚洲精品色噜噜| 欧美男生操女生| 欧美日韩一二三| 制服丝袜在线91| 欧美一区二区三区四区视频| 在线观看视频一区二区| 欧美日韩成人综合| 欧美三级电影网| 欧美日韩国产另类一区| 日韩欧美电影在线| 2023国产精品自拍| 91精品国产综合久久久久久久| 欧美电视剧在线看免费| 日韩一卡二卡三卡四卡| 69av一区二区三区| 精品久久99ma| 久久久天堂av| 国产精品毛片高清在线完整版| 国产精品国产自产拍高清av王其| 中文字幕亚洲区| 亚洲一区在线观看视频| 日韩成人免费看| 国产一区二区在线免费观看| 丁香五精品蜜臀久久久久99网站| 欧美理论片在线| 日韩一级完整毛片| 国产精品久久久久一区二区三区共| 国产精品欧美经典| 亚洲综合在线视频| 激情亚洲综合在线| www.亚洲激情.com| 91丨九色丨国产丨porny| 欧美人牲a欧美精品| 欧美va亚洲va在线观看蝴蝶网| 欧亚一区二区三区| 精品国产不卡一区二区三区| 国产精品私房写真福利视频| 中文字幕国产精品一区二区| 亚洲国产精品一区二区www在线| 亚洲一区二区免费视频| 国产一区美女在线| 色偷偷成人一区二区三区91| 欧美日韩一区在线| 中文字幕欧美日本乱码一线二线| 亚洲精品福利视频网站| 日韩精品亚洲专区| 91丨porny丨中文| 这里只有精品视频在线观看| 国产精品系列在线| 亚洲成人免费视| 成人污视频在线观看| 91精品国产麻豆| 国产精品国产馆在线真实露脸 | 99精品视频中文字幕| 欧美电视剧免费观看| 亚洲少妇30p| 蜜桃视频第一区免费观看| 色综合中文字幕国产 | 亚洲一区二区精品视频| 青青草伊人久久| 在线视频一区二区三区| 久久亚洲捆绑美女| 亚洲精品国产无套在线观| 精品剧情在线观看| 自拍视频在线观看一区二区| 亚洲五月六月丁香激情| 从欧美一区二区三区| 欧美日韩免费观看一区二区三区| 欧洲另类一二三四区| 中文成人综合网| 蜜臀av性久久久久蜜臀av麻豆| 在线观看日韩毛片| 国产色一区二区| 奇米777欧美一区二区| 欧美性大战久久久久久久蜜臀| 国产亚洲一区二区在线观看| 午夜av一区二区三区| 欧美亚洲禁片免费| 国产精品理论片| 国产在线播放一区三区四| 这里只有精品99re| 亚洲与欧洲av电影| 一本大道av伊人久久综合| 国产亚洲精品aa午夜观看| 香蕉久久夜色精品国产使用方法 | 91色|porny| 最新国产の精品合集bt伙计| 国产剧情一区在线| 欧美成人a视频| 国产一区二区在线视频| 日韩欧美中文字幕精品| 亚洲福利一区二区三区| 在线观看日韩国产| 亚洲色图一区二区三区| 一本久道久久综合中文字幕 | 亚洲精品视频在线观看免费| 国产成人精品免费| 国产婷婷色一区二区三区四区| 另类专区欧美蜜桃臀第一页| 91麻豆精品国产自产在线观看一区 | ...中文天堂在线一区| 国产成人精品免费在线| 国产精品亲子乱子伦xxxx裸| 成人黄色大片在线观看| 中文一区二区在线观看| 91视频免费看| 一区二区三区精品久久久| 91色乱码一区二区三区| 亚洲免费高清视频在线| 91久久国产综合久久| 亚洲综合在线观看视频| 精品污污网站免费看| 日韩精品1区2区3区| 日韩午夜在线观看| 激情小说欧美图片| 日韩欧美中文一区二区| 国产精品综合一区二区三区| 久久久高清一区二区三区| 久久99精品一区二区三区三区| 欧美国产日韩在线观看| 99热99精品| 日日夜夜精品免费视频| 日韩欧美亚洲国产另类| 国产一区二区成人久久免费影院 | 成人丝袜高跟foot| 亚洲天堂免费看| 精品视频一区三区九区| 国内外精品视频| 久久精品欧美一区二区三区麻豆| 成人白浆超碰人人人人| 亚洲成人av在线电影| 日韩一卡二卡三卡四卡| 狠狠久久亚洲欧美| 亚洲一二三区在线观看| 日韩欧美成人激情| 国产精品白丝jk黑袜喷水| 一区二区三区美女视频| 欧美一区二区三区的| 亚洲午夜三级在线| 欧美成人性福生活免费看| 国产成人在线免费| 日韩毛片一二三区| 欧美一区二区三区在线观看| 国产一区在线视频| 午夜视频在线观看一区二区| 久久蜜桃av一区精品变态类天堂| 成人h版在线观看| 久久99精品久久久| 亚洲欧美另类在线| 久久综合狠狠综合久久综合88| 欧美三级电影网| 91在线视频免费观看| 国产成人在线视频网站|