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

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

?? listexamplemain.pas

?? 全世界知名的Open Source Delphi開發組織JCL的作品。JCL包含了很多Delphi和C++Builder中的可重用單元
?? PAS
字號:
unit ListExampleMain;

interface

uses
  {$IFDEF WIN32}
  Windows, Messages, Graphics, Controls, Forms, Dialogs, StdCtrls,
  {$ENDIF}
  {$IFDEF LINUX}
  QForms, QControls, QStdCtrls,
  {$ENDIF}
  SysUtils, Classes;

type
  TMainForm = class(TForm)
    btnIntfArrayList: TButton;
    btnIntfLinkedList: TButton;
    btnIntfVector: TButton;
    btnArrayList: TButton;
    btnLinkedList: TButton;
    btnVector: TButton;
    memResult: TMemo;
    btnMyObjectList: TButton;
    btnStrArrayList: TButton;
    btnStrLinkedList: TButton;
    btnStrVector: TButton;
    procedure btnIntfArrayListClick(Sender: TObject);
    procedure btnIntfLinkedListClick(Sender: TObject);
    procedure btnIntfVectorClick(Sender: TObject);
    procedure btnArrayListClick(Sender: TObject);
    procedure btnLinkedListClick(Sender: TObject);
    procedure btnVectorClick(Sender: TObject);
    procedure btnMyObjectListClick(Sender: TObject);
    procedure btnStrArrayListClick(Sender: TObject);
    procedure btnStrLinkedListClick(Sender: TObject);
    procedure btnStrVectorClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  IIntfMyObject = interface
    ['{BA33CBCC-9CB2-4672-BF54-F52C2A0BEFFE}']
    function GetInt: Integer;
    function GetStr: string;
    procedure SetInt(Value: Integer);
    procedure SetStr(const Value: string);
    property Int: Integer read GetInt write SetInt;
    property Str: string read GetStr write SetStr;
  end;

  TIntfMyObject = class(TInterfacedObject, IIntfMyObject)
  private
    FInt: Integer;
    FStr: string;
  protected
  { IIntfMyObject }
    function GetInt: Integer;
    function GetStr: string;
    procedure SetInt(Value: Integer);
    procedure SetStr(const Value: string);
  end;

  IPerson = interface
    ['{755C857B-A9E2-4D9D-8418-541CAEA79679}']
    function GetAge: Integer;
    function GetMarried: Boolean;
    function GetName: string;
    procedure SetAge(Value: Integer);
    procedure SetMarried(Value: Boolean);
    procedure SetName(const Value: string);
    property Age: Integer read GetAge write SetAge;
    property Married: Boolean read GetMarried write SetMarried;
    property Name: string read GetName write SetName;
  end;

  TPerson = class(TInterfacedObject, IPerson)
  private
    FName: string;
    FAge: Integer;
    FMarried: Boolean;
  protected
  { IPerson }
    function GetAge: Integer;
    function GetMarried: Boolean;
    function GetName: string;
    procedure SetAge(Value: Integer);
    procedure SetMarried(Value: Boolean);
    procedure SetName(const Value: string);
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

uses JclContainerIntf, JclArrayLists, JclLinkedLists, JclVectors, MyObjectList;

{ TIntfMyObject }

function TIntfMyObject.GetInt: Integer;
begin
  Result := FInt;
end;

function TIntfMyObject.GetStr: string;
begin
  Result := FStr;
end;

procedure TIntfMyObject.SetInt(Value: Integer);
begin
  FInt := Value;
end;

procedure TIntfMyObject.SetStr(const Value: string);
begin
  FStr := Value;
end;

procedure TMainForm.btnIntfArrayListClick(Sender: TObject);
var
  List, Sub: IJclIntfList;
  MyArray: IJclIntfArray;
  MyObject: IIntfMyObject;
  It: IJclIntfIterator;
  I: Integer;
begin
  memResult.Lines.Clear;
  List := TJclIntfArrayList.Create;
  MyObject := TIntfMyObject.Create;
  MyObject.Int := 42;
  MyObject.Str := 'MyString';
  List.Add(MyObject);

  MyObject := IIntfMyObject(List.GetObject(0));
  //memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

  MyObject := TIntfMyObject.Create;
  MyObject.Int := 41;
  MyObject.Str := 'AnotherString';
  List.Add(MyObject);

  Sub := List.SubList(0, 10);

  // Iteration
  It := Sub.First;
  while It.HasNext do
  begin
    MyObject := IIntfMyObject(It.Next);
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
  end;
  // use [] default of Items[]
  MyArray := List as IJclIntfArray;
  for I := 0 to MyArray.Size - 1 do
  begin
    MyObject := IIntfMyObject(MyArray[I]);
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
  end;
end;

