Дизайнер 3.0

отредактировано 08:22 Раздел: FastReport 3.0
Приветствую!

1. Группировка - это, конечно, хорошо. Но вот если скопировать и вставить группу объектов, то вставленные элементы дополняют группу скопированных объектов. Т.е. берем двемемки, группируем, копируем, вставляем... имеем группу из четырех мемок ;) . IMHO надо корректировать GroupIndex при вставке!

2. Хит сезона - это Custom Modal Loop у дизайнера. Мало того, что дизайнер "лочит" только активное окно MDI приложения, что дает возможность переключиться на другую форму и не знать как вернуться на дизайнер, так еще и горячие клавиши вызывают действия в моей программе, а не экшены дизайнера. Например, F5 в моей программе открывает дочернее окно, а в дизайнере запуск отчета (до строки). Так вот в дизайнере, запущенном из программы F5 прячет дизайнер и показывает мое окно с которым можно работать (потом попробуй догадаться найти окно дизайнера, когда не можешь закрыть "залоченное" окно).
А если еще еще глянуть сюда http://www.zecos.com/maxspc то глюки не только в run-time, но еще и в Design-time (и не по вине maxspace-а!). Авторы, попробуйте поюзать триал, чтобы понять о чем я говорю. (Отказаться от maxspace прошу не предлагать ибо монитор 14" и 800х600 max).
Опять же вызовите дизайнер, переключитесь на дельфийскую форму и (есно, нечаянно) удалите frxReport, который в данный момент дизайнится...
Словом надо с этим что-то делать!!!
Помнится Александр говорил, что были какие-то проблемы со стандартным ShowModal... Какие именно? Может попытаемся совместно их решить, потому как с таким "решением" гемора намного больше.

Комментарии

  • отредактировано 08:22
    2) В 3.07 часть проблем решена, можно попробовать модальный режим.
    frxClass.pas:
    procedure TfrxReport.DesignReport;
    var
      p: TfrxPage;
      f: TForm;
    begin
    {$IFNDEF FR_VER_BASIC}
      if FDesigner <> nil then Exit;
      if frxDesignerClass <> nil then
      begin
        if PagesCount = 0 then
        begin
          if FDotMatrixReport then
            p := TfrxDMPPage.Create(Self) else
            p := TfrxReportPage.Create(Self);
          TfrxReportPage(p).SetDefaults;
          p.Name := 'Page1';
        end;
        FScript.ClearItems(Self);
    
        try
    {      f := Screen.ActiveForm;
          if f <> nil then
            f.Enabled := False;}
    
          FModified := False;
          FDesigner := TfrxCustomDesigner(frxDesignerClass.NewInstance);
          FDesigner.CreateDesigner(nil, Self);
          FDesigner.ShowModal;
    {      while not FDesigner.FModalFinished do
            Application.HandleMessage;}
        finally
          FDesigner.Free;
          FDesigner := nil;
        end;
    
    {    if f <> nil then
        begin
          f.Enabled := True;
          if (not (csDesigning in ComponentState)) and (f.Visible) then
            f.SetFocus;
        end;}
      end;
    {$ENDIF}
    end;
    

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

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