Показать сообщение отдельно
  #2  
Старый 31.10.2011, 11:53
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

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

type
  TRSSChannelItem = class(TCollectionItem)
  private
    FTitle: String;
    FLink: String;
    FDescription: String;
  public
    property Title: String read FTitle write FTitle;
    property Link: String read FLink write FLink;
    property Description: String read FDescription write FDescription;
    constructor Create(Collection: TCollection); override;
    destructor Destroy; override;
  end;

  TRSSChannel = class(TCollection)
  private
    function GetItem(Index: Integer): TRSSChannelItem;
    procedure SetItem(Index: Integer; Value: TRSSChannelItem);
  public
    property Items[Index: Integer]: TRSSChannelItem read GetItem write SetItem; default;
    constructor Create(ItemClass: TCollectionItemClass);
    function Add: TRSSChannelItem;
    function Insert(Index: Integer): TRSSChannelItem;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    FRSSChannel: TRSSChannel;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TRSSChannelItem }

constructor TRSSChannelItem.Create(Collection: TCollection);
begin
  inherited Create(Collection);
  FTitle:='';
  FLink:='';
  FDescription:='';
end;

destructor TRSSChannelItem.Destroy;
begin
  inherited Destroy;
end;

{ TRSSChannel }

constructor TRSSChannel.Create(ItemClass: TCollectionItemClass);
begin
  inherited Create(ItemClass);
end;

function TRSSChannel.GetItem(Index: Integer): TRSSChannelItem;
begin
  Result:=TRSSChannelItem(inherited GetItem(Index));
end;

procedure TRSSChannel.SetItem(Index: Integer; Value: TRSSChannelItem);
begin
  inherited SetItem(Index, Value);
end;

function TRSSChannel.Add: TRSSChannelItem;
begin
  Result:=TRSSChannelItem(inherited Add);
end;

function TRSSChannel.Insert(Index: Integer): TRSSChannelItem;
begin
  Result:=TRSSChannelItem(inherited Insert(Index));
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  FRSSChannel:=TRSSChannel.Create(TRSSChannelItem);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FRSSChannel.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with FRSSChannel.Add do
  begin
    Title:=IntToStr(GetTickCount);
    Link:='http://';
    Description:=IntToStr(Random(100));
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if FRSSChannel.Count>0 then
  begin
    with FRSSChannel.Items[0] do
      ShowMessage(Title+#13#10+Link+#13#10+Description);
    FRSSChannel.Delete(0);
  end;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием