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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tntcomctrls.pas

?? Delphi知道現(xiàn)在也沒有提供Unicode支持
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    SendMessageW(Control.Handle, CCM_SETUNICODEFORMAT, Integer(True), 0);
end;

{ TTntListColumn }

procedure TTntListColumn.Assign(Source: TPersistent);
begin
  inherited;
  if Source is TTntListColumn then
    Caption := TTntListColumn(Source).Caption
  else if Source is TListColumn{TNT-ALLOW TListColumn} then
    FCaption := TListColumn{TNT-ALLOW TListColumn}(Source).Caption;
end;

procedure TTntListColumn.DefineProperties(Filer: TFiler);
begin
  inherited;
  TntPersistent_AfterInherited_DefineProperties(Filer, Self);
end;

procedure TTntListColumn.SetInheritedCaption(const Value: AnsiString);
begin
  inherited Caption := Value;
end;

function TTntListColumn.GetCaption: WideString;
begin
  Result := GetSyncedWideString(FCaption, inherited Caption);
end;

procedure TTntListColumn.SetCaption(const Value: WideString);
begin
  SetSyncedWideString(Value, FCaption, inherited Caption, SetInheritedCaption);
end;

{ TTntListColumns }

{$IFDEF COMPILER_6} // verified against VCL source in Delphi 6 and BCB 6
type
  THackCollection = class(TPersistent)
  protected
    FItemClass: TCollectionItemClass;
  end;
{$ENDIF}
{$IFDEF DELPHI_7} // verified against VCL source in Delphi 7
type
  THackCollection = class(TPersistent)
  protected
    FItemClass: TCollectionItemClass;
  end;
{$ENDIF}
{$IFDEF DELPHI_9} // verified against VCL source in Delphi 9
type
  THackCollection = class(TPersistent)
  protected
    FItemClass: TCollectionItemClass;
  end;
{$ENDIF}
{$IFDEF DELPHI_10} // verified against VCL source in Delphi 10
type
  THackCollection = class(TPersistent)
  protected
    FItemClass: TCollectionItemClass;
  end;
{$ENDIF}

constructor TTntListColumns.Create(AOwner: TTntCustomListView);
begin
  inherited Create(AOwner);
  Assert(THackCollection(Self).FItemClass = Self.ItemClass, 'Internal Error in TTntListColumns.Create().');
  THackCollection(Self).FItemClass := TTntListColumn
end;

function TTntListColumns.Owner: TTntCustomListView;
begin
  Result := inherited Owner as TTntCustomListView;
end;

function TTntListColumns.Add: TTntListColumn;
begin
  Result := (inherited Add) as TTntListColumn;
end;

function TTntListColumns.GetItem(Index: Integer): TTntListColumn;
begin
  Result := inherited Items[Index] as TTntListColumn;
end;

procedure TTntListColumns.SetItem(Index: Integer; Value: TTntListColumn);
begin
  inherited SetItem(Index, Value);
end;

{ TWideSubItems }
type
  TWideSubItems = class(TTntStringList)
  private
    FIgnoreInherited: Boolean;
    FInheritedOwner: TListItem{TNT-ALLOW TListItem};
    FOwner: TTntListItem;
  protected
    procedure Put(Index: Integer; const S: WideString); override;
    function GetObject(Index: Integer): TObject; override;
    procedure PutObject(Index: Integer; AObject: TObject); override;
    procedure SetUpdateState(Updating: Boolean); override;
  public
    procedure Insert(Index: Integer; const S: WideString); override;
    function AddObject(const S: WideString; AObject: TObject): Integer; override;
    procedure Clear; override;
    procedure Delete(Index: Integer); override;
  public
    constructor Create(AOwner: TTntListItem);
  end;

constructor TWideSubItems.Create(AOwner: TTntListItem);
begin
  inherited Create;
  FInheritedOwner := AOwner;
  FOwner := AOwner;
end;

function TWideSubItems.AddObject(const S: WideString; AObject: TObject): Integer;
begin
  FOwner.ListView.BeginChangingWideItem;
  try
    Result := inherited AddObject(S, AObject);
    if (not FIgnoreInherited) then
      FInheritedOwner.SubItems.AddObject(S, AObject);
  finally
    FOwner.ListView.EndChangingWideItem;
  end;
end;

procedure TWideSubItems.Clear;
begin
  FOwner.ListView.BeginChangingWideItem;
  try
    inherited;
    if (not FIgnoreInherited) then
      FInheritedOwner.SubItems.Clear;
  finally
    FOwner.ListView.EndChangingWideItem;
  end;
