Hi Sergey,
That sounds great then. I realize this may be an advanced issue that not many people will use, but once its there, people could use it for dynamically changing the font attributes in very interesting ways.
temporarily ignoring styles
Hi Sergey,
We have just upgraded to the newest Richview, and were wondering if you managed to implement this feature in the intervening years.
The last suggestion you came up with, onAfterApplyStyleToCanvas would be a big help for us.
As a reminder, on an item by item basis, we want to be able to use the StyleNo that is part of the item, or provide a new StyleNo. We have to be consistent in terms of printing, editing, viewing etc.
The other alternative you suggested was to have an OnAfterApplyStyleToCanvas, which would also allow us to modify the canvas properties directly for the item.
Were any of those implemented yet?
We have just upgraded to the newest Richview, and were wondering if you managed to implement this feature in the intervening years.
The last suggestion you came up with, onAfterApplyStyleToCanvas would be a big help for us.
As a reminder, on an item by item basis, we want to be able to use the StyleNo that is part of the item, or provide a new StyleNo. We have to be consistent in terms of printing, editing, viewing etc.
The other alternative you suggested was to have an OnAfterApplyStyleToCanvas, which would also allow us to modify the canvas properties directly for the item.
Were any of those implemented yet?
-
- Site Admin
- Posts: 17559
- Joined: Sat Aug 27, 2005 10:28 am
- Contact:
Hi Sergey,
In the OnAfterApplyStyleToCanavs event, I think that I would need the itemNo, StyleNo, rvData
Maybe it would be easier to have an
OnBeforeApplyStyleToCanvas(itemNo:integer; var StyleNo:integer; rvData:TCustomRvData);;;
That way, I could change the StyleNo before its applied to the canvas....
Another point is that I am unclear how this would work with the labels.
In TRvLabelItem.DoPaint, you have the following code
Would the on(After/Before)ApplyStyleToCanvas be called as part of the ApplyStyle or ApplyStyleColor or both. I guess it would be a bit of work on your part because you have to add an ItemNo parameter to ApplyStyle and ApplyStyleColor which may affect a lot of things.
However, even after that, you are setting the Canvas color on its own. If we change the canvas in OnAfterApplyStyleToCanvas then you will overwrite our change with the Brush Style and Brush Color....
I can see this may be something that is difficult to implement correctly. If this is the case just let me know. I can just copy your TRvLabelItem and make my own with its own OnGetStyleNo event.
In the OnAfterApplyStyleToCanavs event, I think that I would need the itemNo, StyleNo, rvData
Maybe it would be easier to have an
OnBeforeApplyStyleToCanvas(itemNo:integer; var StyleNo:integer; rvData:TCustomRvData);;;
That way, I could change the StyleNo before its applied to the canvas....
Another point is that I am unclear how this would work with the labels.
In TRvLabelItem.DoPaint, you have the following code
Code: Select all
RVStyle.ApplyStyle(Canvas, TextStyleNo, rvbdUnspecified,
rvidsCanUseCustomPPI in State, nil, False);
RVStyle.ApplyStyleColor(Canvas,TextStyleNo,TextDrawState, False, ColorMode);
if not (rvidsSelected in State) and
((Style.FieldHighlightType=rvfhAlways) or
((Style.FieldHighlightType=rvfhCurrent) and
([rvidsCurrent,rvidsControlFocused]*State=[rvidsCurrent,rvidsControlFocused]))) then begin
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := Style.FieldHighlightColor;
end;
However, even after that, you are setting the Canvas color on its own. If we change the canvas in OnAfterApplyStyleToCanvas then you will overwrite our change with the Brush Style and Brush Color....
I can see this may be something that is difficult to implement correctly. If this is the case just let me know. I can just copy your TRvLabelItem and make my own with its own OnGetStyleNo event.
-
- Site Admin
- Posts: 17559
- Joined: Sat Aug 27, 2005 10:28 am
- Contact: