-
Content Count
47 -
Joined
-
Last visited
Posts posted by Mr. E
-
-
-
Greetings.
I have a strange problem with the “Android SDK manager GUI”.
Every time I install it (several times) I get an “Application Error” and now I discovered something curious in the Memo of that application.I found this post ; and although the image is similar to the one I attach; I don't think it is the solution for my case.
It seems that the cause of the error is that you are looking in the wrong CatalogoRepository.: Where does the application get this value 22.0?
On reflection; maybe I need to update the Android SDK within version 22 although it is still strange.
*Update:
C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.48361.3236\cmdline-tools\latest\bin>sdkmanager.bat platform-tools [===...==] 100% Unzipping... platform-tools/sqlit C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.48361.3236\cmdline-tools\latest\bin>sdkmanager.bat platforms;android-35 [===...==] 100% Unzipping... android-35/templates C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.48361.3236\cmdline-tools\latest\bin>sdkmanager.bat build-tools;35.0.1 [===...==] 100% Unzipping... android-15/renderscr
Additional note:
The previous versions: 19 and 22 I installed with the Web installer.
Version 23 was also installed with the web installer; but I removed it and installed it with the ISO trying to avoid weirdness with the web installer that I experienced before. I had to uninstall several things to avoid problems during this installation of 12.3 that were installed with 12.2.This is some screens for my installations. I am finding curious things in my installation; the Start Menu no longer shows version 19/Tokyo even though they are installed; I haven't compiled some old projects for a while.
A few weeks ago, I edited the Path to avoid the maximum character limit.
My user's path
System path
Thanks for the help in advance.
Regards
-
15 hours ago, Patrick PREMARTIN said:Hi, you have this repository too to get version infos : https://github.com/omonien/Delphi-Version-Information
Thanks @Patrick PREMARTIN !!!
I was trying yesterday to use the @dummzeuch code, but I couldn't; apparently it's too tied to its original purpose “GEExperts” and I couldn't get it to work as something separate.I will try this repository you mention at the first opportunity.
(At the moment I'm putting out fires in the office: Windows 11 and CData/Excel/Firedac bit my hand today, 32bit app on windows 11x64 doesn't work, luckily I managed to compile to 64bit)
-
Thank you all for your replies!
@corneliusdavid, some time ago I looked on wikipedia, and I re-confirm that it does not show the full version number.
That screen D12.1 screen is really informative +1
11 hours ago, dummzeuch said:The difference between updates and patches seems to be that updates change the version number on the about dialog and patches don't. If installed via GetIt, patches are listed in the registry and will be shown in the about dialog as an additional information, but that does not happen if you don't use GetIt for the installation.
This is a good piece of information! I will try the code provided @dummzeuch, and try to keep better track of the versions from today.
-
Do you know if Embarcadero publishes any list with the official version numbers of their products?
I installed version 12 several months ago; and I'm sure I installed patch1 (using the offline installer):
[2024-05-08 11:08:10] [INFO ] Patch successfully applied. Backup and log files are in 'C:\Program Files (x86)\Embarcadero\Studio\23.0\_patch-backup\2024-05-08 11.07.38'.
And this is my current version:
Embarcadero® Delphi 12 Version 29.0.51961.7529.
And the IDE does not mention the installed patch:
Then I notice that the "Welcome Page" indicates "patch available", and I found this from blogs.embarcadero.com
QuoteNotice that you also have the ability to dismiss the patch and not be reminded about it in the Welcome Page any more, even without installing it. Also, if you install the patch via GetIt, the About Box in the IDE will indicate the patch has been installed.
At this point I have already instructed getit to ignore the patch. BTW the number shown in getit is somewhat confusing: "12.1 Patch 1 1.0"
Regards
-
Thank you @JonRobertson
Using the words you provided, I managed to find the section to adjust/wrap the code to more than 80 columns when formatting with Ctrl-D
Tools -> Options -> Formatter -> Delphi -> Line breaks -> Right margin.
I changed it from 80 to 120 to test it and it does work.
I also discovered that searching for the words "right margin" does not locate the "Formatter" section I was looking for.
This other post ("Change the scroll width of the Delphi IDE Editor window"), complete what I needed to adjust the code formatting.
Quote..I can find two separate setting in the Delphi (XE) IDE that affect the editor width:
1) the right margin setting under [Editor Options][Display]
2) the right margin setting under [Formatter][Delphi][Line Breaks]
The 1st option only seems to affect the width of the visible right margin in the editor, the 2nd option affects the wrap width of the auto-formatter. ...
-
I have always been unable to find an answer to the following:
The vertical line I point to in the image:
Does it have a name?
Can its horizontal position (width or column) be changed?Is it correct for what I think it is?
When using Format Code (Ctrl-D), it makes all the code stay inside the limit of that column.Thanks in advance.
-
@PeterBelow @programmerdelphi2k
Sorry for the delay and thank you very much,
I hope to update this weekend by uninstalling those two Parnasus packages.
On 12/10/2022 at 8:08 PM, programmerdelphi2k said:you can register your key in my.embarcadero.com and download your iso, not?
Yes, I did this but after using the webinstaller.
I'm not sure, but reinstalling with the ISO is not recommended since I installed with the web installer, right?
If I manage to upgrade; later I will try to create a new VM and install from scratch using the ISO (but that's a lot of work accumulated at the moment); I just have the doubt if it won't cause me a problem with the CData connectors license that was "registered?" with the current VM.
Regards!
-
17 minutes ago, programmerdelphi2k said:always prefere download ISO for avoid any problems while installing ... here RAD Studio 11.2 complete = +18GBytes in disk after installation!
Yes, I also prefer the ISO, but when we bought the license my salesman did not provide me the ISO in time and I had to use the web install; the urgency forced me to use it and now I regret it.
I have done some research and I see that the registry data of the web install and ISO install are not compatible. I guess if I uninstall and reinstall with the ISO I will be shooting myself in the foot.
-
Ah!, then I am in the hands of the other factors that I cannot control, especially on the Embarcadero side.
We have a dedicated "fast" internet (not ultra-fast)#4) Before I upgraded Delphi I had no updates and now that I checked I had already downloaded an update package. Paused!
-
Greetings,
How long does it take to update Delphi 11?
The resource and performance monitor do not show any activity (hdd, network).
It is a Windows 11 Pro VM on Proxmox, with adequate resources; I disabled the Firewall and it has no antivirus.I have almost an hour and I don't see any progress in the update/installation (web install).
I'm going to wait another hour; but, I am tempted to stop the VM, restore it (I did a previous backup) and retry.
-
Although I like your solution better. Perhaps something could be programmed to make use of "msg":
Msg: Sends a message to a user on a Remote Desktop Session Host (RD Session Host) server.
QuoteSyntax
msg {<UserName> | <SessionName> | <SessionID>| @<FileName> | *} [/server:<ServerName>] [/time:<Seconds>] [/v] [/w] [<Message>]
Examples
-
To send the message entitled "Let's meet at 1PM today" to all sessions for User1, type:
msg User1 Let's meet at 1PM today
-
To send the same message to session MODEM02, type:
msg modem02 Let's meet at 1PM today
-
To send the message to session 12, type:
msg 12 Let's meet at 1PM today
-
To send the message to all sessions contained in the file USERLIST, type:
msg @userlist Let's meet at 1PM today
-
To send the message to all users who are logged on, type:
msg * Let's meet at 1PM today
-
To send the message to all users, with an acknowledgment time-out (for example, 10 seconds), type:
msg * /TIME:10 Let's meet at 1PM today
Although it seems that there are problems in windows server 2016 or 2019.
-
-
Greetings, I need your guidance.
I made an ActiveX control which I need to use in one big applications (ParnetMenu) for various containers, but it is somewhat elaborate to update.So, to get out of trouble, I made an emergent application as a simple container for this ActiveX control.
On my development machine, the application closes correctly and disappears from the processes running on Windows 10 pro 64 bit (virtualized in virtualbox).The problem occurs with end users (Windows 10 pro 64 bit), when closing the application it remains running in the windows processes and it is necessary to go and terminate the process manually.
In fact, my main application (ParnetMenu) where I will use this control, suffers the same problem but there we programmed a button that looks for the id of each container and closes the process, using the TDOSCommand component and performs a Taskkill to close the screens that use these ActiveX controls.
(Force closure)
exe := stringReplace(button.Caption, ' ', '_', [rfReplaceAll, rfIgnoreCase]); button.visible := false; PID := escribeVar(exe); PID := 'Taskkill /F /PID ' + PID; dos.CommandLine := PID; dos.Execute;
In this emergent application I have tried several things, attached actual and previous code:
- First by clicking on "X" in the application I release the control and Terminates de application. It did not work.
- Second. Then I removed the buttons and add a panel with a button to try another way.
Same result the application remains running in the background:
The layout of the application:
This is the code for this emergent container:unit MainForm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs , SALMVCC_To_Cancel_AX_TLB, RzButton, Vcl.ExtCtrls, System.ImageList, Vcl.ImgList, Vcl.StdCtrls ; type TMain = class(TForm) il1: TImageList; pnl1: TPanel; bb1: TRzBitBtn; lbl1: TLabel; procedure FormCreate(Sender: TObject); procedure bb1Click(Sender: TObject); private { Private declarations } var CADISalidasCancelacionAutorizacion: TcoADI_SALMVCC_To_Cancel; procedure doLoadOCX; public { Public declarations } end; var Main: TMain; implementation {$R *.dfm} procedure TMain.bb1Click(Sender: TObject); begin lbl1.Visible:= True; self.Refresh; Sleep(200); // to give time for the message to be displayed. CADISalidasCancelacionAutorizacion.Destroy; Sleep(500); // to give time for the message to be released? Application.Terminate(); Sleep(2500); // Just to debug this problem System.Halt(0); //TerminateProcess; // don't know how to use yet end; procedure TMain.doLoadOCX; begin CADISalidasCancelacionAutorizacion := TcoADI_SALMVCC_To_Cancel.Create(self); CADISalidasCancelacionAutorizacion.Parent:= self; CADISalidasCancelacionAutorizacion.Align:= alClient; end; {procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction); begin CADISalidasCancelacionAutorizacion.Free; Application.Terminate; end;} procedure TMain.FormCreate(Sender: TObject); begin doLoadOCX; end; end.
I had previously used this, but it didn't work either.
procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction); begin CADISalidasCancelacionAutorizacion.Free; Application.Terminate; end;
Note: My PC has no antivirus running (except Microsoft's), my users use Avast and there is already an exception for them not to send the application to the sanbox. I even tried disabling the antivirus on a computer and the problem persists.
Regards and thank you.
-------
Addendum:
The main goal is not only to solve this problem with the emergent application. But also to eliminate the use of TaskKill in my ParnetMenu application; and to eliminate the hang that occurs.
And of course, occasionally I will be able to create more definitive applications using the ActiveX container.
-
57 minutes ago, Remy Lebeau said:Your TIdHTTP code is all wrong for this kind of POST request. Try something more like this instead
Thank you Gambit/Remy Lebeau! 😀
-
Indeed in my case, the solution is: backup and delete from the registry the guilty one, In my case my version is "..\BDS\18.0\.."
QuoteLuis Navarro from Embacadero just explained to me:
Close the IDE, then delete the OmniThread folder from
MyDocuments\Embarcadero\Studio\17.0\CatalogRepository
After that, you have to edit the registry and delete also the Omnithread folder fromHKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0\CatalogRepository\Elements
This worked like a charm.
Note that for me there was no registry key in the above path for OmniThread yet. Perhaps the key only gets written upon successful installation of the package.
In that case you only need to delete thePackageName
directory and reinstall.Thank you @FredS
-
Regards, this problems occurs from time to time in getit now I got bitten again.
Hopefully someone knows how and where I can tell to Getit that EurekaLog isn't installed so I can reinstall it.
This is the little story:
I got the EurekaLog Tools (free) v 7.0 installed, today I see the new version 7.7.5.0. and I do this:
- EurekaLog Tools 7 was installed via Getit
- Without uninstall the v7 in getit: I install the v7.7.5.0; the process goes without error, and the install remove the previous one, the IDE restarts; (I was expecting that Getit remove the old one and take out from Getit but no).
- In Getit now I see two versions installed. (annoying), then
- In Getit I uninstall the v7, it removes in GetIt and from Programs and Features too. Now I don't have the programs installed (but Getit shows as installed).
- In Getit that shows 7.7.5.0 is installed, when I try to uninstall, I got this error, and I can't reinstall again:
This happens with other package, but I don't remember how I "remove it", still get it shows the old version to install, as a reminder that I don't remember
Thanks in advance.
-
@Kryvich THANK YOU! (I'm screaming, Yes!)
This is like seeing a sunrise and wondering how it's this possible? 🌞
I'm reading your code, is slick and to the point.
This isn't trivial for anyone without previous knowledge, I need a lot of theory to learn (web, sockets, mORMot, etc.)
--
How can I mark the post as solved (with a lot to read/learn) ?
-
1
-
-
Found something that I need to read & learn: HTTP - requests.
For someone like me, stuck just with desktop apps, is a must read.
-
3 minutes ago, Kryvich said:But you can use other third-party library, ... I can recommend THttpRequest class from SynCrtSock.pas, mORMot. Something like this:
This!
Now I need to learn how fill the parameters, as the example provided:
POST https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl HTTP/1.1 Content-type: text/xml;charset="utf-8" Accept: text/xml SOAPAction: http://tempuri.org/IConsultaCFDIService/Consulta cache-control: no-cache Host: consultaqr.facturaelectronica.sat.gob.mx accept-encoding: gzip, deflate content-length: 414 Connection: close <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:Consulta> <!--Optional:--> <tem:expresionImpresa><![CDATA[?re=LSO1306189R5&rr=GACJ940911ASA&tt=4999.99&id=e7df3047-f8de-425d-b469-37abe5b4dabb]]></tem:expresionImpresa> </tem:Consulta> </soapenv:Body> </soapenv:Envelope>
Looking the mORMot unit/doc and searching for examples.
Thank you!
-
@KryvichThank you, I appreciate your work.
The problem: the sat.gob.mx has been doing changes to their web services, this is the second variant of the w.s., and they decide to hide the wsdl for this and many others services.
Luckily an authorized certification provider (PAC) create this test service, cloning the functions of the real w.s.
Hiding the wsdl services is forcing us to use it using a HTTP POST Request in Delphi. This is what I seek to learn, preventing more changes in the future.
This sat is tied to m$ technologies, leaving us (the Delphi devs.) with the burden to adapt our approach to each changes or new services they publish.
Again thank you very much.
-
Regards,
I'm searching how to create an HTTP POST request, but I can't manage to do it.
This is a SOAP Service that I can consume using the ?wsdl (now is hidden); but some nice provider write this:
Quotehttps://developers.sw.com.mx/knowledge-base/servicio-publico-de-consulta-estatus-cfdi-sat/
Consumo a través de un POSTDebido a que el SAT oculto la declaración del WebService en productivo lo consumiremos a través de un HTTP Request POST indicándole los datos correspondientes.
----
Consumption through a POST
Because the SAT hidden the WebService declaration in productive, we will consume it through an HTTP Request POST indicating the corresponding data.POST https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl HTTP/1.1 Content-type: text/xml;charset="utf-8" Accept: text/xml SOAPAction: http://tempuri.org/IConsultaCFDIService/Consulta cache-control: no-cache Host: consultaqr.facturaelectronica.sat.gob.mx accept-encoding: gzip, deflate content-length: 414 Connection: close <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:Consulta> <!--Optional:--> <tem:expresionImpresa><![CDATA[?re=LSO1306189R5&rr=GACJ940911ASA&tt=4999.99&id=e7df3047-f8de-425d-b469-37abe5b4dabb]]></tem:expresionImpresa> </tem:Consulta> </soapenv:Body> </soapenv:Envelope>
I try something like this, using Indy; but the web is a dark box for me in Delphi.
// I'm trying using the REST clients, the Indy Http, ... uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Xml.xmldom, Xml.XMLIntf, Vcl.ComCtrls, Xml.Win.msxmldom, Xml.XMLDoc ,Vcl.StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Xml.omnixmldom, IPPeerClient, REST.Client, Data.Bind.Components, Data.Bind.ObjectScope, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL; ... uses IdMultipartFormData; ... procedure TForm3.Button3Click(Sender: TObject); var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try // add the used parameters for the script data.AddFormField('expresionImpresa', '?re=LAN8507268IA&rr=LAN7008173R5&tt=5800.00&id=4e87d1d7-a7d0-465f-a771-1dd216f63c1a'); // Call the Post method of TIdHTTP and read the result into TMemo Memo1.Lines.Text := IdHTTP1.Post('https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc', data); //ERROR //HTTP/1.1 415 Cannot process the message because the content type 'multipart/form-data; boundary=--------111018174150958' //was not the expected type 'text/xml; charset=utf-8'. //--------------------------- finally data.Free; end; end; procedure TForm3.Button2Click(Sender: TObject); var S: TStringList; M: TStream; begin S := TStringList.Create; M := TMemoryStream.Create; try S.Values['expresionImpresa'] := '?re=LAN8507268IA&rr=LAN7008173R5&tt=5800.00&id=4e87d1d7-a7d0-465f-a771-1dd216f63c1a'; //'![CDATA[?re=LAN8507268IA&rr=LAN7008173R5&tt=5800.00&id=4e87d1d7-a7d0-465f-a771-1dd216f63c1a]]'; IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; //IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP1.Post('https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc', S, M); Memo1.Lines.Add(Format('Response Code: %d', [IdHTTP1.ResponseCode])); Memo1.Lines.Add(Format('Response Text: %s', [IdHTTP1.ResponseText])); // ERROR: //HTTP/1.1 415 Cannot process the message because the content type //'application/x-www-form-urlencoded' was not the expected type 'text/xml; charset=utf-8'. //--------------------------- M.Position := 0; S.LoadFromStream(M); Memo1.Lines.AddStrings(S); finally S.Free; M.Free; end; end;
Consuming the web services is a lot easier, just I need to Import the WSDL (is hidden right now but I still manage to get before), create the unit and start using the service, the consume is just:
procedure TwsConsultaCFDIEmpresa.doConsulta (const representacionI : string); var ics : IConsultaCFDIService; vAcuse : Acuse2; begin try ics := GetIConsultaCFDIService(false); // representacionI is something like: // ?re=LAN8507268IA&rr=LAN7008173R5&tt=5800.00&id=4e87d1d7-a7d0-465f-a771-1dd216f63c1a vAcuse:= ics.Consulta(representacionI); finally with vAcuse do ShowMessage(CodigoEstatus +'/ '+EsCancelable +'/ '+ Estado +'/ '+EstatusCancelacion); end; end;
I need to read some basic documentation, but alas, I don't know how to start. Maybe with a working example can I go forward.
I don't know if using the "REST clients" are something that I need.
Edit: Using Firefox I got an extension named "Httprequester" but I can't make a successful request/POST.
Thanks in advance
-
I wonder if there is a way of mute topics that aren't interested for me and got a lot of attention/posts that make it shows over and over.
Using the "Fluid" option allows to see only that Forum, but sometimes a lot of topics are a little "annoying".
Then if I want to read it again, unmuting that topic can be helpful too.
(Thinking twice, seems like this topic is a good & bad example
)
Regards
-
1
-
-
9 hours ago, Primož Gabrijelčič said:This is mentioned in the book: http://www.omnithreadlibrary.com/book/chap10.html#howto-com
P.S. Make sure that you don't call any VCL code from you background threads!
Thank you @Primož Gabrijelčič, now I know what to read & learn "7.12 OmniThreadLibrary and COM/OLE"
Edit:
Seeing your recommendation about VCL; if I need to update a TListView with the output of each call of the web service, then I'll need to divide my code so I can update that VCL controls. 💭
Edit #2:
@Primož Gabrijelčič Is correct this approach?
Asyn(do_something_with_the_webservices) .Await( procedure begin // Can I update ListView controls here? // ... more code inside end);
Edit #3 . (To myself) First read the docs, then ask later! [ self.slap
]
..
-
Good to see other options and some with a price$
In the meantime I'll try to use "Follow"
Thank you for the responses!
Error: E7688 Picked up JAVA_TOOL_OPTIONS
in Cross-platform
Posted
I don't know if it applies to your case, but take a look at it:
https://dannywind.nl/delphi/android-sdk-for-delphi-11-2-alexandria/
I don't remember if I ever saw those same errors you get; but I adapted the information for Delphi 12.3 and it helped.