Показать сообщение отдельно
  #7  
Старый 02.05.2013, 11:00
Аватар для 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, ComCtrls;

type
  TRichEditThread = class(TThread)
  private
    FRichEdit: TRichEdit;
    FNum: Integer;
    FColor: TColor;
    procedure AddToRichEdit;
  protected
    procedure Execute; override;
  public
    constructor Create(ARichEdit: TRichEdit; ANum: Integer; AColor: TColor);
  end;

  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TRichEditThread }

procedure TRichEditThread.AddToRichEdit;
begin
  FRichEdit.SelAttributes.Color:=FColor;
  FRichEdit.SelText:=' TRichEditThread = '+IntToStr(FNum)+' ';
end;

constructor TRichEditThread.Create(ARichEdit: TRichEdit; ANum: Integer; AColor: TColor);
begin
  inherited Create(True);
  FreeOnTerminate:=True;
  FRichEdit:=ARichEdit;
  FNum:=ANum;
  FColor:=AColor;
  Resume;
end;

procedure TRichEditThread.Execute;
begin
  while True do
  begin
    Sleep(100+Random(400));
    Synchronize(AddToRichEdit);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TRichEditThread.Create(RichEdit1, 1, clRed);
  TRichEditThread.Create(RichEdit1, 2, clGreen);
  TRichEditThread.Create(RichEdit1, 3, clBlue);
  TRichEditThread.Create(RichEdit1, 4, clYellow);
  TRichEditThread.Create(RichEdit1, 5, clLime);
  TRichEditThread.Create(RichEdit1, 6, clFuchsia);
end;

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