powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
25 сообщений из 220, страница 8 из 9
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229658
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДwadmanпропущено...

gpi всё объяснил. Так и есть, под отладчиком эта (и любые другие) гадость вылазит, а без него ошибки складываются в
Код: pascal
1.
2.
3.
4.
      except
        on E: Exception do
          FErrors.Add(E.Message);
      end;




Ну, дык 19136748 .
Дак из под дельфи и запускал. :)
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229662
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanчччДа fr4 у тебя какой (минорной) версии?
4.14. У меня версия сильно патченная, потому с некоторых пор перестал обновлять. Дорого выходит.
У меня - 4.11.
Как-то раньше бездумно обновлял по мере выхода, пока ребята их FR то ли какие-то паблишед проперти убрали, то ли переименовали их.
У клиентов сразу шаблоны отчетов грузиться перестали. Скандал и гемор.
Я и оставил все на последней рабочей версии.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229664
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanчччДпропущено...


Ну, дык 19136748 .
Дак из под дельфи и запускал. :)

Хм. А я даже не знаю, как из-под Delphi запустить без отладчика. Вообще, какой смысл в таком запуске?
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229668
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДя даже не знаю, как из-под Delphi запустить без отладчика.
Шутишь? Run с жучком - дебаг, без жучка - просто run.
чччДВообще, какой смысл в таком запуске?
Полюбоваться красотой, радость от созерцания которой разделят с тобой пользователи.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229675
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanчччДя даже не знаю, как из-под Delphi запустить без отладчика.
Шутишь? Run с жучком - дебаг, без жучка - просто run.
чччДВообще, какой смысл в таком запуске?
Полюбоваться красотой, радость от созерцания которой разделят с тобой пользователи.

Чтобы "заглушенные" в блоках except-end эксцепшны не раздражали?
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229678
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДЧтобы "заглушенные" в блоках except-end эксцепшны не раздражали?
Как минимум. Потому что глушу обычно разумно и нужна реакция не отличная от реальной.
А реальность (моя) такова, что вылетевший эксепшн, такая зараза, занимает время, которое очень критично.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229680
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanТак и есть, под отладчиком эта (и любые другие) гадость вылазит, а без него ошибки складываются в
Код: pascal
1.
2.
3.
4.
      except
        on E: Exception do
          FErrors.Add(E.Message);
      end;

так и есть, та самая ублюдочность обработки исключений
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39229687
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanчччДЧтобы "заглушенные" в блоках except-end эксцепшны не раздражали?
Как минимум. Потому что глушу обычно разумно и нужна реакция не отличная от реальной.
А реальность (моя) такова, что вылетевший эксепшн, такая зараза, занимает время, которое очень критично.
Понятно. Я отлаживал протокол связи - тоже не до отладчика было. Пока пройдешься отладчиком, корреспондент принимает решение об обрыве связи по таймауту. Потом настройки специальные сделал, "замедлив время". Ну или логирование использовал.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230284
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barmaley57Было дело - обещали в 5-ке аналог DBGrid'а. Чтобы можно было просто кинуть на бэнд готовую таблицу из подготовленного датасета и по-быстрому её подправить. Уж очень уныло раскидывать руками колонки.
Сделали?
Немного не то, но в дереве данных можно выделять нужные объекты и перетаскивать их(группой). Подходит для стандартных отчетов и упрощает создание полей и связь их с данными.

В будущем планируется разный вид расположения при создании таких полей(список, сетка).

vavanFast Reports, Inc.if you are already was our customer and got this mail with new login please write us and we will merge your accounts:
http://support.fast-report.com/tickets/new?subject=merge_my_two_accounts есть смысл сливать аккаунты?
Для .NET версии да, т.к. подписка может быть куплена на другой аккаунт через партнеров.
И, конечно, вам будет просто удобно иметь все продукты в одной записи.

wadmanКстати, прекрасный код!
Код: pascal
1.
2.
3.
4.
5.
procedure TfrxDesignerForm.TimerTimer(Sender: TObject);
begin
  PasteCmd.Enabled := FClipboard.PasteAvailable or (FPage = nil);

