Улучшение Дизайнера
Господа разработчики!
При рисовании отчетов много времени занимает выравнивание. Предлагаю добавить 2 кнопки:
1. Выстроить MEmo рядом друг с другом
Спасибо
При рисовании отчетов много времени занимает выравнивание. Предлагаю добавить 2 кнопки:
1. Выстроить MEmo рядом друг с другом
function TfrxDesignerForm.FindMinLeft(var aMv:array of TfrxView;tNo:TfrxComponent):TfrxView;
var i:integer;
lf:double;
t: TfrxView;
function FindInaMv(aMv:array of TfrxView;n:TfrxView):boolean;
var i:integer;
begin
Result:=false;
for i:=0 to High(aMv) do
if aMv[i]=n then
begin
Result:=true;
EXIT;
end;
end;
begin
Result:=NIL;
lf:=9999999;
for i := 0 to FSelectedObjects.Count - 1 do
begin
t := FSelectedObjects[i];
if not (rfDontMove in t.Restrictions)and (t<>tNo) and
(lf>TMfrxView(t).left) and not FindInaMv(aMv,t) then
begin
Result:=t;
lf:=TMfrxView(t).left;
end;
end;
end;
procedure TfrxDesignerForm.acSidebySideExecute(Sender: TObject);
var w:double;
aMv:array of TfrxView;
t: TfrxView;
begin
if (FSelectedObjects.Count < 2) then Exit;
// BeforeChange;
w:=0;
SetLength(aMv,0);
t:=TfrxView(55);
while (t<>NIL) do
begin
t:=FindMinLeft(aMv,nil);
if (t<>NIL) then
with TMfrxView(t) do
begin
left:=w;
w:=w+TMfrxView(t).width;
SetLength(aMv,High(aMv)+2);
aMv[High(aMv)]:=t;
end;
end;
Modified := True;
end;
2. Для формирования обобщенной ячейки шириной как несколько нижележащих (ячейка, которая будет растягиваться выбирается ПОСЛЕДНЕЙ)procedure TfrxDesignerForm.acW_WWExecute(Sender: TObject);
var
i: Integer;
c0: TfrxComponent;
x:Double;
aMv:array of TfrxView;
begin
if FSelectedObjects.Count < 2 then Exit;
c0 := FSelectedObjects[FSelectedObjects.Count-1];
if (rfDontSize in c0.Restrictions) then exit;
x:=0;
for i := 0 to FSelectedObjects.Count - 2 do
x:=x+TfrxComponent(FSelectedObjects[i]).width;
c0.width:=x;
c0.left:=TfrxComponent(FindMinLeft(amv,c0)).left ;
Modified := True;
end;
При каждой новой редакции приходится добавлять и перекомпилировать.Спасибо