end;

procedure TWideSubItems.Delete(Index: Integer);
begin
  FOwner.ListView.BeginChangingWideItem;
  try
    inherited;
    if (not FIgnoreInherited) then
      FInheritedOwner.SubItems.Delete(Index);
  finally
    FOwner.ListView.EndChangingWideItem;
  end;
end;

procedure TWideSubItems.Insert(Index: Integer; const S: WideString);
begin
  FOwner.ListView.BeginChangingWideItem;
  try
    inherited;
    if (not FIgnoreInherited) then
      FInheritedOwner.SubItems.Insert(Index, S);
  finally
    FOwner.ListView.EndChangingWideItem;
  end;
end;

procedure TWideSubItems.Put(Index: Integer; const S: WideString);
begin
  FOwner.ListView.BeginChangingWideItem;
  try
    inherited;
    if (not FIgnoreInherited) then
      FInheritedOwner.SubItems[Index] := S;
  finally
    FOwner.ListView.EndChangingWideItem;
  end;
end;

function TWideSubItems.GetObject(Index: Integer): TObject;
begin
  Result := FInheritedOwner.SubItems.Objects[Index];
end;

procedure TWideSubItems.PutObject(Index: Integer; AObject: TObject);
begin
  FInheritedOwner.SubItems.Objects[Index] := AObject;
end;

type TAccessStrings = class(TStrings{TNT-ALLOW TStrings});

procedure TWideSubItems.SetUpdateState(Updating: Boolean);
begin
  inherited;
  TAccessStrings(FInheritedOwner.SubItems).SetUpdateState(Updating);
end;

{ TTntListItem }

constructor TTntListItem.Create(AOwner: TListItems{TNT-ALLOW TListItems});
begin
  inherited Create(AOwner);
  FSubItems := TWideSubItems.Create(Self);
end;

destructor TTntListItem.Destroy;
begin
  inherited;
  FreeAndNil(FSubItems);
end;

function TTntListItem.GetCaption: WideString;
begin
  Result := GetSyncedWideString(FCaption, inherited Caption);
end;

procedure TTntListItem.SetInheritedCaption(const Value: AnsiString);
begin
  inherited Caption := Value;
end;

procedure TTntListItem.SetCaption(const Value: WideString);
begin
  ListView.BeginChangingWideItem;
  try
    SetSyncedWideString(Value, FCaption, inherited Caption, SetInheritedCaption);
  finally
    ListView.EndChangingWideItem;
  end;
end;

procedure TTntListItem.Assign(Source: TPersistent);
begin
  if Source is TTntListItem then
    with Source as TTntListItem do
    begin
      Self.Caption := Caption;
      Self.Data := Data;
      Self.ImageIndex := ImageIndex;
      Self.Indent := Indent;
      Self.OverlayIndex := OverlayIndex;
      Self.StateIndex := StateIndex;
      Self.SubItems := SubItems;
      Self.Checked := Checked;
    end
  else inherited Assign(Source);
end;

procedure TTntListItem.SetSubItems(const Value: TTntStrings);
begin
  if Value <> nil then
    FSubItems.Assign(Value);
end;

function TTntListItem.GetTntOwner: TTntListItems;
begin
  Result := ListView.Items;
end;

function TTntListItem.GetListView: TTntCustomListView;
begin
  Result := ((inherited Owner).Owner as TTntCustomListView);
end;

{ TTntListItemsEnumerator }

constructor TTntListItemsEnumerator.Create(AListItems: TTntListItems);
begin
  inherited Create;
  FIndex := -1;
  FListItems := AListItems;
end;

function TTntListItemsEnumerator.GetCurrent: TTntListItem;
begin
  Result := FListItems[FIndex];
end;

function TTntListItemsEnumerator.MoveNext: Boolean;
begin
  Result := FIndex < FListItems.Count - 1;
  if Result then
    Inc(FIndex);
end;

{ TTntListItems }

function TTntListItems.Add: TTntListItem;
begin
  Result := (inherited Add) as TTntListItem;
end;

function TTntListItems.AddItem(Item: TTntListItem; Index: Integer): TTntListItem;
begin
  Result := (inherited AddItem(Item, Index)) as TTntListItem;
end;

function TTntListItems.Insert(Index: Integer): TTntListItem;
begin
  Result := (inherited Insert(Index)) as TTntListItem;
end;

function TTntListItems.GetItem(Index: Integer): TTntListItem;
begin
  Result := (inherited Item[Index]) as TTntListItem;
end;

function TTntListItems.Owner: TTntCustomListView;
begin
  Result := (inherited Owner) as TTntCustomListView;