procedure TMainForm.btnIntfLinkedListClick(Sender: TObject);
var
  List, Sub: IJclIntfList;
  MyObject: IIntfMyObject;
  It: IJclIntfIterator;
begin
  memResult.Lines.Clear;
  List := TJclIntfLinkedList.Create;
  MyObject := TIntfMyObject.Create;
  MyObject.Int := 42;
  MyObject.Str := 'MyString';
  List.Add(MyObject);
  MyObject := IIntfMyObject(List.GetObject(0));
  memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

  MyObject := TIntfMyObject.Create;
  MyObject.Int := 41;
  MyObject.Str := 'AnotherString';
  List.Add(MyObject);

  Sub := List.SubList(1, 10);

  It := Sub.First;
  while It.HasNext do
  begin
    MyObject := IIntfMyObject(It.Next);
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
  end;
end;

procedure TMainForm.btnIntfVectorClick(Sender: TObject);
var
  List: TJclIntfVector;
  MyObject: IIntfMyObject;
  It: IJclIntfIterator;
  I: Integer;
begin
  memResult.Lines.Clear;
  List := TJclIntfVector.Create;
  try
    MyObject := TIntfMyObject.Create;
    MyObject.Int := 42;
    MyObject.Str := 'MyString';
    List.Add(MyObject);
    MyObject := IIntfMyObject(List.GetObject(0));
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

    MyObject := TIntfMyObject.Create;
    MyObject.Int := 41;
    MyObject.Str := 'AnotherString';
    List.Add(MyObject);
    It := List.First;
    while It.HasNext do
    begin
      MyObject := IIntfMyObject(It.Next);
      memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
    end;
    // Fastest way
    for I := 0 to List.Size - 1 do
    begin
      MyObject := IIntfMyObject(List.Items[I]);
      memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
    end;
    List.Clear;
  finally
    It := nil; // Force release Iterator before free list !
    List.Free; // No Ref Count
  end;
end;

procedure TMainForm.btnArrayListClick(Sender: TObject);
var
  List: IJclList;
  MyObject: TMyObject;
  It: IJclIterator;
begin
  memResult.Lines.Clear;
  List := TJclArrayList.Create;
  MyObject := TMyObject.Create;
  MyObject.Int := 42;
  MyObject.Str := 'MyString';
  List.Add(MyObject);
  MyObject := TMyObject(List.GetObject(0));
  memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

  MyObject := TMyObject.Create;
  MyObject.Int := 41;
  MyObject.Str := 'AnotherString';
  List.Add(MyObject);

  It := List.First;
  while It.HasNext do
  begin
    MyObject := TMyObject(It.Next);
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
  end;
  It := List.First;
  while It.HasNext do
    It.Remove;
end;

procedure TMainForm.btnLinkedListClick(Sender: TObject);
var
  List: IJclList;
  MyObject: TMyObject;
  It: IJclIterator;
begin
  memResult.Lines.Clear;
  List := TJclLinkedList.Create;
  MyObject := TMyObject.Create;
  MyObject.Int := 42;
  MyObject.Str := 'MyString';
  List.Add(MyObject);
  MyObject := TMyObject(List.GetObject(0));
  memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

  MyObject := TMyObject.Create;
  MyObject.Int := 41;
  MyObject.Str := 'AnotherString';
  List.Add(MyObject);

  It := List.First;
  while It.HasNext do
  begin
    MyObject := TMyObject(It.Next);
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
  end;
end;

procedure TMainForm.btnVectorClick(Sender: TObject);
var
  List: IJclList;
  MyObject: TMyObject;
  It: IJclIterator;
  I: Integer;
begin
  memResult.Lines.Clear;
  List := TJclVector.Create;
  try
    MyObject := TMyObject.Create;
    MyObject.Int := 42;
    MyObject.Str := 'MyString';
    List.Add(MyObject);
    MyObject := TMyObject(List.GetObject(0));
    memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

    MyObject := TMyObject.Create;
    MyObject.Int := 41;
    MyObject.Str := 'AnotherString';
    List.Add(MyObject);

    It := List.First;
    while It.HasNext do
    begin
      MyObject := TMyObject(It.Next);
      memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
    end;
    // Fastest way
    for I := 0 to List.Size - 1 do
    begin
      MyObject := TMyObject(List.Items[I]);
      memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);
    end;
    List.Clear;
  finally
    It := nil; // Force release Iterator before free list !
    List := nil;
  end;
end;

procedure TMainForm.btnMyObjectListClick(Sender: TObject);
var
  List: IMyObjectList;
  MyObject: TMyObject;
begin
  memResult.Lines.Clear;
  List := TMyObjectList.Create;
  MyObject := TMyObject.Create;
  MyObject.Int := 42;
  MyObject.Str := 'MyString';
  List.Add(MyObject);
  memResult.Lines.Add(IntToStr(List.GetObject(0).Int));
  memResult.Lines.Add(List.GetObject(0).Str);
