news.combit.net
17-Aug-2005, 03:07 PM
Hi Fabio,
we now have buyed EurekaLog 5 and it is really nice to work with it. But we
have some suggestions we would like to ask you to implement because it is a
feature that could be interesting for all EurekaLog users, otherwise we will
implement our own notification handling.
1. Exception Class Filter for TEurekaLog
I use TEurekaLog Component (created and destroyed in
initialization/finalization part) in my Reporting Framework Unit that I use
in many projects, to catch the specific report designer exceptions with my
Exception filter (TEurekaLog Component). Now the problem is, that there is
no way to enforce, that:
- only this ExceptionNotiy is fired for the specified Exception class.
- to interrupt EurekaLog to not notify other TEurekaLog components.
Therefore the following feature would be very mighty:
1. New ExceptionClass Property to assign an Exception Class in the
TEurekaLog Component.
2. If the ExceptionClass Property is Assigned, then the handlers are only
notified, when the exception class of the current exception matches the
ExceptionClass Property.
3. If an OnExceptionNotify handler is notified, it should be possible to
prevent notifying the other TEurekaLog Components.
4. While EurekaLog iterates from EurekaLogList.Count -1 downto 0 the sort
order of the EurekaLogList is relevant. Because all TEurekaLog Components
with assigned ExceptionClass property should be handled before the the
components with an unassigned ExceptionClass property. This would guarantee,
that the Components are notified in the correct order regardless from there
creation order (resort the EurekaLogList when a ExceptionClass property has
changed).
Example:
procedure CallExceptionNotify;
var
n: Integer;
continueNotify: Boolean;
begin
for n := EurekaLogList.Count - 1 downto 0 do begin
if (Assigned(EurekaLogList[n].OnExceptionNotify))
and (not Assigned(EurekaLogList[n].Filter) or
(Global_ExceptionRecord.ExceptionObject is
EurekaLogList[n].ExceptionClass)
then
EurekaLogList[n].OnExceptionNotify(Global_ExceptionRecord,
Global_Handled,continueNotify);
If not continueNotify then Break;
if (Assigned(ExceptionNotify)) then
ExceptionNotify(Global_ExceptionRecord, Global_Handled); end;
Best Regards,
Michael
we now have buyed EurekaLog 5 and it is really nice to work with it. But we
have some suggestions we would like to ask you to implement because it is a
feature that could be interesting for all EurekaLog users, otherwise we will
implement our own notification handling.
1. Exception Class Filter for TEurekaLog
I use TEurekaLog Component (created and destroyed in
initialization/finalization part) in my Reporting Framework Unit that I use
in many projects, to catch the specific report designer exceptions with my
Exception filter (TEurekaLog Component). Now the problem is, that there is
no way to enforce, that:
- only this ExceptionNotiy is fired for the specified Exception class.
- to interrupt EurekaLog to not notify other TEurekaLog components.
Therefore the following feature would be very mighty:
1. New ExceptionClass Property to assign an Exception Class in the
TEurekaLog Component.
2. If the ExceptionClass Property is Assigned, then the handlers are only
notified, when the exception class of the current exception matches the
ExceptionClass Property.
3. If an OnExceptionNotify handler is notified, it should be possible to
prevent notifying the other TEurekaLog Components.
4. While EurekaLog iterates from EurekaLogList.Count -1 downto 0 the sort
order of the EurekaLogList is relevant. Because all TEurekaLog Components
with assigned ExceptionClass property should be handled before the the
components with an unassigned ExceptionClass property. This would guarantee,
that the Components are notified in the correct order regardless from there
creation order (resort the EurekaLogList when a ExceptionClass property has
changed).
Example:
procedure CallExceptionNotify;
var
n: Integer;
continueNotify: Boolean;
begin
for n := EurekaLogList.Count - 1 downto 0 do begin
if (Assigned(EurekaLogList[n].OnExceptionNotify))
and (not Assigned(EurekaLogList[n].Filter) or
(Global_ExceptionRecord.ExceptionObject is
EurekaLogList[n].ExceptionClass)
then
EurekaLogList[n].OnExceptionNotify(Global_ExceptionRecord,
Global_Handled,continueNotify);
If not continueNotify then Break;
if (Assigned(ExceptionNotify)) then
ExceptionNotify(Global_ExceptionRecord, Global_Handled); end;
Best Regards,
Michael