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

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

?? tntdesigneditors_design.pas

?? Delphi知道現在也沒有提供Unicode支持
?? 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在线| 国产精品黄色在线观看| 亚洲精品一区在线观看| 精品处破学生在线二十三| 日韩亚洲欧美一区| 欧美成人女星排名| 亚洲精品一区二区精华| 久久久久高清精品| 国产欧美日韩精品在线| 国产精品日日摸夜夜摸av| 中文字幕五月欧美| 亚洲一级片在线观看| 视频一区中文字幕| 韩国在线一区二区| 91一区在线观看| 欧美三级韩国三级日本三斤| 欧美精品电影在线播放| 欧美va天堂va视频va在线| 国产目拍亚洲精品99久久精品| 日本一区二区三区四区| 一区二区不卡在线播放 | 亚洲最快最全在线视频| 亚洲精品精品亚洲| 日韩和欧美一区二区三区| 美女任你摸久久| 粉嫩在线一区二区三区视频| 色伊人久久综合中文字幕| 欧美一区二区三区在线视频| 欧美tickling挠脚心丨vk| 1区2区3区精品视频| 婷婷中文字幕综合| 国产一区二区三区免费观看| 99久久免费精品| 欧美老女人在线| 欧美国产成人在线| 午夜国产精品影院在线观看| 风间由美中文字幕在线看视频国产欧美| 99热国产精品| 日韩美女视频在线| 综合电影一区二区三区| 看电视剧不卡顿的网站| 91毛片在线观看| 国产三级欧美三级| 久久精品国产99| 欧美色老头old∨ideo| 国产精品久久午夜夜伦鲁鲁| 九九**精品视频免费播放| 欧美艳星brazzers| 亚洲婷婷在线视频| 粉嫩久久99精品久久久久久夜| 欧美一区二区美女| 亚洲大片在线观看| 91成人网在线| 中文字幕制服丝袜成人av| 韩国精品主播一区二区在线观看| 欧美丝袜丝交足nylons图片| 国产精品拍天天在线| 精品一区二区三区在线视频| 欧美日韩免费高清一区色橹橹 | 色综合色综合色综合 | 亚洲自拍都市欧美小说| av电影天堂一区二区在线观看| 欧美成人福利视频| 免播放器亚洲一区| 3d成人h动漫网站入口| 亚洲一区二区在线播放相泽| 色呦呦国产精品| 一区二区三区在线免费观看| 97久久久精品综合88久久| 国产欧美在线观看一区| 国产激情一区二区三区桃花岛亚洲| 日韩亚洲国产中文字幕欧美| 美女mm1313爽爽久久久蜜臀| 欧美一区二区三区小说| 蜜桃在线一区二区三区| 欧美变态口味重另类| 久久国内精品自在自线400部| 日韩一级二级三级精品视频| 日韩av一区二区三区| 日韩欧美一级特黄在线播放| 精久久久久久久久久久| 精品福利av导航| 成人app软件下载大全免费| 亚洲欧美日韩久久| 欧美亚洲国产一区在线观看网站| 亚洲成av人在线观看| 日韩午夜精品视频| 国产伦精品一区二区三区在线观看| 精品999久久久| 成人污污视频在线观看| 一区二区三区在线免费视频| 9191成人精品久久| 国产成人亚洲综合a∨猫咪| 一区在线中文字幕| 欧美美女激情18p| 国产美女在线精品| 日韩激情在线观看| 久久中文娱乐网| 97se亚洲国产综合在线| 日韩av一二三| 国产精品国产a| 在线综合视频播放| 不卡电影一区二区三区| 午夜精品一区二区三区三上悠亚| 精品久久久久久亚洲综合网| 成人自拍视频在线| 免费高清成人在线| 亚洲欧美区自拍先锋| 日韩精品一区二区三区四区视频| 成人激情午夜影院| 三级久久三级久久| 国产精品高潮呻吟久久| 日韩视频在线永久播放| 91在线视频观看| 久久99精品国产麻豆不卡| 亚洲三级视频在线观看| 日韩欧美www| 欧美性生活一区| 国产成人精品午夜视频免费| 亚洲超碰精品一区二区| 国产视频视频一区| 日韩女优电影在线观看| 91亚洲午夜精品久久久久久| 久草精品在线观看| 天天综合天天综合色| 亚洲人成7777| 日本一区二区免费在线| 欧美一区二区视频免费观看| 色天天综合色天天久久| 成人黄色小视频| 国产电影精品久久禁18| 免费黄网站欧美| 青娱乐精品在线视频| 亚洲一区二区三区四区在线观看| 国产精品久久久久久久久搜平片 | 日韩欧美国产午夜精品| 在线观看一区二区视频| 97久久精品人人做人人爽50路| 国产呦萝稀缺另类资源| 美女视频网站久久| 麻豆91精品视频| 老司机精品视频在线| 麻豆成人91精品二区三区| 亚洲成人免费电影| 午夜亚洲国产au精品一区二区| 亚洲一区二区三区美女| 亚洲伦理在线免费看| 亚洲综合免费观看高清完整版在线 | 国产很黄免费观看久久| 国产自产高清不卡| 国内精品免费**视频| 国产一区二区三区在线观看免费视频| 奇米色777欧美一区二区| 日韩av在线播放中文字幕| 五月婷婷综合在线| 蜜桃久久精品一区二区| 蜜桃一区二区三区在线观看| 麻豆成人免费电影| 国产麻豆一精品一av一免费| 国产在线视频精品一区| 国产成人综合精品三级| 成人的网站免费观看| 色婷婷综合久久久久中文| 欧美日韩一区小说| 日韩久久久久久| 欧美经典三级视频一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品国产三级国产专播品爱网 | 久久久久国产免费免费| 国产亚洲精品久| 国产精品成人在线观看| 亚洲一区二区视频在线| 美女网站视频久久| 粉嫩嫩av羞羞动漫久久久 | 欧美大片拔萝卜| 中文欧美字幕免费| 亚洲综合一区在线| 经典三级一区二区| 91丨九色丨蝌蚪富婆spa| 在线观看91精品国产麻豆| 国产午夜亚洲精品理论片色戒 | 视频在线观看一区| 国产麻豆精品视频| 91久久精品一区二区二区| 91精品国产综合久久久久| 久久一夜天堂av一区二区三区 | 蜜桃视频第一区免费观看| 国产iv一区二区三区| 在线国产亚洲欧美| 久久亚洲综合av| 亚欧色一区w666天堂| 国产精品18久久久久| 欧美日韩在线三级| 欧美激情一区二区三区蜜桃视频| 亚洲成人激情自拍| 99免费精品视频| 久久久久久9999| 美女网站一区二区| 欧美日韩中字一区|