end;

procedure TMainForm.btnStrArrayListClick(Sender: TObject);
var
  List, Sub: IJclStrList;
  MyArray: IJclStrArray;
  It: IJclStrIterator;
  I: Integer;
  S: string;
begin
  memResult.Lines.Clear;
  List := TJclStrArrayList.Create;
  List.Add('MyString');

  S := List.GetString(0);
  //memResult.Lines.Add(IntToStr(MyObject.Int) + ' ' + MyObject.Str);

  List.Add('AnotherString');

  Sub := List.SubList(0, 10);
  // Iteration
  It := Sub.First;
  while It.HasNext do
  begin
    S := It.Next;
    memResult.Lines.Add(S);
  end;
  // use [] default of Items[]
  MyArray := List as IJclStrArray;
  for I := 0 to MyArray.Size - 1 do
  begin
    S := MyArray[I];
    memResult.Lines.Add(S);
  end;
end;

{ TPerson }

function TPerson.GetAge: Integer;
begin
  Result := FAge;
end;

function TPerson.GetMarried: Boolean;
begin
  Result := FMarried;
end;

function TPerson.GetName: string;
begin
  Result := FName;
end;

procedure TPerson.SetAge(Value: Integer);
begin
  FAge := Value;
end;

procedure TPerson.SetMarried(Value: Boolean);
begin
  FMarried := Value;
end;

procedure TPerson.SetName(const Value: string);
begin
  FName := Value;
end;

procedure TMainForm.btnStrLinkedListClick(Sender: TObject);
var
  List, Sub: IJclStrList;
  S: string;
  It: IJclStrIterator;
begin
  memResult.Lines.Clear;
  List := TJclStrLinkedList.Create;
  List.Add('MyString');
  memResult.Lines.Add(List.GetString(0));

  List.Add('AnotherString');

  Sub := List.SubList(1, 10);

  It := Sub.First;
  while It.HasNext do
  begin
    S := It.Next;
    memResult.Lines.Add(S);
  end;
end;

procedure TMainForm.btnStrVectorClick(Sender: TObject);
var
  List: IJclStrList;
  S: string;
  It: IJclStrIterator;
  I: Integer;
