Generics Collections TObjectQueue (Delphi)
From RAD Studio Code Examples
Description
This example demonstrates the usage of the generic TObjectQueue class.
Code
type { Declare a new object type. } TNewObject = class private FName: String; public constructor Create(const AName: String); destructor Destroy; override; end; { TNewObject } constructor TNewObject.Create(const AName: String); begin FName := AName; end; destructor TNewObject.Destroy; begin { Show a message whenever an object is destroyed. } writeln('Object "' + FName + '" was destroyed!'); inherited; end; var Queue: TObjectQueue<TNewObject>; begin { Create a new Queue. } Queue := TObjectQueue<TNewObject>.Create; { Set the OwnsObjects to true--the Queue will free them automatically. } Queue.OwnsObjects := true; { Enqueue some items to the Queue. } Queue.Enqueue(TNewObject.Create('One')); Queue.Enqueue(TNewObject.Create('Two')); Queue.Enqueue(TNewObject.Create('Three')); { Dequeue an instance of the TNewObject class. Destructor should be called, because you have set the OwnsObjects to true. } Queue.Dequeue; { Destroy the Queue completely--more message boxes will be shown. } Queue.Free; readln; end.