end;

procedure TTntListItems.SetItem(Index: Integer; const Value: TTntListItem);
begin
  inherited Item[Index] := Value;
end;

function TTntListItems.GetEnumerator: TTntListItemsEnumerator;
begin
  Result := TTntListItemsEnumerator.Create(Self);
end;

{ TSavedListItem }
type
  TSavedListItem = class
    FCaption: WideString;
    FSubItems: TTntStrings;
    constructor Create;
    destructor Destroy; override;
  end;

constructor TSavedListItem.Create;
begin
  inherited;
  FSubItems := TTntStringList.Create;
end;

destructor TSavedListItem.Destroy;
begin
  FSubItems.Free;
  inherited;
end;

{ _TntInternalCustomListView }

function _TntInternalCustomListView.OwnerDataFind(Find: TItemFind;
  const FindString: AnsiString; const FindPosition: TPoint;
  FindData: Pointer; StartIndex: Integer; Direction: TSearchDirection;
  Wrap: Boolean): Integer;
var
  WideFindString: WideString;
begin
  if Assigned(PWideFindString) then
    WideFindString := PWideFindString
  else
    WideFindString := FindString;
  Result := OwnerDataFindW(Find, WideFindString, FindPosition, FindData, StartIndex, Direction, Wrap);
end;

function _TntInternalCustomListView.OwnerDataFetch(Item: TListItem{TNT-ALLOW TListItem};
  Request: TItemRequest): Boolean;
begin
  if  (CurrentDispInfo <> nil)
  and (OriginalDispInfoMask and LVIF_TEXT <> 0) then begin
    (Item as TTntListItem).FCaption := CurrentDispInfo.item.pszText
  end;
  (Item as TTntListItem).FSubItems.Clear;
  Result := OwnerDataFetchW(Item, Request);
end;

{ TTntCustomListView }

