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

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

?? tntdesigneditors_design.pas

?? TNT Components Source
?? PAS
字號:

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntDesignEditors_Design;

{$INCLUDE ..\Source\TntCompilers.inc}

interface

uses
  Classes, Forms, TypInfo, DesignIntf, DesignEditors;

type
  ITntDesigner = IDesigner;

  TTntDesignerSelections = class(TInterfacedObject, IDesignerSelections)
  private
    FList: TList;
    {$IFDEF COMPILER_9_UP}
    function GetDesignObject(Index: Integer): IDesignObject;
    {$ENDIF}
  protected
    function Add(const Item: TPersistent): Integer;
    function Equals(const List: IDesignerSelections): Boolean;
    function Get(Index: Integer): TPersistent;
    function GetCount: Integer;
    property Count: Integer read GetCount;
    property Items[Index: Integer]: TPersistent read Get; default;
  public
    constructor Create; virtual;
    destructor Destroy; override;
    procedure ReplaceSelection(const OldInst, NewInst: TPersistent);
  end;

function GetObjectInspectorForm: TCustomForm;
procedure EditPropertyWithDialog(Component: TPersistent; const PropName: AnsiString; const Designer: ITntDesigner);

implementation

uses
  SysUtils;

{ TTntDesignerSelections }

function TTntDesignerSelections.Add(const Item: TPersistent): Integer;
begin
  Result := FList.Add(Item);
end;

constructor TTntDesignerSelections.Create;
begin
  inherited;
  FList := TList.Create;
end;

destructor TTntDesignerSelections.Destroy;
begin
  FList.Free;
  inherited;
end;

function TTntDesignerSelections.Equals(const List: IDesignerSelections): Boolean;
var
  I: Integer;
begin
  Result := False;
  if List.Count <> Count then Exit;
  for I := 0 to Count - 1 do
  begin
    if Items[I] <> List[I] then Exit;
  end;
  Result := True;
end;

function TTntDesignerSelections.Get(Index: Integer): TPersistent;
begin
  Result := TPersistent(FList[Index]);
end;

function TTntDesignerSelections.GetCount: Integer;
begin
  Result := FList.Count;
end;

{$IFDEF COMPILER_9_UP}
function TTntDesignerSelections.GetDesignObject(Index: Integer): IDesignObject;
begin
  Result := nil; {TODO: Figure out what IDesignerSelections.GetDesignObject is all about.  Must wait for more documentation!}
end;
{$ENDIF}

procedure TTntDesignerSelections.ReplaceSelection(const OldInst, NewInst: TPersistent);
var
  Idx: Integer;
begin
  Idx := FList.IndexOf(OldInst);
  if Idx <> -1 then
    FList[Idx] := NewInst;
end;

