как распечатать Tscrollbox через Fastreport

отредактировано May 2010 Раздел: FastReport 4.0
Есть Builder 2010, создал форму кинул на нее TScrollBox, в нем расположил кнопки, чекбоксы, имаджи и прочие элементы.
Вопрос: как с помощью FastReport просто распечатать весь ScrollBox1 на одну страницу.
Весь ScrollBox на экране не умещается, а прокручивается скролингами поэтому просто скопировать канву неполучается да и результат будет не тот.
Как его распечатать любым способом без танцев с бубнами?

Кстати, это мой первый опыт в распечатке с помощью FastReport поэтому поподробнее если можно :)

Комментарии

  • отредактировано 16:41
    Пока все думают попробывал скопировать конву через TScrollBox->PaintTo(...), но копируются только лабельки, а остальные элементы и их содержимое игнорируется.
    Может можно TScrollBox как-нибудь в метафайл скинуть а потом в FastReport подгрузить.
    Ну очень не хочется всю красоту TScrollBox повторять в FastReport :)

  • отредактировано 16:41
    Странный вопрос, а причём здесь FastReport. Наверное нужно обратиться в соответствующий форум (Builder или Delphi) и узнать как можно сохранить слепок в Bitmap, а потом уже пытаться вывести картинку в фаст.
  • отредактировано 16:41
    LadySahck написал: »
    Странный вопрос, а причём здесь FastReport. Наверное нужно обратиться в соответствующий форум (Builder или Delphi) и узнать как можно сохранить слепок в Bitmap, а потом уже пытаться вывести картинку в фаст.

    Я думал что в FastReport есть импорт не только из метафайла и др, но еще и что-то типа FastReport->Copy(ScrollBox).
    Проблему решил, но как то не очень красиво получилось :)
    Код скоро покажу, может кто чего поправит.
  • отредактировано 16:41
    Droid написал: »
    Я думал что в FastReport есть импорт не только из метафайла и др, но еще и что-то типа FastReport->Copy(ScrollBox).
    А ещё можно попросить разработчиков создать функции FastReport->Print(1000$) и FastReport->Print(1000евро) - очень полезные функции, и жаль, что нет :)
  • отредактировано 16:41
    LadySahck написал: »
    А ещё можно попросить разработчиков создать функции FastReport->Print(1000$) и FastReport->Print(1000евро) - очень полезные функции, и жаль, что нет :)
    Очень полезные функции, но думаю что разработчики сказали бы что таких функций нету. А вмоем случае так никто ничего по делу и не написал.
    Зато сам разобрался, правда не очень красиво (через сохранение в bmp-файл) :)
  • mvbmvb Казань
    отредактировано May 2010
    я делал так: рисовал форму в ФР, добавил нужные переменные, в программе присвоил контролам имена согласно переменных ФР, рекурсивно пробегал по всем контролам формы и инициализировал соотв. переменные ФР. Примерно так:
    type
        THackControl = class(TControl)
        end;
    
    procedure TfmStraxDeclaration.dlBitBtn1Click(Sender: TObject);
      procedure _addctrls(C: TWinControl);
      var I: Integer;
          n: string;
      begin
         for I := 0 to C.ControlCount - 1 do
         begin
          if (C.Controls[i] is TEdit) or (C.Controls[i] is TLabeledEdit) or
             (C.Controls[i] is TComboBox) or (C.Controls[i] is TJvDateEdit) then
          begin
            n := mvbUnDecorate(C.Controls[i].Name, 'ed', '');
            n := mvbUnDecorate(n, 'cmb', '');
            n := mvbUnDecorate(n, 'de', '');
            sd.data.Values[n] := THackControl(C.Controls[i]).Text;
          end;
          if C.Controls[i] is TWinControl then
           _addctrls(TWinControl(C.Controls[i]));
         end;
      end;
    begin
         sd.data.Values['strax_type'] := IntToStr(cmbStraxType.ItemIndex);
         _addctrls(Self);
    end;
    
    здесь, правда, я вначале в StringList загонял...

    P.S. Не совсем то, что хотел ТС, но как одно из решений...

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

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