Generics Collections TObjectQueue (Delphi)
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.