{//------------------------------
//  Helpful discovery routines to explore the components and classes inside the IDE...
//
procedure EnumerateComponents(Comp: TComponent);
var
  i: integer;
begin
  for i := Comp.ComponentCount - 1 downto 0 do
    MessageBoxW(0, PWideChar(WideString(Comp.Components[i].Name + ': ' + Comp.Components[i].ClassName)),
      PWideChar(WideString(Comp.Name)), 0);
end;

procedure EnumerateClasses(Comp: TComponent);
var
  AClass: TClass;
begin
  AClass := Comp.ClassType;
  repeat
    MessageBoxW(0, PWideChar(WideString(AClass.ClassName)),
      PWideChar(WideString(Comp.Name)), 0);
    AClass := Aclass.ClassParent;
  until AClass = nil;
end;
//------------------------------}

//------------------------------
function GetIdeMainForm: TCustomForm;
var
  Comp: TComponent;
begin
  Result := nil;
  if Application <> nil then begin
    Comp := Application.FindComponent('AppBuilder');
    if Comp is TCustomForm then
      Result := TCustomForm(Comp);
  end;
end;

function GetObjectInspectorForm: TCustomForm;
var
  Comp: TComponent;
  IdeMainForm: TCustomForm;
begin
  Result := nil;
  IdeMainForm := GetIdeMainForm;
  if IdeMainForm <> nil then begin
    Comp := IdeMainForm.FindComponent('PropertyInspector');
    if Comp is TCustomForm then
      Result := TCustomForm(Comp);
  end;
end;

{ TPropertyEditorWithDialog }
type
  TPropertyEditorWithDialog = class
  private
    FPropName: AnsiString;
    procedure CheckEditProperty(const Prop: IProperty);
    procedure EditProperty(Component: TPersistent; const PropName: AnsiString; const Designer: ITntDesigner);
  end;

procedure TPropertyEditorWithDialog.CheckEditProperty(const Prop: IProperty);
begin
  if Prop.GetName = FPropName then
    Prop.Edit;
end;

procedure TPropertyEditorWithDialog.EditProperty(Component: TPersistent; const PropName: AnsiString; const Designer: ITntDesigner);
var
  Components: IDesignerSelections;
begin
  FPropName := PropName;
  Components := TDesignerSelections.Create;
  Components.Add(Component);
  GetComponentProperties(Components, [tkClass], Designer, CheckEditProperty);
end;

procedure EditPropertyWithDialog(Component: TPersistent; const PropName: AnsiString; const Designer: ITntDesigner);
begin
  with TPropertyEditorWithDialog.Create do
  try
    EditProperty(Component, PropName, Designer);
  finally
    Free;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品国产免费网站| av成人老司机| 欧美日韩免费一区二区三区| 国产精品成人在线观看| 亚洲国产精品久久久久婷婷884 | 艳妇臀荡乳欲伦亚洲一区| 国产麻豆91精品| 成人免费视频在线观看| 99久久99久久精品免费观看| 国产女同互慰高潮91漫画| 成人av在线一区二区三区| 国产精品久久久久精k8| 成人av在线播放网址| 亚洲第一久久影院| 欧美午夜电影一区| 天堂精品中文字幕在线| 26uuu成人网一区二区三区| 韩国视频一区二区| 国产亚洲精久久久久久| 91国模大尺度私拍在线视频| 亚洲国产成人av网| 678五月天丁香亚洲综合网| 国产精品综合一区二区三区| 一区二区中文视频| 欧美日韩在线免费视频| 亚洲色图清纯唯美| 色噜噜狠狠色综合中国| 亚洲一区二区三区爽爽爽爽爽| 91香蕉视频mp4| 麻豆精品一区二区三区| 国产亚洲福利社区一区| 99久久久免费精品国产一区二区| 日韩电影在线免费观看| 久久奇米777| 91麻豆产精品久久久久久 | 精品福利视频一区二区三区| 国产一区二区免费看| 国产欧美一区二区精品仙草咪| 在线观看亚洲专区| 青青草91视频| 日韩av高清在线观看| 91精品国产一区二区三区香蕉 | 国产一区二区看久久| 国产精品美女视频| 欧美老肥妇做.爰bbww视频| 国产美女精品一区二区三区| 亚洲日本电影在线| 日韩一级欧美一级| 国产一区久久久| 亚洲综合激情另类小说区| 欧美不卡视频一区| 国产大陆亚洲精品国产| 亚洲国产一二三| 久久综合久色欧美综合狠狠| 欧美日韩在线电影| 成人污污视频在线观看| 香港成人在线视频| 亚洲色图色小说| 26uuu精品一区二区| 欧美午夜电影网| 国内久久婷婷综合| 麻豆视频观看网址久久| 亚洲人成网站色在线观看| 精品福利一区二区三区免费视频| 欧美人体做爰大胆视频| 不卡一二三区首页| 韩国av一区二区三区| 美女性感视频久久| 亚洲香蕉伊在人在线观| 久久综合资源网| 精品久久久久av影院 | 久久66热偷产精品| 日韩成人一级大片| 亚洲一二三区在线观看| 亚洲摸摸操操av| 国产清纯白嫩初高生在线观看91 | 久久精品99国产国产精| 亚洲午夜国产一区99re久久| 国产精品久久久久一区二区三区共| 欧美日韩国产综合视频在线观看| 欧美日韩中文一区| 91麻豆高清视频| 91在线国产福利| 国产中文字幕一区| 精品一区二区免费视频| 日韩二区三区四区| 亚洲激情图片qvod| 亚洲精选免费视频| 亚洲天堂免费看| 中文字幕永久在线不卡| 国产欧美精品一区二区色综合朱莉| 日韩欧美国产小视频| 欧美日韩精品免费观看视频| 欧美午夜精品久久久| 欧美天堂一区二区三区| 91美女片黄在线| 欧美亚洲愉拍一区二区| 欧美性猛交xxxx乱大交退制版| 91传媒视频在线播放| 色狠狠色狠狠综合| 欧美日韩一区精品| 日韩欧美视频在线| 日韩精品中文字幕在线一区| 日韩欧美高清一区| 中文字幕不卡在线播放| 国产精品久久久久精k8| 亚洲欧美一区二区三区久本道91 | 美女在线视频一区| 日韩专区在线视频| 国产一区二区久久| 丁香婷婷综合网| 成人免费av在线| 欧美性猛片xxxx免费看久爱| 宅男在线国产精品| 久久综合色播五月| 亚洲综合偷拍欧美一区色| 欧美日韩一区二区欧美激情 | 中文字幕一区在线观看视频| 亚洲三级在线免费| 一区二区三区在线观看网站| 亚洲一区二区在线观看视频| 亚洲精品日产精品乱码不卡| 婷婷中文字幕综合| 国模套图日韩精品一区二区 | 久久综合九色综合欧美就去吻| 欧美精品一区二区高清在线观看 | 国产亚洲欧洲一区高清在线观看| 欧美激情一区二区三区全黄| 亚洲免费在线观看视频| 精品亚洲成a人在线观看| 不卡电影一区二区三区| 在线免费观看成人短视频| 精品粉嫩超白一线天av| 亚洲欧美怡红院| 日韩激情一二三区| 99久久99久久久精品齐齐| 在线观看91av| 亚洲国产电影在线观看| 久久国产精品免费| 久久久影院官网| 国产成人av资源| 一本色道久久综合亚洲aⅴ蜜桃| 欧美日韩国产综合草草| 中文字幕欧美三区| 日韩vs国产vs欧美| 不卡区在线中文字幕| 欧美精品xxxxbbbb| 国产欧美日韩视频在线观看| 亚洲电影视频在线| 国产乱码精品一区二区三区忘忧草| 久久在线观看免费| 亚洲色图制服诱惑| 日本少妇一区二区| 欧美精品日韩综合在线| 中文字幕日韩欧美一区二区三区| 亚洲综合色区另类av| av成人动漫在线观看| 精品日产卡一卡二卡麻豆| 一区二区三区国产精品| 色综合av在线| 国产精品久久久久久久久动漫| 六月丁香婷婷色狠狠久久| 欧美日韩免费一区二区三区视频| 国产精品麻豆网站| 国产黄色精品网站| 日韩欧美国产一区二区在线播放| 亚洲午夜激情网站| av日韩在线网站| 国产精品久久久久久久久免费相片| 国产原创一区二区| 2014亚洲片线观看视频免费| 精品一区二区免费视频| 亚洲精品一线二线三线| 国产乱码精品一区二区三区av| 久久久99精品久久| 国产成人a级片| 国产女同性恋一区二区| 成人一二三区视频| 国产精品久久久久久久久快鸭| 成人动漫一区二区在线| 国产精品久久久久aaaa| 日本高清不卡在线观看| 亚洲成av人在线观看| 欧美一二三区在线| 久久99精品久久久久久国产越南| 精品久久人人做人人爽| 国产suv一区二区三区88区| 亚洲桃色在线一区| 欧美三日本三级三级在线播放| 美女任你摸久久 | 麻豆专区一区二区三区四区五区| 欧美成人精品3d动漫h| 日韩一区有码在线| 成人avav在线| 亚洲一区二区三区中文字幕 | 99久久99久久综合| 亚洲丶国产丶欧美一区二区三区| 777午夜精品免费视频| 国产精品91xxx| 亚洲精品免费在线播放|