-
Content Count
1169 -
Joined
-
Last visited
-
Days Won
16
Everything posted by FPiette
-
How to gracefully get rid of the use of dictionaries?
FPiette replied to Shrinavat's topic in General Help
@Fr0sT.Brutal given the way he defined N, S, E, W (Power of two), it is likely meant to combine them (NE = N + E). It is better stay like it is, or replaced by an "set of". But of course we don't know how he makes use of those values so it is pure speculation... -
The external sources where much much more used.
-
They are gone. See https://blogs.embarcadero.com/community/
-
RADSTUDIO lamp Utllity
FPiette replied to Hans-Wolfgang's topic in Algorithms, Data Structures and Class Design
What kind of website? What do you want to do? What do you already know about web technologies? What do you already know about Delphi targeting Linux (The "L" in LAMP)? Did you already used Google to find a starting point? -
Retrieve Delphi version used from within an App?
FPiette replied to Ian Branch's topic in General Help
ICS has an include file which define a specific symbol for each Delphi version from D1 to D10.4. The symbol are named after the highest version number you can find in the IDE about box. For example in D10.4.2, you can read "Embarcadero® Delphi 10.4 Version 27.0.40680.4203" in the about box and DELPHI27 symbol is defined. There are also symbols like DELPHI15_UP for Delphi Version 15.X.Y.Z aka Delphi XE and up. This symbol allow conditional compile for code containing feature introduced in the language at a specific version. There are also similar symbols for C++ Builder and for the compiler itself. Read the file... -
Retrieve Delphi version used from within an App?
FPiette replied to Ian Branch's topic in General Help
To a certain extent, you may use the predefined symbols. See the documentation here and here. Using conditional compilation, you can generate a string with a pretty name for Delphi version. -
Help to achieve multiple inheritance by class redesign
FPiette replied to iiid354's topic in Algorithms, Data Structures and Class Design
No constructor in interface. The constructor stay in the class. Base methods such as Work() can be in a base interface and all other interfaces inherit from the base interface. -
Help to achieve multiple inheritance by class redesign
FPiette replied to iiid354's topic in Algorithms, Data Structures and Class Design
Since Delphi do not support multiple class inheritance, you should use interfaces. A class can support many interfaces. So TSalesManager can support IHuman, ISales and IManager interfaces. At the class level, you can delegate an interface implementation to another class. -
Don't make it, use an existing proven solution. For example WAMP or LAMP.
-
Good Key/Hash for SQL string
FPiette replied to chkaufmann's topic in Algorithms, Data Structures and Class Design
Almost no hash avoid duplicate values. Only the full data, maybe lossless compressed, use as a key has no duplicate. The hash used as a key in a dictionary is interesting to speed up search for previously executed request. The dictionary should contain the list of all requests having that hash. Once you found the list, using the hash, you can iterate it to find the request. The smaller hash you use, the more duplicates you'll have. -
There once some update to ICS so that FPC could compile it but this has not been maintained. Since FPC is far from being Delphi compatible, there is certainly some work to do. You can do this work and request any ICS change that would be needed to help making if FPC friendly, such as making a method virtual.
-
Read out signed executable certificate possible?
FPiette replied to KodeZwerg's topic in Windows API
Probably what you are looking for is explained in Microsoft documentation. -
You are freeing twice the form: Once from the OnClose because you use caFree caFree, and once when you call Free in the finally block. The second call will crash.
-
You should really do the above. Using the debugger, grab the call stack at the moment of crash.
-
When you said "on the server PC itself", is it using RDP or not? (I'm thinking of what was once name "terminal server"). If this happens on ALL their PC whatever OS they have, this is maybe related to something the have in all enterprise such as a security product, or a remote management or something like that.
-
So this is related to RDP or to the server (What is it?) where Delphi is installed. Do you have a chance to ask someone at the remote site to check if it works locally without any RDP but directly on the machine?
-
Using the debugger, you should see where your application crashes. This would probably give a hint about why it crashes. Did you tried with a minimal program? If not, do it and tell use if it works as expected. If it doesn't, show the code for that minimal program so that we can verify it.
-
That is good. But be sure to check between each step to find out which one is the culprit.
-
So it is not a high DPI issue. Do you have IDE wizard installed? Did you get this issue from the first run after D10.4.2 install?
-
OK, and what is the zoom for text? If not 100%, try with 100%. Just to narrow down the problem. You said "sometimes". Could you find what is causing that? It is very important to have steps to always reproduce an issue, otherwise the guy at Embarcadero will just say "Cannot reproduce" or "need steps".
-
Making a report is indeed very useful BUT you have to find a reproducible way to make this behavior appear or the report will be closed with "cannot reproduce" reason. Just to test, could you set the 4K monitor to 100% to see if the bad behavior persists? If it persists, could you change the video card resolution to full-HD (1920x1080) and 100% to see if the bad behavior persists?
-
I don't see that "effect". Is it such always or only after you've done something?
-
I started to use Pascal in the beginning of '80. I don't remember the exact year but it was something like 1981. At that time I used Pascal on a Motorola 68000 development system to build an image processing system for the industry. I also used USCD Pascal but I don't remember the exact context. Later I moved to C on microcomputers and then CP/M machines and the IBM-PC. On the PC, I used Pascal MT+ at lot before using exclusively C for long time, actually until Delphi was born. And much later, in 1995, I moved to Delphi that I still use today, every days.
-
Cannot Transfer Higher values like Chr(65470)
FPiette replied to AllanF's topic in ICS - Internet Component Suite
ReceiveStr is aimed at AnsiString and use - by default - CR/LF (Two 8 bit ASCII characters, $0D and $0A) as delimiter. I'm not sure that in Unicode, two consecutive bytes are not allowed to be $0D and $0A which are the CR/LF. Probably LineMode would also work if you use $0D, $00, $0A, $00 as LineEnd. But you'll have to provide your own routine to convert the Unicode received as an AnsiString correctly as Angus said above. I have no idea what you are doing and so I cannot advice you better. You should explain what you intend to do. It looks you are designing your own protocol, quit unusually compared to most protocols (FTP, HTTP, SMTP, POP3 and many others) which use ANSI or UTF-8 or Binary or a combination of two. -
Cannot Transfer Higher values like Chr(65470)
FPiette replied to AllanF's topic in ICS - Internet Component Suite
TWSocket makes a conversion to AnsiString when using SendText. This is intended to implement higher level protocols. To send anything, use Send like this: var S : String; begin S := 'Hi ' + Chr(65445) + Chr(65470) + #13#10; WSocket1.Send(PChar(S), Length(S) * SizeOf(Char)); end;