begin
  memResult.Lines.Clear;
  List := TJclStrVector.Create;
  try
    List.Add('MyString');
    S := List.GetString(0);
    memResult.Lines.Add(S);

    List.Add('AnotherString');

    It := List.First;
    while It.HasNext do
    begin
      S := It.Next;
      memResult.Lines.Add(S);
    end;
    // Fastest way
    for I := 0 to List.Size - 1 do
    begin
      S := List.Items[I];
      memResult.Lines.Add(S);
    end;
    List.Clear;
  finally
    It := nil; // Force release Iterator before free list !
    List := nil;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品中文字幕| 亚洲bt欧美bt精品| 亚洲私人黄色宅男| 青青国产91久久久久久| 国产ts人妖一区二区| 欧美精品在线一区二区三区| 国产亚洲欧美中文| 三级精品在线观看| 一本大道久久a久久精品综合| 日韩视频一区二区三区在线播放 | 免费观看一级欧美片| 成人激情综合网站| 日韩精品一区二| 亚洲午夜激情av| 高清不卡一区二区| 精品动漫一区二区三区在线观看| 亚洲免费在线观看视频| 国产精一区二区三区| 欧美一区二区国产| 亚洲sss视频在线视频| 97久久精品人人做人人爽| 久久网站热最新地址| 奇米综合一区二区三区精品视频| 在线中文字幕不卡| 国产成人av一区二区| 日韩久久免费av| 青草国产精品久久久久久| 欧美天堂一区二区三区| 亚洲精品乱码久久久久久黑人| 国产精品白丝jk白祙喷水网站| 欧美一区二区福利在线| 蜜臀av一区二区| 3d动漫精品啪啪| 亚洲成人激情综合网| 欧美系列一区二区| 亚洲成人av电影在线| 欧美日韩亚洲国产综合| 亚洲一卡二卡三卡四卡五卡| 欧美性生活大片视频| 亚洲成人免费影院| 欧美精三区欧美精三区| 理论片日本一区| 日韩免费一区二区三区在线播放| 日本不卡视频在线观看| 日韩欧美卡一卡二| 狠狠色丁香婷综合久久| 久久精品亚洲国产奇米99| 色综合久久中文字幕综合网| 欧美一区在线视频| 极品少妇xxxx精品少妇偷拍| 久久久精品黄色| 不卡的电影网站| 亚洲日本丝袜连裤袜办公室| 在线中文字幕一区| 日韩精品影音先锋| 国产91在线看| 亚洲欧美激情插| 欧美老肥妇做.爰bbww| 久久国内精品视频| 欧美极品美女视频| 色94色欧美sute亚洲13| 免费看日韩a级影片| 国产欧美精品一区aⅴ影院| 99免费精品视频| 偷拍一区二区三区四区| 国产亚洲成aⅴ人片在线观看 | 欧美一区二区三区啪啪| 韩国精品在线观看| 亚洲天堂网中文字| 欧美一区二区视频网站| 东方欧美亚洲色图在线| 亚洲自拍偷拍av| 精品国产精品网麻豆系列| 91视频com| 蜜桃视频在线一区| 亚洲色图清纯唯美| 精品久久久久久久久久久久包黑料| 成人性生交大片免费看中文网站| 亚洲国产色一区| 国产午夜精品一区二区三区视频| 色美美综合视频| 国产一区二区主播在线| 亚洲影视在线观看| 日本一区二区三区四区| 欧美日韩激情一区二区三区| 成人午夜视频在线观看| 免费一区二区视频| 亚洲自拍偷拍图区| 国产精品久久久一区麻豆最新章节| 欧美日韩视频在线观看一区二区三区| 国产高清在线精品| 日韩高清在线不卡| 一区二区三区久久| 国产精品美女久久久久久| 精品精品欲导航| 欧美日韩日日夜夜| 色综合久久中文字幕综合网| 高清视频一区二区| 加勒比av一区二区| 久久精品国产精品亚洲精品| 亚洲不卡在线观看| 亚洲精品一二三| 亚洲欧洲日韩在线| 中文一区一区三区高中清不卡| 精品电影一区二区| 精品国产91乱码一区二区三区| 91麻豆精品91久久久久同性| 欧美又粗又大又爽| 色诱视频网站一区| 91在线观看高清| kk眼镜猥琐国模调教系列一区二区 | 成人高清视频免费观看| 国产精品小仙女| 国产91在线观看| 成人app在线观看| 福利电影一区二区| 成人国产精品免费观看视频| 成人av网站大全| 成人国产电影网| 波多野结衣中文字幕一区二区三区| 国产福利91精品一区二区三区| 国内成+人亚洲+欧美+综合在线| 另类调教123区| 国产精品 日产精品 欧美精品| 国产精品夜夜嗨| 国产成人精品一区二区三区网站观看| 久久国产精品色婷婷| 国产一区三区三区| 国产成人aaa| 色呦呦国产精品| 欧美色图在线观看| 欧美一级国产精品| 精品国产乱码久久久久久浪潮| 久久久午夜精品| 亚洲嫩草精品久久| 日本一道高清亚洲日美韩| 久久国内精品自在自线400部| 国产精品一级片| 99久久久国产精品免费蜜臀| 在线视频一区二区免费| 欧美一级搡bbbb搡bbbb| 欧美精品一区二区三区在线 | 欧美一区二区高清| 国产香蕉久久精品综合网| 国产精品久久久爽爽爽麻豆色哟哟 | 麻豆精品一二三| 国产成人精品一区二区三区网站观看| 91麻豆免费视频| 欧美一区二区三区播放老司机| 久久精品在这里| 亚洲综合丁香婷婷六月香| 蜜桃在线一区二区三区| 9色porny自拍视频一区二区| 欧美三级日韩三级| 久久久久久久久伊人| 亚洲黄一区二区三区| 精品一区二区三区免费观看| 97久久精品人人爽人人爽蜜臀| 欧美精品久久99| 国产精品久久久久久久久免费桃花| 亚洲地区一二三色| 国产宾馆实践打屁股91| 欧美精品粉嫩高潮一区二区| 久久精品欧美日韩精品| 亚洲成精国产精品女| 丁香激情综合五月| 日韩一级片网站| 亚洲精品视频免费观看| 国产麻豆精品视频| 欧美精品乱码久久久久久按摩| 国产精品理论片| 久久不见久久见中文字幕免费| 91久久奴性调教| 国产日韩欧美a| 日韩成人精品在线| 在线观看欧美精品| 国产精品久久久久久久久晋中 | 亚洲丰满少妇videoshd| 国产精品99久久久久久久vr | 欧美国产一区二区| 青青草视频一区| 欧美久久久久免费| 亚洲精品视频在线观看网站| 国产福利一区二区三区| 日韩欧美中文字幕一区| 亚洲大片免费看| 一本色道久久综合精品竹菊| 国产亚洲成aⅴ人片在线观看| 开心九九激情九九欧美日韩精美视频电影 | 欧美在线色视频| 亚洲免费成人av| 91无套直看片红桃| 国产精品二区一区二区aⅴ污介绍| 另类调教123区| 精品美女一区二区| 精品一区二区在线视频| 91精品国产麻豆国产自产在线 | 久久成人免费网站| 日韩一区二区三区三四区视频在线观看| 亚洲综合激情另类小说区|