Показать сообщение отдельно
  #7  
Старый 07.03.2012, 09:44
bambooshoot bambooshoot вне форума
Прохожий
 
Регистрация: 20.03.2011
Сообщения: 30
Репутация: 10
По умолчанию

Ok
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure RichEditChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
 i, j : integer;
 RE : array [1..50] of TRichEdit;

procedure TForm1.Button1Click(Sender: TObject);// создание 
begin
      i:= i+1;
       RE[i]:= TRichEdit.Create(Form1);
         RE[i].Parent:=Form1;
           RE[i].Top:=i*21;
             RE[i].Left:=8;
               RE[i].Width:=129;
                 RE[i].Height:=22;
         j:=j+1;
          RE[j]:= TRichEdit.Create(Form1);
           RE[j].Parent:=Form1;
            RE[j].Top:=j*21;
              RE[j].Left:=136;
                RE[j].Width:=465;
                 RE[j].Height:=22;
                   RE[j].OnChange:=RichEditChange;
end;

procedure TForm1.RichEditChange(Sender: TObject);
var
fr : TFormatRange;
r : TRect;
b : TBitmap;
RE : array [1..50] of TRichEdit;
begin
 b:=TBitmap.create;
  r:= rect(0, 0, RE[j].Width*screen.Pixelsperinch,   RE[j].Height*screen.Pixelsperinch);
    fr.hdc := b.canvas.handle;
     fr.hdctarget:=b.canvas.handle;
      fr.rc:=r;
        fr.rcpage:=r;
         fr.chrg.cpMin:=0;
          fr.chrg.cpMax:=-1;
            Sendmessage(RE[j].handle,EM_FORMATRANGE,1,longint(@fr));
       RE[j].Height:=Trunc(screen.Pixelsperinch*fr.rc.bottom/1440)+8;
      Sendmessage(RE[j].handle,WM_VSCROLL,SB_TOP,0);
     RE[i].Height:=RE[j].Height;
    b.Destroy;
end;
end.
Ответить с цитированием