end;


Нужно будет как-нибудь рассказать им про TActionList.OnUpdate...
Посмотрите откуда вызывается DoActionIdle в Delphi 7 и реализацию TfrxClipboard.GetPasteAvailable.
после этого , код уже не должен казаться таким смешным ;)


Исключение дублирования имени можно добавить в список исключения отладчика, больше оно беспокоить под отладкой не будет.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230509
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsДля .NET версии дав моем случае речь о vcl, спасибо за отклик на этот вопрос, хотелось бы и на другой
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230523
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsПосмотрите откуда вызывается DoActionIdle в Delphi 7 и реализацию TfrxClipboard.GetPasteAvailable.
после этого , код уже не должен казаться таким смешным ;)
Вызывается из Idle, как и в XE2-3.
Аргумент-то в чем, если не секрет?
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230585
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavanFastReportsДля .NET версии дав моем случае речь о vcl, спасибо за отклик на этот вопрос, хотелось бы и на другой
По поводу обработки исключений ?
А что именно не нравится кроме duplicate name исключения ?

wadmanFastReportsПосмотрите откуда вызывается DoActionIdle в Delphi 7 и реализацию TfrxClipboard.GetPasteAvailable.
после этого , код уже не должен казаться таким смешным ;)
Вызывается из Idle, как и в XE2-3.
Аргумент-то в чем, если не секрет?
Вызов GetPasteAvailable постоянно в цикле простоя, что может нагружать процессор(на 4х ядерном процессоре это конечно будет не заметно, но не везде такие, даже в наше время).
С какой-то версии(точно не помню с какой), они ввели св-во ActionUpdateDelay. Которое позволяет установить интервал вызова DoActionIdle.

А так, опрос буфер обмена и поиск по нему будет идти постоянно, что явно лишнее. У нас он вызывается раз в секунду.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230602
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsПо поводу обработки исключений ?именно
FastReportsчто именно не нравитсяк сожалению среди ныне видимых тикетов я не вижу старых обращений. у вас сохранены все старые?
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230614
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsВызов GetPasteAvailable постоянно в цикле простоя, что может нагружать процессор(на 4х ядерном процессоре это конечно будет не заметно, но не везде такие, даже в наше время).
С какой-то версии(точно не помню с какой), они ввели св-во ActionUpdateDelay. Которое позволяет установить интервал вызова DoActionIdle.
:) Предлагаю нагрузить этот пример.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Clipbrd, ActnList, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ActionList1: TActionList;
    Action1: TAction;
    procedure Action1Execute(Sender: TObject);
    procedure ActionList1Update(Action: TBasicAction;
      var Handled: Boolean);
  private
    function GetPasteAvailable: boolean;
    { Private declarations }
  public
    { Public declarations }
    property PasteAvailable: boolean read GetPasteAvailable;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.GetPasteAvailable: boolean;
begin
  try
    Result := Clipboard.HasFormat(CF_TEXT) and
      (Pos('#FR3 clipboard#', Clipboard.AsText) = 1);
  except
    Result := False;
  end;
end;

procedure TForm1.Action1Execute(Sender: TObject);
begin
  ShowMessage('Test');
end;

procedure TForm1.ActionList1Update(Action: TBasicAction;
  var Handled: Boolean);
begin
  Action1.Enabled := PasteAvailable;
  Handled := true;
end;

end.

...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230615
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsВызов GetPasteAvailable
Я к тому, что handled там не зря имеется и не зря он в дефолте false.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230728
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanFastReportsВызов GetPasteAvailable
Я к тому, что handled там не зря имеется и не зря он в дефолте false.
Это я упомянул не просто так "на 4х ядерном процессоре это конечно будет не заметно, но не везде такие, даже в наше время"
handled там совсем для другого, он не передает вызов события дальше другим элементам ActionList. Что и описано в документации.
Событие все так же будет вызываться в цикле простоя - бесконечно.