{$IFDEF COMPILER_6} // verified against VCL source in Delphi 6 and BCB 6
type
  THackCustomListView = class(TCustomMultiSelectListControl)
  protected
    FxxxCanvas: TCanvas;
    FxxxBorderStyle: TBorderStyle;
    FxxxViewStyle: TViewStyle;
    FxxxReadOnly: Boolean;
    FxxxLargeImages: TCustomImageList;
    FxxxSmallImages: TCustomImageList;
    FxxxStateImages: TCustomImageList;
    FxxxDragImage: TDragImageList;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视| 国产精品国产自产拍高清av| 久久综合中文字幕| 中文字幕av一区二区三区高| 亚洲人精品午夜| 青椒成人免费视频| 成人精品一区二区三区中文字幕| 欧美性大战久久| 欧美一区二区成人| 中文字幕精品三区| 日韩电影在线观看网站| 国产福利精品导航| 欧美色图天堂网| 久久久精品免费观看| 亚洲精品乱码久久久久久日本蜜臀| 日韩激情一二三区| 成人av在线播放网站| 911精品国产一区二区在线| 中文字幕第一区| 日韩av不卡在线观看| 99久精品国产| 精品捆绑美女sm三区| 一区二区在线观看免费视频播放| 强制捆绑调教一区二区| 91色.com| 久久久精品综合| 日韩精品免费视频人成| 成a人片国产精品| 日韩精品一区二区三区中文不卡| 亚洲激情自拍偷拍| 国产91对白在线观看九色| 欧美日韩国产成人在线91| 国产精品黄色在线观看| 另类成人小视频在线| 在线观看国产精品网站| 欧美激情一区二区三区蜜桃视频| 日韩高清在线观看| 在线观看视频一区二区| 国产欧美精品一区二区色综合| 天天色天天操综合| 色哟哟一区二区在线观看| 久久一日本道色综合| 亚洲成a人片在线观看中文| 波多野结衣精品在线| 精品国产乱码久久久久久久久| 亚洲一区二区三区三| 99久久久精品免费观看国产蜜| 欧美mv日韩mv| 欧美a级理论片| 欧美日韩成人综合在线一区二区| 中文字幕色av一区二区三区| 国产在线精品一区二区夜色| 欧美精品自拍偷拍| 亚洲高清免费观看高清完整版在线观看| 国产99一区视频免费| 精品国产乱码91久久久久久网站| 亚洲sss视频在线视频| 色狠狠一区二区三区香蕉| 中文字幕乱码日本亚洲一区二区| 国产一区二区三区四| 精品精品国产高清一毛片一天堂| 日韩激情一二三区| 91麻豆精品国产91久久久资源速度 | 日韩网站在线看片你懂的| 亚洲一区在线观看视频| 色八戒一区二区三区| 亚洲精品视频免费观看| 91免费视频观看| 亚洲欧美另类久久久精品2019| 99久久国产综合色|国产精品| 国产精品五月天| 成人激情小说乱人伦| 国产精品网友自拍| 不卡高清视频专区| 国产精品久久久久久久久久免费看| 福利91精品一区二区三区| 国产区在线观看成人精品| 国产福利不卡视频| 欧美国产日韩精品免费观看| 粉嫩一区二区三区性色av| 久久久夜色精品亚洲| 国产乱淫av一区二区三区| 欧美极品美女视频| www.亚洲色图| 亚洲视频在线一区| 91官网在线观看| 午夜精品久久久久影视| 日韩欧美一区二区视频| 国产资源精品在线观看| 国产欧美日韩三区| 91最新地址在线播放| 一区二区高清在线| 在线电影院国产精品| 久久99久国产精品黄毛片色诱| 久久人人爽爽爽人久久久| 99久久婷婷国产| 香蕉加勒比综合久久| 欧美不卡视频一区| 粉嫩蜜臀av国产精品网站| 一区二区三区在线高清| 欧美高清一级片在线| 激情久久久久久久久久久久久久久久| 国产清纯美女被跳蛋高潮一区二区久久w | 色老头久久综合| 天天色图综合网| 久久综合九色综合欧美就去吻| 成人av在线播放网站| 亚洲一二三专区| 精品国产乱码久久久久久久| 成人高清视频在线| 午夜欧美在线一二页| 久久综合色婷婷| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 美美哒免费高清在线观看视频一区二区| 精品999久久久| 色噜噜夜夜夜综合网| 久久不见久久见免费视频1| 中文字幕制服丝袜成人av| 欧美日韩一区 二区 三区 久久精品| 狠狠狠色丁香婷婷综合激情 | 91丨九色porny丨蝌蚪| 午夜精品久久久久久久久久久| 久久久久综合网| 欧美揉bbbbb揉bbbbb| 国产老肥熟一区二区三区| 一区二区三区精品视频在线| 久久综合九色综合97婷婷女人| 在线看日韩精品电影| 国产精品一区在线观看乱码| 亚洲一区二区三区精品在线| 国产日韩在线不卡| 7777女厕盗摄久久久| 99久久国产综合精品麻豆| 韩国午夜理伦三级不卡影院| 一区二区免费在线播放| xfplay精品久久| 欧美三级视频在线观看| av亚洲精华国产精华精华| 蜜桃视频在线观看一区| 亚洲精品国产视频| 久久综合av免费| 在线综合视频播放| 色综合久久天天综合网| 国产成a人无v码亚洲福利| 日本三级韩国三级欧美三级| 亚洲精品成人悠悠色影视| 欧美经典一区二区三区| 日韩午夜精品视频| 欧美丝袜丝交足nylons图片| 国产东北露脸精品视频| 久久精品国产在热久久| 亚洲午夜精品17c| 亚洲日本电影在线| 中文字幕第一区第二区| 久久亚洲综合色| 欧美妇女性影城| 在线影视一区二区三区| 成人av综合在线| 国产成人免费视频精品含羞草妖精| 免费成人在线观看视频| 婷婷夜色潮精品综合在线| 亚洲免费毛片网站| 国产精品对白交换视频| 久久久久久久久99精品| 日韩欧美三级在线| 在线电影欧美成精品| 欧美日韩久久久一区| 在线观看成人小视频| 色欧美日韩亚洲| 91小宝寻花一区二区三区| 成人免费黄色大片| 懂色av一区二区夜夜嗨| 国产精品12区| 国产精品白丝av| 福利一区二区在线观看| 国产成人精品三级| 国产精品99久| 国产高清一区日本| 粉嫩久久99精品久久久久久夜 | 国产精品久久久久久久第一福利| 久久久国产精华| 国产日韩欧美电影| 国产亚洲欧美激情| 国产亚洲欧洲997久久综合| 久久人人超碰精品| 国产人成一区二区三区影院| 久久久天堂av| 国产精品天天看| 亚洲视频图片小说| 亚洲欧美精品午睡沙发| 亚洲一区欧美一区| 午夜日韩在线观看| 久久精品久久99精品久久| 韩国女主播一区二区三区| 国内精品国产成人国产三级粉色| 精品一区二区三区日韩| 国产一区二区在线影院| 成人手机在线视频| 色婷婷精品久久二区二区蜜臂av| 欧美色欧美亚洲另类二区|