FR中怎样动态改变Memo位置(100分)

  • 主题发起人 主题发起人 jhlz1968
  • 开始时间 开始时间
J

jhlz1968

Unregistered / Unconfirmed
GUEST, unregistred user!
在FR中,有四个Memo,排列如下:
Memo1
Memo2
Memo3
Memo4
如果Memo1无内容,则Memo2、Memo3、Memo4的位置逐级向上递增一个,即Memo2的位置上升到Memo1的位置,Memo3的位置上长到Memo2的位置;
如果Memo2和Memo3都无内容,则Memo4上升到Memo2的位置,即如果Memo无内容,有内容的Memo一直上升到上一个有内容的Memo的下边。
请教各位高手,在FR中如何实现。
 
放一个Penal到窗体上,然后所有的Memo放到Panel上,Align属性为alTop,没有内容的Memo都隐藏起来呗
 
TO:royal1442
我说的是在FastReport中的Memo
 
FastReport我不熟悉。不好意思。
 
var H:do
uble;
begin
H := Memo2.Top-Memo1.Top;
if Memo1.Text = '' then
begin
Memo1.Visible := False;
Memo2.Top := Memo2.Top-H;
Memo3.Top := Memo3.Top-H;
Memo4.Top := Memo4.Top-H;
end;
if Memo2.Text = '' then
begin
Memo3.Top := Memo3.Top-H;
Memo4.Top := Memo4.Top-H;
end;
if Memo3.Text = '' then
begin
Memo4.Top := Memo4.Top-H;
end;
end;
Page--BeforePrint事件(FastReport3.0)
 
TO:Leadyli
你的代码无法解决Memo1和Memo3同时为空
或 Memo2和Memo4同时为空时的Memo位置问题
能否告诉你的EmaiL,好和你联系
 
忘了:当Memo的Text为空时,要把当前Memo的Visable设为False;
我的邮箱:leadyli@163.com
 
TO:Leadyli
还是不行,当memo1和memo3同时为空时,字段会重叠。
 
var H:do
uble;
begin
H := Memo2.Top-Memo1.Top;
if Memo1.Text = '' then
begin
Memo1.Visible := False;
if Memo2.Text <> '' then
Memo2.Top := Memo2.Top-H;
if Memo3.Text <> '' then
Memo3.Top := Memo3.Top-H;
if Memo4.Text <> '' then
Memo4.Top := Memo4.Top-H;
end;
if Memo2.Text = '' then
begin
Memo2.Visible := False;
if Memo3.Text <> '' then
Memo3.Top := Memo3.Top-H;
if Memo4.Text <> '' then
Memo4.Top := Memo4.Top-H;
end;
if Memo3.Text = '' then
begin
Memo3.Visible := False;
if Memo4.Text <> '' then
Memo4.Top := Memo4.Top-H;
end;
Memo4.Visible := Memo4.Text <> '';
end;
 
还是不行
 
上面的方法不對。
先要對四個控件的Top,Height,Width記錄下來,然後再建立一下變量Count:=4;
這個變量是每個控件有無數據時是否減1,然後取相關的Top,Height,Width
這樣就很方面的實現了。
 
我觉得用动态创建Memo来实现会简单些。
 
我已实现,谢谢各位
 
多人接受答案了。
 
后退
顶部