Улучшение Дизайнера

отредактировано September 2009 Раздел: FastReport 4.0
Господа разработчики!
При рисовании отчетов много времени занимает выравнивание. Предлагаю добавить 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;
При каждой новой редакции приходится добавлять и перекомпилировать.
Спасибо

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.