No TRzRegIniFile

Viewing 5 reply threads
  • Author
    Posts
    • #3897
      Nat Regards
      Participant

        Hello.

        procedure TrmMain.FormCreate(Sender: TObject);
        begin
        RzToolbar.RestoreLayout;
        RzFormState.RestoreState;
        end;
        
        procedure TrmMain.SaveState(Sender: TObject);
        begin
        RzToolbar.SaveLayout;
        RzFormState.SaveState;
        end;

        RAD Studio 11.3 Alexandria gives an error message:

        Project Notepad.exe raised exeption class ENoRegIniFile with message ‘No TRzRegIniFile component specified’.

        What could be the reason?

        • This topic was modified 5 months, 3 weeks ago by Nat Regards. Reason: code
        • This topic was modified 5 months, 3 weeks ago by Nat Regards. Reason: code
      • #3902
        Ray Konopka
        Keymaster

          Hi Nat,

          That exception is coming from the TRzFormState component. The TRzFormState component utilizes a connected TRzRegIniFile component to control where the form state information is actually stored.

          If you select the TRzFormState component in the Form Designer and then press F1, you should see the help for TRzFormState that talks about assigning a TRzRegIniFile component to the RegIniFile property. You can then click on the TRzRegIniFile link to learn more about the components property.

          Ray

        • #3903
          Nat Regards
          Participant

            Hi Ray,

            Yes, probably.
            After installing KonopkaControls-280-7.0For11.3, Delphi forced me to install Windows Kits. But even after that something prevents it from working.
            I don’t understand why Embarcadero needed to buy the rights to KSVC if there were problems?
            Unfortunately, as a beginner, I don’t understand why this happens.

            Before asking the question, I not only read, but also translated both TRzFormState and TRzRegIniFile into my language. I use the ini file in the folder with the program – I think that the registry is already full of garbage, as well as various services from Windows and not only Windows.

            Thanks for the help.

            Nat.

             

            • This reply was modified 5 months, 3 weeks ago by Nat Regards. Reason: coma
          • #3906
            Ray Konopka
            Keymaster

              The KSVC controls have no dependencies on Windows Kits. So, I’m not sure what caused Windows Kits to be installed.

              As for the TRzRegIniFile, it is designed to use either an INI or the Registry. That is the point of the control. You control where the actual data store is located. The default is an INI file.

              “I don’t understand why Embarcadero needed to buy the rights to KSVC if there were problems?”

              I’m sorry, but I’m not sure I understand your question.

              Ray

            • #3907
              Nat Regards
              Participant

                Hi Ray,

                However, when trying to launch RCDemo, a window constantly appeared with a message about the absence of a manifest file and a compilation error (No TRzRegIniFile component specified’), and then it was suggested to install the Windows Kits package using the SDK Manager (downloaded from the Microsoft website). When installed by default, Rad Studio itself determined everything as in the picture

                SDK Manager

                But the reason was that when installing using GetIt Package Manager, GetIt Package Manager itself installed the KonopkaControls-280-7.0For11.3 package into the “C:\Program Files (x86)\Embarcadero\Studio\22.0” directory. I didn’t pay any attention to this and tried to find the reason in the *.pas source packages, but couldn’t find it… The next day KonopkaControls disappeared from “C:\Program Files (x86)\Embarcadero\Studio\22.0” and appeared in the “C” directory :\Users\Gin\Documents\Embarcadero\Studio\22.0\CatalogRepository” (Here I have copies of installed packages), and later disappeared from “C:\Users\Gin\Documents\Embarcadero\Studio\22.0\CatalogRepository”. The migration has ended in the directory “C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository” – that is, where it should have been installed initially. But it didn’t end there :). Rad Studio kept reporting errors when compiling… I couldn’t create a new tab in TRzPageControl and wanted to look at the RzTabs.pas file from the Delphi code window, but Studio writes that the file is not installed and shows the initial installation path – “C:\Program Files (x86)\Embarcadero\Studio\22.0″ :). After adjusting the path in the Delphi library, everything fell into place. For reinsurance, I indicated the following paths: Source, Lib, RX11, Win32 and Win64. These are the miracles.

                However, when trying to run RCDemo, the compiler generates – [UWP] Generating manifest: C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\KonopkaControls-280-7.0For11.3\Demo\AppxManifest.xml and still gives an error – [CreateUWPManifestFile Error] Program Id is not valid. Value: ”

                …TRzRegIniFile… – yes, I understand. MY mistake was that the help was not written very clearly and it seemed to ME that each component should have its own TRzRegIniFile. I know that there is only one ini file (the last time I programmed it was about 20 years ago)… – I translated the help and figured it out. Most likely (if you have the opportunity and time to answer), there will be more questions since TRzRegIniFile does not save data for all components and you will need to manually create the list in a separate module.

                I’m sorry, but I’m not sure I understand your question. – I meant that Embarcadero had a problem (as it turned out, due to the incorrect installation path of the package and it is not clear why errors with RCDemo continue).

                Thanks for the help.

                Nat.

                • This reply was modified 5 months, 3 weeks ago by Nat Regards. Reason: Code ?
              • #3915
                Ray Konopka
                Keymaster

                  Hi Nat,

                  Thank you for providing more information about what you are trying to do–that is, compiling the RCDemo.

                  Yes, because of some of the changes that Embarcadero introduced into the PROJ file and the fact that RCDemo supports older versions of Delphi, the prompt to select an SDK is presented when you first open the project in Delphi 11. Typically, the built in SDK is automatically selected and the user just clicks the OK button to continue. However, it appears from the screenshot, that you opted to create a new SDK. That is why you were prompted to download other items from Microsoft’s website.

                  From the remaining issues you describe it sounds like you created an SDK for creating a UWP app and not a standard Win32 (or Win64) app.

                  I just loaded the RCDemo project (in Delphi 11) on a new VM and I was prompted to select an SDK, but I just selected the default Win32 SDK that was presented. The project loaded, however, when I tried to compile the demo, I did get an error, but it is a known error. Embarcadero did not update a couple of the source files in the demo with the Delphi 11 release. Fortunately, the fixes are straight-forward.

                  TabsFrame.pas
                  In: procedure TFmeTabs.Init;
                  Replace:
                  if UsingSystemStyle then
                  With:
                  if UsingSystemStyle( Self ) then

                  CustomFramingFrame.pas
                  In: procedure TFmeCustomFraming.Init;
                  Replace
                  if UsingSystemStyle then
                  With:
                  if UsingSystemStyle( Self ) then

                  MainForm.pas
                  In: procedure TfrmMain.VisualStyleClick(Sender: TObject);
                  Replace:
                  C := GetGradientPanelFrameColor( FCurrentGCS )
                  With:
                  C := GetGradientPanelFrameColor( Self, FCurrentGCS )

                  Then you’ll be able to build the RCDemo project successfully.

                  As for the TRzRegIniFile component, you are correct, that component does not save data for all components. In fact, the TRzRegIniFile is just a conduit to a data store, as I described in a previous post. The TRzFormState component is designed to save certain properties of a form to the data store referenced by the TRzRegIniFile component. To persist the properties of other components in your application, please take a look at the TRzPropertyStore component.

                  Ray

              Viewing 5 reply threads
              • You must be logged in to reply to this topic.