Forum Replies Created
-
AuthorPosts
-
Hi,
I have created a sample plugin that decodes a CodeSite message where the message text has been encoded in Base64 — basically the first part of handling encrypted message text. I’ll post the code as soon as I can — sometime tomorrow.
In the meantime, please note that in order to build a custom plugin for CodeSite 5, you must use Delphi 10.2 Tokyo.
Ray
Hi Andrea,
When a program first tries to send a CodeSite message, the CodeSite logging class (TCodeSiteLogger) checks to see if the Dispatcher is running. If it is not, then the Dispatcher is started. The logger class looks in the Registry for the location of the CodeSite Dispatcher in case the CodeSite Tools are installed on the computer. If the Registry entry is present, the Dispatcher at that location is launched. If the Registry entry is not present, then the logger will look in the current directory of the application and launch the CSDispatcher.exe file if it is present.Having the Dispatcher get started by an application is quite common and I do that all the time. I’m curious to learn more about your attempts and what type of application you are building and how you are using CodeSite Express. Feel free to send an email to support@raize.com and I’ll be happy to assist in tracking down the issues.
Ray
Hi David,
The GUID that is displayed in the message represents a DispatchID. In CodeSite 5 (and earlier) when you first send a message to the Dispatcher, a Register Dispatch ID message is sent first and the Dispatcher registers the Dispatch ID with the destination details currently defined and this in turn specifies which Transporter should be used. Therefore, for future messages that include the Dispatch ID, the Dispatcher knows where to route the messages to.
The error messages are showing up in the Dispatcher Log every time the Dispatcher receives a CodeSite message referencing a Dispatch ID that the Dispatcher does not know about. Restarting the application that is generating the CodeSite log messages should stop the error message because a new Dispatch ID will get generated.
The Dispatcher not being able to find a Transporter for a Dispatch ID should rarely happen. Even if the Dispatcher is closed, the current set of Dispatch IDs and Transporters are persisted to disk in the CSDispatchIDs.ini file. The situation can happen if the Dispatcher is forcibly terminated and the Dispatcher does not have a chance to save the Dispatch IDs.
Ray
Hi Dave,
This type of error is typically caused by either the design package being moved to a different location and Delphi cannot locate the design package, or that Windows cannot locate the corresponding runtime package on the system PATH.
What is odd is that you state that the package loads in Delphi 11. And the runtime packages for both Delphi 11 and 12 reside in the same directory: C:\Program Files (x86)\Raize\CS5\Deploy\Win32.
Please check in Delphi 11 that the packages are indeed loaded. Select Component > Install Packages menu item and see if the CodeSite packages show up in the list. If they are listed, please select one of them and note the directory listed in the status bar.
Next, I would suggest checking your System PATH to ensure that the Raize\CS5\Deploy\Win32 directory is present.
BTW, the design packages are not really necessary to use CodeSite. They are provided merely for backward compatibility for older versions of CodeSite.
Ray
Hi Juergen,
Thank you for reporting this issue. I’m not entirely sure when this functionality stopped working, but the reason the tab stops are not updating from the header properly is because the internal FDialogUnits property of the TRzTabbedListBox is not getting initialized properly. Normally the FDialogUnits property gets updated in the cm_FontChanged component message handling method. I believe this notification message used to be sent when a component was created, but that is no longer happening. I will have to research that further.
Fortunately, there is a workaround. You can manually send the cm_FontChanged component message to the tabbed list box in the FormCreate event handler as shown below. After that, the tabs will be updated properly when changing the header sections.
procedure TForm1.FormCreate(Sender: TObject); begin RzTabbedListBox1.Perform( cm_FontChanged, 0, 0 ); end;
I believe the proper fix will be to ensure that the FDialogUnits property gets initialized in the TRzTabbedListBox.Loaded method override. I would encourage you to report this issue to Embarcadero as they are the owners and maintainers of the KSVC since 2015.
Ray
Hi Ulrich,
That’s an interesting idea. I’ll add it to our list of enhancement requests and investigate.
Ray
Hi,
If the ConnectUsingTcp approach is not working, there are a few things to check.
First, are you able to send a CodeSite message using the default connection method? That is, without calling ConnectUsingTcp? This will ensure that the Dispatcher is not Disabled, or that the Live Viewer is Blocking Incoming messages.
Next, are you specifying any parameters when calling ConnectUsingTcp? When no parameters are specified, the default host (localhost) and TCP port (3434) are used.
Next, check the Dispatcher Settings and verify that the TCP Port specified matches. I would also recommend checking that any Firewall software is not blocking that port.
Ray
Hi Leo,
There are two thoughts that come to mind. The first is to leverage VCL Styles to create your rounded buttons. And with Per-Control styling that was introduced in 10.4, you can use the custom style for only the buttons. However, creating a custom VCL Style, even just the button part of it, is not trivial. I suggest checking out my CodeRage session – Creating Custom VCL Styles (https://www.youtube.com/watch?v=BBlSSObmfXA).
The other option would be to create a custom button component where you can control precisely how the button looks. Of course, creating a custom button is not a trivial task either.
Ray
Hi Dirk,
I apologize for the long delay. My forum notifications got turned off by mistake.An Unsupported MessageFormat error generally means that the log file is getting corrupted. Is the log file being written to mapped network drive? And is it being written to by CodeSite Dispatchers running on separate computers simultaneously?
Would you please send one of the bad log files to support@raize.com (zip it up) and I’ll take a look.
Ray
Hi Rudy,
Here is some additional information that may help your situation.
The GetIt packages for RAD Studio 10.4 are stored in the following folder:
C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepositoryClose RAD Studio and then navigate to the above folder and delete the KonopkControls*** folder if it exists.
Next, edit the Registry and navigate to:
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\21.0\CatalogRepository\Elements
and delete the KonopkaControls*** key if it exists.Then restart RAD Studio and try to install the Konopka Signature VCL Controls again.
Hope this helps.
RayHi Rudy,
I am very sorry to hear of your troubles with the components. I am very surprised that Embarcadero said they don’t know how to help. Embarcadero acquired Raize Components back in 2015 and rebranded the controls as KSVC. Embarcadero created the GetIt package that is used to install the components.
I understand your predicament and will try to find out some more information. What is the exact message that you are receiving when you try to install the components via GetIt?
Ray
Hi Barry,
I see the same behavior. I think the issue is in the built-in Variant property editor. In looking at the code for the QuickCompare functionality, there does not appear to be any assumptions that the FieldValue has to be a number.
Have you tried setting the FieldValue at runtime in the FormCreate event handler. I wonder if that would work properly for you.
Ray
July 29, 2023 at 12:50 am in reply to: TRzTrayIcon: is own datastructure for TNotifyIconData still necessary #3689Hi Ulrich,
In short, the custom TRzNotifyIconData structure is probably not necessary. It was originally added because Delphi did not include any support for that data structure at the time. Now that Delphi includes the definition for TNotifyIconData, the Raize version should probably be deleted. It should be possible to do that in the RzTray.pas file and then run the !Build_RC7.cmd (or !Build_RC6.cmd) file in the Source directory to rebuild the DCUs and Packages.I would also suggest that you create a report in Quality Portal so that Embarcadero can make this a permanent fix.
Ray
Hi David,
Your best option would be to handle the OnSendMsg event of the CodeSite Loggers that you are using. The event handler is passed three parameters. The Sender represents the CodeSite object that is being used to send the message. The MsgData parameter is of type TCodeSiteMsgData, and represents an object that describes all attributes of the formatted message. The Handled parameter controls whether or not the message is sent to the current destination. Set Handled to True to prevent the message from being sent to the current destination.Ray
Hi Steve,
Oh wow. I haven’t really had to think about charsets in quite some time–at least not since Delphi shifted to Unicode support in Delphi 2009. As you noted, the root cause of the issue is in the TRichEdit base control (and perhaps in the underlying Windows Rich Edit control). As such, I would suggest posting a question about this in the Delphi Developer Facebook Group. Perhaps someone there will have some better insight into this.
Ray
-
AuthorPosts