DelphiUdIT
Members-
Content Count
593 -
Joined
-
Last visited
-
Days Won
11
Everything posted by DelphiUdIT
-
ZLib inside the ICS FTP Client - CVE-2016-9842 - zlib:1.2.8
DelphiUdIT replied to M-Brig's topic in ICS - Internet Component Suite
If you refer to this notice of CVE: https://github.com/madler/zlib/issues/868 they have resolved with 1.3.1 version. And the new Delphi version use the right version: -
Sorry, but you are not right. For example no one can ACQUIRE data about HEALT status without your explicity WRITTEN and PREVIOUS consent. Thw European law is not only about how you threat the data, but also about you acquire the data ... So if one send you a screen shoot with name, age a healt status behind the scenes, you will be in fault if you don't have the explicity consent. This happened to a client of mine (for whom I made a piece of management software). It is not uncommon to find difficulties in sending information, that is, sending it and having a response, due to the GDPR.
-
I dont' know these components, but the error (you show incomplete message) seems to indicate that the scanner driver is not installed (or the scanner is offline). Again, I do not know the components nor have I ever developed a scanner application, and I could certainly be wrong.
-
I really don't know what to say ... I have no issues about this, and I debug to asm level too. But I really don't have any issues on debugging. And I'm using the offline installer too (I've always used it). Good luck.
-
How to get the version of Delphi that the App is built with?
DelphiUdIT replied to Ian Branch's topic in General Help
You don't have the UPDATE version of RTL (I mean 12.0, 12.1, 12.2) with VERxxx. By now if you see a lot of packages like Indy, FastReport, Jvcl, etc ... they use near they same like you example, but there is not minor version (UPDATE) identity: you can see Delphi12 but not Delphi 12.2, all minor releases are indentified like Delphi12. -
How to get the version of Delphi that the App is built with?
DelphiUdIT replied to Ian Branch's topic in General Help
I explain BAD: the example I suggest is like @limelect do with JVCL -> VERSION IS FROM APP INFO, NOT FROM DELPHI VERSION. FOR Delphi version, like I told more times there is the "GetRTLVersion" function from System uniti: https://docwiki.embarcadero.com/Libraries/Athens/en/System.GetRTLVersion -
How to get the version of Delphi that the App is built with?
DelphiUdIT replied to Ian Branch's topic in General Help
It come from INFO from application setting. You can use also in this way (I use it since decades without JVCL) ( EDIT :THIS EXAMPLE REPORT INFO FROM APP INFO, NOT FROM DELPHI VERSION !!!) function GetAppVersion: string; var Size, Size2: DWord; Pt, Pt2: Pointer; begin Size := GetFileVersionInfoSize(PChar (ParamStr (0)), Size2); if Size > 0 then begin GetMem (Pt, Size); try GetFileVersionInfo (PChar (ParamStr (0)), 0, Size, Pt); VerQueryValue (Pt, '\', Pt2, Size2); with TVSFixedFileInfo (Pt2^) do begin Result:= 'Version: '+ IntToStr (HiWord (dwFileVersionMS)) + '.' + IntToStr (LoWord (dwFileVersionMS)) + '.' + IntToStr (HiWord (dwFileVersionLS)) + '.' + IntToStr (LoWord (dwFileVersionLS)); end; finally FreeMem (Pt); end; end else begin Result:= 'Version: NOT RECOGNIZED'; end; end; I think he wants to have the version of RAD STUDIO that build the exe file. The GetRTLVersion do this (to UPDATE level) and it is include in the System Unit. -
How to get the version of Delphi that the App is built with?
DelphiUdIT replied to Ian Branch's topic in General Help
Yes, you can use the GetRTLVersion function. That return the Major release and Minor release ... for example Athens12.2 -> is $2402 Only Update level version, no patch informations. It is a new function that works from Athens 12. -
I think that file is part of commercial project, you must pay for it: https://www.eztwain.com/
-
I remeber somethings about decades ago ... may be the property is Sheet.Cells[x, y] or Sheets.Cells[x].Column ? For your facility, if you import the Excel typelib, you will able to see all properties of all "components" in the "Excel..._tlb.pas" created. These should be near the same as you use with OleObj.
-
Circular references with API design
DelphiUdIT replied to Darian Miller's topic in Algorithms, Data Structures and Class Design
I disagree the use of pointers directly for a waste use. In the past I had some side effects not "beauty" ... especially if they were targeting structures with "managed types". In the state of Darian exposition, I will prefer the mix solution. CodGen projects are always "beasts", I wish you good luck in your job @Darian Miller -
In GetIt online page this is appeared: It's a new build, this means that a patch will be released soon ?
-
NO, also Delphi and some more then this ( like NDK ?). EDIT: No NDK update. The patch is installed in 10 seconds without any Issues.
-
I agree with you, and in the past i reported in QP that. But sometimes I fill (always in the past) that some Issues found on IDE were about some components. But that was only a perception I was not sure about that, and replicate this was difficult. So, I tried in this way. Now, really I dont'use IDE comp. from thirdy-parts that need to be used in designer. Some exceptions are from JVCL (very few now) that never give me any trouble or some other historical little tools (for example I have the TSPVoice installed in the palette, but I never used in the designer ). Also some visual tools about artificial vision (where I can simply make a component for designer) are used to be construct at runtime (construct some dozen of windows over one or two TPanels). The RAD, like you told, should be the best way to construct an application, but this doesn't means that ALL should be done in the designer. And for me that work a lot with threads, the "runtime way" for many "components" are the best way.
-
I, and not only me, have noticed that the instability of the IDE is mainly due to (in my case ONLY to) third-party components installed in the IDE. For a long time now I have been trying to use third-party components (there are few that I install now) only at runtime. And where a graphical surface defined in the FORM is needed, I "hook" them to invisible TPanels placed at design time. Of course, not always it's possible but when it is that save me about those issues probably.
-
The "Adopt" is there, empty from the previous version ... I don't use Adopt, I use Oracle JDK 22. Of course, I agree ... and may be that if someone knows the answer ... is under NDA. But I've never seen different versions of the NDK than the IDE build. I probably never paid attention to that.
-
Are you sure ?
-
Installing Delphi 12.2 Inline patch 1 - no android support .. [Resolved]
DelphiUdIT replied to JohnLM's topic in Cross-platform
If you have installed Android, also AdoptOpenJDK should be installed (it is the default Java SDK that Embarcadero install). Search for that in "Program FIles" or "Program FIles (x86)" .... If you have installed any other Java SDK it's OK from version 17. I have Java SDK (version 22) from Oracle. In the SDK Manager, you must choice the correct Java.exe from the Java SDK installation bin. -
Put those two define lines in a DPR file of your application after "program" section in 10.4 and buld it with x64: program ..............; {$SETPEOPTFLAGS $40} //SET ALSR ON (Address space layout randomization {$SETPEOPTFLAGS $020} //SET HEVA ON (HIGH ENTROPY VA) You will see (should) the same issue.
-
The changes that were done are the enable of ASLR and High LOAD in all projects (old and news). WIthout this the component works, OR BETTER SEEM TO WORKS. Don't put you hand over the fire about this. Like I told the component is derived from very old projects, and it's near the true that is not "fully" compatible with x64 tech. The full project should be take in care and updated to x64, looking everywhere in the code. EDIT: to better explain, in the x32 the pointers are 4 bytes long, where in x64 are 8 bytes. If you don't use the "high memory" is possible that all works ... but really always ? Look there: https://docwiki.embarcadero.com/RADStudio/Athens/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows
-
UPDATE: IT WORKS DOING SO: But this is only an "escamotage" because this means that in your components there are something not working with WIN64 convention ... normally are the pointers ...
-
EDIT: READ NEXT POST I try to debug it, but something goes wrong in the source (compiled system unit) of IDE. There is no chance (or better I was not able) to let it works or diagnose what is the problem. The only thing that I catch is that is generated an error (0xc000041d), in Microsoft that means: Link in Italian: https://support.microsoft.com/it-it/topic/errore-ntstatus-0xc000041d-si-verifica-quando-si-fa-clic-su-un-collegamento-in-un-applicazione-basata-sul-web-in-internet-explorer-10-in-windows-8-o-windows-server-2012-49b8cfdd-a841-06ce-ae60-8c04ff74a2f3 If you use the IDE standard component TWebBrowser all works.
-
This is a works derived from old github repository. Most of the definitions are included in new IDE (like SHDocVw of IDE that have more complete defines). For example, this is something differents: Embedded define from SHDocVw_EWB (look var PostData): IDE define from SHDocVw (look const PostData): Since those project come from very old one, I think it's really difficult to define what is the issue: the lack of source code for your app, related to how you use the component, then does not help.
-
Any Delphi library for setting E-Core and P-Core Affinity for a process?
DelphiUdIT replied to wxinix's topic in Windows API
I made some times ago this to retrive the p-core (I think is similar to that used in the post from @Anders Melander ) : use Windows.System.SystemInformation; //this come from WINMD (getit) //Result = 0 --> No Hybrid system //Result = -1 --> DIFFERENT RECORD LENGTH (API VERSION OLD OR NEW) //Result = -2 --> API Error //Result > 0 --> mask with Power Core (no more than 63 core, or the result type should be change) //Tested only with Intel x64 CPU (no Xeon, no Numa system) function GetCPUPowerArray: INT64; var CPUInfoSet: TArray<SYSTEM_CPU_SET_INFORMATION>; dwlengthsize: ULong; begin Result := 0; dwlengthsize := 0; setlength(CPUInfoSet, 0); GetSystemCpuSetInformation(nil, 0, dwlengthsize, 0, nil); if (dwlengthsize <= 0) then begin Result := -2; exit; end; if ((dwlengthsize mod sizeof(SYSTEM_CPU_SET_INFORMATION)) <> 0) then begin Result := -1; exit; end; setlength(CPUInfoSet, dwlengthsize div sizeof(SYSTEM_CPU_SET_INFORMATION)); GetSystemCpuSetInformation(@CPUInfoSet[0], dwlengthsize, dwlengthsize, 0, nil); for var i := Low(CpuInfoSet) to High(CpuInfoSet) do if (CpuInfoSet[i].CpuSet.EfficiencyClass > 0) and (i < (sizeof(INT64)*8 -1)) then begin Result := Result or (1 shl i); end; setlength(CPUInfoSet, 0); end; -
I don't know the EmbeddedWB, so I cannot help you. Sorry.