zoukankan      html  css  js  c++  java
  • 三十、详测 Generics Collections: TObjectList、TObjectQueue、TObjectStack

    TObjectList<T>、TObjectQueue<T>、TObjectStack<T> 分别继承自:
    TList<T>、TQueue<T>、TStack<T>;

    它们是专门用于对象的列表, 都增加了一个 OwnsObjects 布尔属性, 决定对象会不会自动释放(这也通过 Create 的参数来决定)

    其他基本同它们的父类, 仅给 TObjectList<T> 测试一例(至此泛型相关内容学习完毕):

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;

    type
      TForm1 
    = class(TForm)
        Button1: TButton;
        
    procedure Button1Click(Sender: TObject);
      
    end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses Generics.Collections;

    procedure TForm1.Button1Click(Sender: TObject);
    const
      w 
    = 100; h = 20;
    var
      ObjList: TObjectList
    <TEdit>;
      Edit: TEdit;
      i: Integer;
    begin
      ObjList :
    = TObjectList<TEdit>.Create();
      
    //ObjList := TObjectList<TEdit>.Create(False); {如果这样建立, 对象退出列表是则不会自动释放}
      
      Randomize;
      
    for i := 0 to 5 do {建立 6 个 Edit, 并加入列表}
      
    begin
        Edit :
    = TEdit.Create(Self);
        Edit.Parent :
    = Self;
        Edit.SetBounds(Random(ClientWidth
    -w), Random(ClientHeight-h), w, h);
        ObjList.Add(Edit);
      
    end;

      
    {2 秒钟后删除一个}
      Sleep(
    2000);
      ObjList.Delete(
    0);

      
    {2 秒钟后提取一个, 让被提取的变红; 提取的对象不会被自动释放的}
      Sleep(
    2000);
      Edit :
    = ObjList.Extract(ObjList[0]);
      Edit.Color :
    = clRed;
      Edit.Repaint;

      
    //ObjList.OwnsObjects := False; {如果这样, 对象退出列表是也不会自动释放}

      
    {2 秒钟后销毁列表; 列表中的对象也会随之释放}
      Sleep(
    2000);
      ObjList.Free;
    end;

    end.
  • 相关阅读:
    mysql的配置和安装
    ubuntu开机后无法进入桌面
    python的学习笔记(1)之json序列化的使用(2)
    python的学习笔记(1)之json序列化的使用(1)
    python的学习笔记(0)之循环的使用1
    java基础面试题10--String--统计大串中小串出现的次数
    13 ftp软件安装过程
    12 软件安装的两种方式
    rpm方式安装MySQL5.1.73
    java基础面试题9--数组高级-二分查找
  • 原文地址:https://www.cnblogs.com/jxgxy/p/1600938.html
Copyright © 2011-2022 走看看