Forum Replies Created
-
AuthorPosts
-
Thanks!
Hi Mark,
You did not do anything wrong. The demo was simply not updated for the 6.5.0 and 7.0.0 releases. Fortunately, it is easy to fix. For the UsingSystemStyle error add Self as a parameter:
if UsingSystemStyle( Self ) then …
After fixing the first one, you will get a couple more. Then you will get an error with the call to GetGradientPanelFrameColor. Again, you can simply add Self as the first parameter:
C := GetGradientPanelFrameColor( Self, FCurrentGCS )
Ray
Niels,
CodeSite 4 did provide a way to block individual message types in the Dispatcher. There was a Blocked Messages tab (along with a Blocked Categories) in the Settings. However, we removed it from CodeSite 5 because it was hardly ever used and added more complexity to the Dispatcher.
Your request is interesting in that you are blocking the message types from the logging side. However, your example use case is a bit confusing to me. In the RELEASE case, the logger itself is disabled so blocking message types would make no difference.
Could you elaborate more on how you would like to use this functionality?
Ray
David,
Interesting idea. No promises, but I’ll add it to the enhancement request list.
Ray
Hi David,
I sincerely apologize for the delay in responding to your message. In regards to the dispatching of messages, there are multiple connections that are involved and that may be impacting your observations.The connection is between your application code and the CodeSite Dispatcher. Communication on this connection defaults to WM_COPYDATA, but may also be TCP.
The next connection is between the CodeSite Dispatcher and the ultimate Destination (e.g. Live Viewer, Log File, Remote CodeSite Dispatcher).
For the Live Viewer, in CodeSite 5, the Dispatcher always uses WM_COPYDATA to send messages to the Live Viewer.
To send messages to a Remote Dispatcher, the local Dispatcher will of course use TCP to send those messages.
Where it can get a little confusing is that it is possible to have your logging class send its messages directly to a remote CodeSite Dispatcher using the ConnectUsingTcp(host,port) method.
So with all of that said, when it comes to measuring performance, it is important to define what is being measured. For example, in your test above with sending 10,000 messages, are you recording the time it takes to send those messages from your application code? Or, are you measuring the time it takes for all the messages to appear in the Live Viewer.
One of the primary benefits of the Dispatcher is that the work of “dispatching” the messages is offloaded onto the Dispatcher and not your application.
Ray
Hi Steve,
So sorry for the long delay. I hope you were able to locate the OnGetDayFormat event, which allows you to do what you wish. For example, the following event handler colors May 4 green in honor of Grogu (Baby Yoda).
procedure TForm7.RzCalendar1GetDayFormat(Sender: TObject; DayDate: TDateTime; Year, Month, Day: Word; var DayColor, DayFontColor: TColor; var DayFontStyle: TFontStyles); begin if ( Month = 5 ) and ( Day = 4 ) then begin DayColor := clGreen; DayFontColor := clWhite; end; end;
Ray
Thanks for the report. It will get fixed in CS6. I actually thought that was related to z-order problems that Delphi addressed a few versions back. Clearly something else is going on.
Ray
There will probably not be another release of CS5 before CS6 is released. Well, at least I hope that is the case.
Ray
April 13, 2021 at 1:34 am in reply to: TRzPageControl: Dynamic images on the tabs or their positions to use elsewhere #2449Hi,
Instead of trying to adorn the display of the tab with a separate image, what about changing the image that is referenced by the image list. For example, I created a new test project by dropping a TRzPageControl onto the main form. I then added 3 tab sheets. I then dropped a TImageList component onto the form. I then set the RzPageControl1.Images property to ImageList1. I then added an image to the image list. And next, I set the ImageIndex for the first tab so that the image in the image list was visible on the tab.
Next, I dropped a TRzButton on the form and created an OnClick event handler:procedure TForm2.RzButton1Click(Sender: TObject); var B: TBitmap; R: TRect; begin R := Rect( 0, 0, 16, 16 ); B := TBitmap.Create; B.Width := 16; B.Height := 16; B.Canvas.Brush.Color := clRed; B.Canvas.Pen.Color := clWhite; B.Canvas.Pen.Width := 1; B.Canvas.Rectangle( R ); B.Canvas.Font.Color := clWhite; B.Canvas.Brush.Style := bsClear; B.Canvas.TextRect( R, 2, 2, '23' ); ImageList1.Replace( 0, B, nil ); end;
The event handler creates a new image dynamically and then replaces the image in the image list. So, when you click on the button, the image for the first tab shows 23 in an image.
RayHi David,
I’ll add both of your requests to the list for CodeSite 6.
RayMarch 18, 2021 at 2:51 am in reply to: TRzPageControl: Dynamic images on the tabs or their positions to use elsewhere #2421Hi Patrick,
I’m not entirely sure what you are trying to accomplish. The first thing that comes to mind is why not just use the built in support for displaying images on each tab? That is, drop a TImageList onto the form and then populate the image list with the images you want to display. You can dynamically add images to an image list at runtime if necessary. Then assign the image list instance to the TRzPageControl.Images property. Then for each TRzTabSheet, you can set the ImageIndex property to display the image. There are other Image**** properties that can be used to control the position of the image as well.Ray
The TRzListView implements a slightly different hinting support originally added to provide better support for the TRzBalloonHints component. The issue was that hinting in the base TListView did not handle custom regions (as used by balloon hints).
Unfortunately, there is no property that controls that behavior. To prevent the OnInfoTip event from firing, you would have to modify the source code for the TRzListView.
Is the frequent calling of the OnInfoTip event causing an issue? What are you doing in the OnInfoTip event handler?Ray
Hi,
The CS5_Tools.zip file from the Raize Software website is the installer for the CodeSite Tools, which includes the CodeSite Dispatcher, CodeSite Controller, CodeSite Live Viewer, and CodeSite File Viewer. The CodeSite Tools does not contain and of the logging classes, which are used by application code to capture and log information.
I recommend reviewing the https://raize.com/codesite/ page for a more complete description of the various pieces of CodeSite.
The bottom line is that the CodeSite Tools is not a test version of CodeSite, and we do not offer a Trial Edition of CodeSite. We do offer a 30-day money back guarantee if you are not satisfied with the product.Ray
Hi,
The OnDrawItem event in TRzListView is inherited from the TListView control. That is, the event is generated by the inherited behavior of the TListView (and more precisely, the TCustomListView) class. According to the Help for TListView, the OnDrawItem event only fires when CustomDraw is also set to true. You may wish to take a look at the other drawing related events such as OnAdvancedCustomDraw, OnAdvancedCustomDrawItem, etc.
Ray
Hi,
I suspect that you installed CodeSite Express. Is that correct?CodeSite Express does not include the Raize.CodeSiteLogging.dll .net assembly. DotNet support is only available in CodeSite Studio.
Ray
-
AuthorPosts