Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/25/24 in all areas

  1. JonRobertson

    Taskbar Icon Menu.

    Search for JumpList.TJumpList. Here are a few links to get you started. https://docwiki.embarcadero.com/RADStudio/Athens/en/VCL_Taskbars https://docwiki.embarcadero.com/Libraries/Athens/en/Vcl.JumpList.TCustomJumpList.AddTask https://blog.marcocantu.com/blog/2014-september-vcl-xe7-taskbar-jumplist.html https://perevoznyk.wordpress.com/2011/05/25/adding-windows-7-jump-list-to-a-delphi-2010-application/
  2. Miguel Moreno

    Updated XMLMapper

    Hello. Yeah, you are correct, the file you have posted is in fact a "SOAP web service response file". XML Mapper is a tool designed to help you convert ("transform") an XML file that contains data in a repeating pattern to a Delphi dataset data file. To achieve this, XML Mapper expects you to have the XML schema (XSD file) representing the structure of the source XML file you want to convert into a Delphi dataset. XML Mapper is not designed to read or process web service response files, be it SOAP or REST. That is a task that you must do separately. Now, let's take a look at your SOAP response file: 1. The SOAP response file is correctly formatted: it has an XML "Envelope" section with header data and an XML "Body" section with the actual payload. 2. In the XML "Body" section (payload), we can see first the XMLSchema of the response dataset: 3. Right after the XML Schema, we can see the actual XML dataset with its row data: 4. We can extract the XML Schema to a separate individual file, adding the same XML header as found in the SOAP envelope. Let's save it as "SOAP_Dataset_Schema.xsd": 5. By the same token, we can extract the XML dataset to a separate individual file, again adding the same XML header as found in the SOAP envelop. Let's save it as "SOAP_Dataset.xml": 6. Open the XML Schema file ("SOAP_Dataset_Schema.xsd") in XML Mapper: 7. Create the "transformation" file: a) Right click on the schema panel and click on "Select all" b) Right click on the schema panel and click on "Create Datapacket from XML" c) Click on the center button "Create and Test Transformation" d) The test transformation window pops up with sample transformation data 8. Load and process the XML dataset (“SOAP_Dataset.xml”): a) Click on the “Open file” toolbar icon of the “Test transformation” window b) Select and open the “SOAP_Dataset.xml” file c) XML Mapper will load and transform the XML dataset d) The data will be shown in the “Test transformation” window in a DBGrid with a TClientDataSet as the source I hope this example can guide you on what XML Mapper can do and what you need to do on your own to use it properly. If you have further doubts please let us know. Thanks, Miguel
  3. I'm not sure if that is what you are after: Dataset Enumerator Reloaded. The current location for the unit described in that article is now on GitHub as part of my CmonLib library: https://github.com/UweRaabe/CmonLib/blob/main/source/Cmon.DataSetHelper.pas The code allows to retrieve the current record of a dataset either as a record or a class. The record example shown in the article requires the declaration of a record type [DBFields(mapAuto)] TEmployee = record EmpNo: Integer; LastName: string; FirstName: string; PhoneExt: string; HireDate: TDateTime; Salary: Double; end; With that you can retrieve the data of the current dataset record like this: var Employee: TEmployee; begin { Show the employee's name and the hire date. } Employee := QuEmployee.GetCurrentRec<TEmployee>; ShowMessage(Format('%s %s was hired on %s', [Employee.FirstName, Employee.LastName, FormatDateTime('dddddd', Employee.HireDate)])); end; The article also has another example using a class instead of a record.
  4. That is not even required. I have now found Inno Setup does it all for you. We are getting way out of Delphi topic here, but this is what I now have in Inno Setup, and it does it all: Tools>Configure Sign Tools: signtool="C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool" sign /a /fd SHA256 $f [Setup] SignTool=SignTool [Files] Source: "*.exe"; DestDir: "{userappdata}\SARTrack\exe"; Flags: recursesubdirs ignoreversion signonce Source: "*"; Excludes: "*.exe"; DestDir: "{userappdata}\SARTrack\exe"; Flags: recursesubdirs ignoreversion (where \SARTrack\exe is my destination dir) This signs *all* executables, then it signs itself.
×