Легко могу нагрузить, достаточно скопировать в буфер обмена несколько мегабайт текста (сереализованные объекты передаются как раз в виде текста и картинки тоже ...).
Вот результат на двух-ядерном ноутбуке.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230740
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanFastReportsВызов GetPasteAvailable
Я к тому, что handled там не зря имеется и не зря он в дефолте false.
Это я упомянул не просто так "на 4х ядерном процессоре это конечно будет не заметно, но не везде такие, даже в наше время"
handled там совсем для другого, он не передает вызов события дальше другим элементам ActionList. Что и описано в документации.
Событие все так же будет вызываться в цикле простоя - бесконечно.

Легко могу нагрузить, достаточно скопировать в буфер обмена несколько мегабайт текста (сереализованные объекты передаются как раз в виде текста и картинки тоже ...).
Вот результат на двух-ядерном ноутбуке. Скрин1

лог профайлера, при буфере в бару байт на i7. Код чуть модифицирован, чтобы было понятно.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Clipbrd, ActnList, StdCtrls, System.Actions, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ActionList1: TActionList;
    Action1: TAction;
    Timer1: TTimer;
    procedure Action1Execute(Sender: TObject);
    procedure ActionList1Update(Action: TBasicAction;
      var Handled: Boolean);
    procedure Timer1Timer(Sender: TObject);
  private
    function GetPasteAvailable: boolean;
    function GetPasteAvailableByTimer: boolean;
    { Private declarations }
  public
    { Public declarations }
    property PasteAvailable: boolean read GetPasteAvailable;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.GetPasteAvailable: boolean;
begin
  try
    Result := Clipboard.HasFormat(CF_TEXT) and
      (Pos('#FR3 clipboard#', Clipboard.AsText) = 1);
  except
    Result := False;
  end;
end;

function TForm1.GetPasteAvailableByTimer: boolean;
begin
  try
    Result := Clipboard.HasFormat(CF_TEXT) and
      (Pos('#FR3 clipboard#', Clipboard.AsText) = 1);
  except
    Result := False;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Action1.Enabled := GetPasteAvailableByTimer;
end;

procedure TForm1.Action1Execute(Sender: TObject);
begin
  ShowMessage('Test');
end;

procedure TForm1.ActionList1Update(Action: TBasicAction;
  var Handled: Boolean);
begin
  Action1.Enabled := PasteAvailable;
  Handled := true;
end;

end.



За 15 секунд работы приложения , было 1440 обращений к буферу в OnUpdate против 15 по таймеру.
А теперь возьмите буфер в несколько МБ и слабый CPU.

Скрин2
Т.ч. я все так же не вижу ничего смешного в этом коде, в дизайнере.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230743
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vavan,

При переносе из старой базы не все могло перенестись корректно.
Если напомните ключевое слово или имя в системе, могу поискать.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230752
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReports, номер именно того тикета я не припомню но вот ссыла на один из немногих других того же аккаунта (директорского)
если сможете достать все с того же акка то без проблем найдете нужный
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230755
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsТ.ч. я все так же не вижу ничего смешного в этом коде, в дизайнере.
Он еще смешнее, чем я думал... Действительно на десятке мегабайт начинается полная лажа.
Дарю идею:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Clipbrd, ActnList, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ActionList1: TActionList;
    Action1: TAction;
    procedure Action1Execute(Sender: TObject);
    procedure ActionList1Update(Action: TBasicAction;
      var Handled: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    function GetPasteAvailable: boolean;
    { Private declarations }
  public
    { Public declarations }
    property PasteAvailable: boolean read GetPasteAvailable;
  end;

var
  Form1: TForm1;
  CF_FASTREPORT: word;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.GetPasteAvailable: boolean;
begin
  try
    Result := Clipboard.HasFormat(CF_FASTREPORT);
  except
    Result := False;
  end;
end;

procedure TForm1.Action1Execute(Sender: TObject);
begin
  ShowMessage('Test');
end;

procedure TForm1.ActionList1Update(Action: TBasicAction;
  var Handled: Boolean);
begin
  Action1.Enabled := PasteAvailable;
  Handled := true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CF_FASTREPORT := RegisterClipboardFormat('FAST_REPORT');
end;

end.

...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230822
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Отличная идея , останется только портировать ее на OSX и Linux

Да и сам факт вызова OnUpdate более 1000 раз за 10 секунд вас не смущает ?
Ведь никто не знает что в будущем еще нужно будет обновлять и какой код туда вставить.
Далеко не все, реализации по-умолчанию, что есть в VCL стоит воспринимать как табу в разработке под него. А если учесть что в каждой версии есть свое... Хорошо писать конечное приложение под конкретной версией среды, не нужно беспокоится о всем "зоопарке" старых и новых версий.
Как я писал выше ActionUpdateDelay было добавлено не просто так , в сам фремворк, уж слишком часто оно вызывается.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230845
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsОтличная идея , останется только портировать ее на OSX и Linux
Лень портировать или там программисты не предусмотрели функционала определения типа информации в буфере? Остается только открывать его, лочить и полностью вытягивать информацию?
FastReportsДа и сам факт вызова OnUpdate более 1000 раз за 10 секунд вас не смущает ?
Нет. Да и это при активном пользовании приложением.
Еще идея: WM_CLIPBOARDUPDATE , тут таймер совсем не нужен и дергаться будет по необходимости.

Может позовете программиста? Накидаю еще косячков. :)
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39230904
FastReports
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanЛень портировать или там программисты не предусмотрели функционала определения типа информации в буфере? Остается только открывать его, лочить и полностью вытягивать информацию?

