FR中怎样动态改变Memo位置 找免费财务软件
Memo1
Memo2
Memo3
Memo4
如果Memo1无内容,则Memo2、Memo3、Memo4的位置逐级向上递增一个,即Memo2的位置上升到Memo1的位置,Memo3的位置上长到Memo2的位置;
如果Memo2和Memo3都无内容,则Memo4上升到Memo2的位置,即如果Memo无内容,有内容的Memo一直上升到上一个有内容的Memo的下边。
请教各位高手,在FR中如何实现。
2楼: 放一个Penal到窗体上,然后所有的Memo放到Panel上,Align属性为alTop,没有内容的Memo都隐藏起来呗 如免费网吧管理软件
3楼: TO:royal1442
我说的是在FastReport中的Memo
4楼: FastReport我不熟悉。不好意思。
5楼: var H: double;
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)
6楼: TO:Leadyli
你的代码无法解决Memo1和Memo3同时为空
或 Memo2和Memo4同时为空时的Memo位置问题
能否告诉你的EmaiL,好和你联系
仓库管理软件版7楼: 忘了:当Memo的Text为空时,要把当前Memo的Visable设为False;
我的邮箱:leadyli@163.com
8楼: TO:Leadyli
还是不行,当memo1和memo3同时为空时,字段会重叠。
9楼: var H: double;
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;
10楼: 还是不行
11楼: 上面的方法不對。
先要對四個控件的Top,Height,Width記錄下來,然後再建立一下變量Count:=4;
這個變量是每個控件有無數據時是否減1,然後取相關的Top,Height,Width
這樣就很方面的實現了。
12楼: 我觉得用动态创建Memo来实现会简单些。 如免费财务软件
13楼: 我已实现,谢谢各位
仓库管理软件版14楼: 多人接受答案了。