FAST REPORT 动态添加 MEMO 的问题。 (150分)

  • 主题发起人 主题发起人 zhihuali
  • 开始时间 开始时间
Z

zhihuali

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下列方法在报表中动态添加一个 TfrMemoView 。问题:
1。如何将这个 MEMO 的四个边画线。
2。如何设置这个 MEMO 的 FONT 。
3。如何设置这个 MEMO 的文本对齐方式(靠左、靠右...)。
每个 50 分。(不要跟我说 DEMO 里面有,如果有,请说清楚是那一个 DEMO )
谢谢!
procedure AddMemoToReport;
var
Page : TfrPage;
V : TfrView;
begin
Page := DM.Report.Pages[0];

V := TfrMemoView.Create;
V.SetBounds(335, 320, 30, 20);
V.FillColor := clSilver;
V.Memo.Add('TEST');
Page.Objects.Add(V);
end;
 
分给大家分了吧 ,delphi 中是没有的,有空说不定末人就翻译了
 
这是简单示例,功能还有很多。


uses FR_Class, FR_View

procedure AddMemoToReport;
var
Page : TfrPage;
V : TfrView;
begin
Page := DM.Report.Pages[0];

V := frCreateObject(gtMemo, '');
V.SetBounds(335, 320, 30, 20);
V.FillColor := clSilver;
V.Memo.Add('TEST');
V.FrameTyp := GetFrameTyp('left,right,top,bottom'); //画框线
if V is Tfrmemoview then
begin
Tfrmemoview(v).Alignment:= GetAlign('center','vermid'); //设置对齐
Tfrmemoview(v).Font.size:=12; //字体
Tfrmemoview(v).LineSpacing:=1; //行间距
Tfrmemoview(v).CharacterSpacing:=2; //字间距
end;
Page.Objects.Add(V);
end;


function GetFrameTyp(frame:string): Integer;
begin
Result := 0;
if pos('Left',frame)>0 then
Result := frftLeft;
if pos('Right',frame)>0 then
Result := Result + frftRight;
if pos('Top',frame)>0 then
Result := Result + frftTop;
if pos('Bottom',frame)>0 then
Result := Result + frftBottom;
end;


function GetAlign(align,veralign:string):integer;
begin
Result := 0;
if Align = 'left' then //水平居左
Result := frtaLeft
else if Align ='Right' then
Result := frtaRight
else if Align = 'Center' then
Result := frtaCenter;

if VerAlign = 'VerTop' then //垂直居上
Result := Result
else if VerAlign = 'VerMid' then
Result := Result+frtaMiddle
else if VerAlign = 'VerBot' then
Result := Result+frtaDown;
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
937
SUNSTONE的Delphi笔记
S
后退
顶部