Плодить IFDEF , там , где они не нужны. У нас и так этого добра хватает.

wadmanНет.

Тогда, вопросов больше не имею !
Если вас не смущают такие цифры. Никогда нельзя быть уверенным , кто после вас придет, и какой код туда добавит(или даже тот же разработчик, через N-лет). А потом сиди и думай, почему твое приложение в простое отжирает CPU.

Напомнило мне Application.ProcessMessages которое в FMX под OSX давало неслабую задержку, и вместо синхронизации интерфейсов с основным потоком, получаем тормоза. Оказалось там стоит принудительная задержка (если память не изменяет начиная XE5 и по сей день).

Это я к чему? а к тому, что использование некоторых "стандартных" вещей из фремворка, может оказаться палкой в колесах через время.
wadmanДа и это при активном пользовании приложением.

Как раз таки наоборот, вызывается, когда цикл сообщений простаивает.
Как вы там написали, "Может позовете программиста? " ;)
И это не говорит, что приложение ничего в этот момент не делает, просто не получает сообщений(а это может довать доп нагрузку, когда интерфейс простаивает , а потоки работают).
Зачем сознательно такое делать ?

wadmanЕще идея: WM_CLIPBOARDUPDATE , тут таймер совсем не нужен и дергаться будет по необходимости.

Идея тоже неплохая, но снова, платформо-зависимая.
wadmanМожет позовете программиста? Накидаю еще косячков. :)
Не стесняйтесь, кидайте.
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39231002
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReportsПлодить IFDEF , там , где они не нужны. У нас и так этого добра хватает.
Еще парочка на что повлияет, кроме исключения выполнения лишнего кода?
FastReportsНапомнило мне Application.ProcessMessages которое в FMX под OSX давало неслабую задержку
Давно пора перенести формирование отчета в другой поток или в несколько.
FastReportsКак раз таки наоборот, вызывается, когда цикл сообщений простаивает.
За почти 5 минут простоя приложения счетчик вызовов actionupdate зашкалил аж до 229.
FastReportsИдея тоже неплохая, но снова, платформо-зависимая.
Ну да, это по нашему, залезть на другие платформы, чтобы потом сокрушаться об этом. :)
...
Рейтинг: 0 / 0
Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
    #39231025
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanНу да, это по нашему, залезть на другие платформы, чтобы потом сокрушаться об этом. :)

Последствия несистемного подхода к мультиплатформенности.
При выделении platform services таких проблем не возникает
...
Рейтинг: 0 / 0
25 сообщений из 220, страница 8 из 9
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Релиз FastReport 5.5 для Lazarus и RAD Studio (Delphi, C++Builder)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]