Bug. Свойство StretchMode у DMPMemo
Доброго дня.
1. Устанавливаю у MasterData1 stetched = True;
2. Для все мемо лежащих на MasterData1 установлено StretchMode = smMaxHeight
3. У одного мемо StretchMode = smActualHeight, вот он и меняет свою высоту
Все остальные мемо (п. 2) высоту не меняют.
(если в мемо статический текст, а не выражение то все ок, но это как правило не требуется)
И еще, попутно, беру мышкой из дерева ("Поля базы данных"), драг дроп на
страницу DMPMemo1. Смотрим Width = 8, а реально поле в базе 10.
Почему так?
1. Устанавливаю у MasterData1 stetched = True;
2. Для все мемо лежащих на MasterData1 установлено StretchMode = smMaxHeight
3. У одного мемо StretchMode = smActualHeight, вот он и меняет свою высоту
Все остальные мемо (п. 2) высоту не меняют.
(если в мемо статический текст, а не выражение то все ок, но это как правило не требуется)
И еще, попутно, беру мышкой из дерева ("Поля базы данных"), драг дроп на
страницу DMPMemo1. Смотрим Width = 8, а реально поле в базе 10.
Почему так?
Комментарии
{ calculate the max height of the band }
maxh := 0;
for i := 0 to Band.Objects.Count - 1 do
begin
c := Band.Objects;
if c.Top + c.Height > maxh then
begin
maxh := c.Top + c.Height;
if (c is TfrxDMPMemoView) and (ftBottom in TfrxDMPMemoView©.Frame.Typ) then
maxh := maxh + fr1CharY;
end;
end;
if Band.Stretched then
Band.Height := maxh;
Если у нас (c is TfrxDMPMemoView) and (ftBottom in TfrxDMPMemoView©.Frame.Typ) = True при i = 0, то c.Top + c.Height > maxh всегда будет False, если тот мемо который ресайзится получается больше на 1 линию (17).
var IsDMPAndBottomFramed : Boolean;
{ calculate the max height of the band }
maxh := 0;
IsDMPAndBottomFramed := false;
for i := 0 to Band.Objects.Count - 1 do
begin
c := Band.Objects;
if c.Top + c.Height > maxh then
begin
maxh := c.Top + c.Height;
if (c is TfrxDMPMemoView) and (ftBottom in TfrxDMPMemoView©.Frame.Typ) then
IsDMPAndBottomFramed := true;
end;
end;
if IsDMPAndBottomFramed then
maxh := maxh + fr1CharY;
Может достаточно поставить if c.Top + c.Height >= maxh then, но это будет зависеть от константы размера строки 17.