
07.03.2012, 09:44
|
Прохожий
|
|
Регистрация: 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.
|