-
Content Count
1089 -
Joined
-
Last visited
-
Days Won
23
Everything posted by aehimself
-
Delphi 12.2 code editor blinks for every key I press
aehimself replied to Clément's topic in Delphi IDE and APIs
That was my first guess. Flickering is still present even if it's off. -
Delphi 12.2 code editor blinks for every key I press
aehimself replied to Clément's topic in Delphi IDE and APIs
I'm only asking because the quick peek I took at Delphi 12.2 until now showed the same symptom. And I'm using RDP to access the machine Delphi is installed on, too. -
Delphi 12.2 code editor blinks for every key I press
aehimself replied to Clément's topic in Delphi IDE and APIs
@Clément Are you accessing Delphi through MsTSC? -
In the prehistoric times, you could download the MySQL C library from their website. Then they changed to the installer-type (download installer, select Connector-C, install 32 bit, copy file, uninstall 32 bit, install 64 bit copy file, uninstall everything). Now it's even worse. The installer now offers only 6.1.11, but you still can have the latest by downloading MySQL server and copying the file from the Lib folder. My 64 bit Delphi apps are using it happily; but that's only 64 bit, and there's no 32 bit version of MySQL anymore. The question is: is there a way to get the latest (currently 8.0.18) libmysql.dll in 32 bits? P.s.: I know that libmariadb is a drop-in replacement but I'd prefer the original if possible somehow / somewhere.
-
Both of libmysql.dll-s in HeidiSQL's bundle seems to have the PE L header, suggesting they are indeed 32-bit: I'll check on them later if they work properly. It would be nice to know the source of these but I have doubts they are official.
-
Seems to be like encoding. Make sure that encoding is set properly, and also if the text gets scrambled at logging or not (check .AsBytes property and verify if value is a valid UTF8 / UTF16 / ANSI string)
-
ANN: Better Translation Manager released
aehimself replied to Anders Melander's topic in Delphi Third-Party
@Anders Melander Is an auto-update feature planned for BTM in the future? That, and a filter to only show untranslated and/or changed entries would make BTM a perfect tool imo. Thank you very much for it! -
VCL or CLX? How do I know what type of application I'm designing in Delphi 7. I'm a beginner.
aehimself replied to Miguel Jr's topic in Delphi IDE and APIs
Unsupported definitely. But dead...? I hear it's the go-to version for lots of legacy codebases. -
Parsing Json to retrieve nested record
aehimself replied to bzwirs's topic in Network, Cloud and Web
recenum and tubeenum are initialized automatically by Delphi during the For .. In ... cycle. You don't need to "obtain" them. Similar to: Var stringarray: TArray<String>; stringenum: String; Begin [...] // stringenum is "uninitialized" at this moment For stringenum In stringarray Do // stringenum is now initialized and contains the next element in the array [...] In the original snipplet values are being assigned at: For recenum In records Do Begin [...] For tubeenum In tubes Do -
Is there a way to check is the "user Idle" (no interaction)
aehimself replied to Tommi Prami's topic in Windows API
Nice insights! I'll make some updates once I managed to set my dev VM up (I'm in the middle of switching to Linux on my daily driver atm...) -
Is there a way to check is the "user Idle" (no interaction)
aehimself replied to Tommi Prami's topic in Windows API
I have a component which detects and attempts to "break" the idle status. https://github.com/aehimself/AEFramework/blob/master/AE.Comp.KeepMeAwake.pas Works fine even in remote desktop connections. -
Based on this, you can use the old paint.exe to force-launch the new Paint 3D: mspaint "C:\TEMP\A.jpg" /ForceBootstrapPaint3D As far as I know though even "modern" apps have executables they just reside in unimaginable places somewhere under your local appdata folder. Unfortunately though I can not confirm this as Paint 3D is one of the first things I uninstall from a new Windows 🙂
-
TStringStream inconsistent results
aehimself replied to Mark Williams's topic in RTL and Delphi Object Pascal
Also, there's no real benefit of copying your memory stream to a string stream and loading it to the IXMLDocument that way; it just adds one more point-of-failure when it comes to encoding (if not specified, TStringStream considers the data to be ANSI encoded): constructor TStringStream.Create; begin Create('', TEncoding.Default, False); end; What I'd do is save both binary data to the disk and inspect them with a HEX editor. It will quickly reveal the differences what you might have to adjust, like encoding differences, absence / presence of BOMs, etc. -
I know, I should write some documentation about most of my stuff... Until then, there's a minimum example on how to create a sample update file in this post. However, I started thinking. If you simply want to show it, why not a simple TMemo, which loads the information from a .TXT file / embedded resource / HTTP?
-
Do you want to embed this into your .exe version information or just to display it somewhere? I'm asking because TAEUpdateFile which comes with TAEUpdater bundles all this information - you just have to fill them. The method FileVersion returns most what you'll need.
-
If there is a new patch / version available it will always show up in this forum. This is how I get informed 🙂
-
What about writing a bds.exe which starts Delphi's (now renamed) bds.exe but deletes the shortcut once it's closing? 😄
-
I started to experiment with Delphi 12 shortly after it came out at work with a fairly large project. It is using ~100 home-brewn components, consists of thousands of frames (with multiple levels of visual inheritance which is a deathbed for Delphi as far as I recall) in about 1,5M LOC (excluding all external packages which we use from DCU). Until we make the decision to officially switch I'll keep using Delphi 12 as a daily driver, supporting the same codebase as everyone else and in my experience even the unpatched Delphi 12 gave less internal errors than 11.2 (which we are currently on).
-
You can go extremely hacky and create a "transparent" panel - and simply put all your components on this. Since TPanel is a TWinControl descendant, .BringToFront will work properly on it. You can use the source here, just change the painting slightly: Procedure TDimPanel.Paint; Begin // Omit the call to inherited in general. Self.Canvas.Draw(0, 0, _bitmap, 255); // Might need 0 instead of 255 for opacity - I don't know by heart End;
-
The medium and the format where your data arrives is irrelevant. Just assemble the text in your receiver routine and go on from there.
-
I think we used this, before getting rid of COM altogether: https://github.com/CWBudde/ComPort-Library
-
Find Max, Min and Avarage in Memo or Edit Values
aehimself replied to om3raltiparmak's topic in Algorithms, Data Structures and Class Design
One issue what already stands out: for i := 0 to Length(strArray) do This should be Length - 1. This can give you a range check error. -
The only “issue” I personally experienced with DCPCrypt was string encoding. While a PHP library was working on UTF8, using the built-in functions of DCPCrypt used Unicode - there’s why the end result didn’t match. Once I converted my string to UTF8 TBytes and encoded that everything started to work perfectly.
-
Seeking Collaboration: Creating a Delphi Component for STM32 Boards
aehimself replied to techdesk's topic in General Help
So you use a program to even write the question for you and when we don’t get what you wanted at the first place you get frustrated; am I getting this right? Don’t forget that this forum is to discuss, share and help one another; not to do what you don’t/can’t even state clearly. I wish the best of luck with your project. I spent way too much time figuring out what you want. -
Monitor Windows application and restart if needed
aehimself replied to bdw_nz20's topic in Windows API
Sure; this is why I added that the same can be implemented between applications. You have a watchdog application which queries your main application via TCP, window messages, mapped files, etc. The logic is the same, but instead of a watchdog thread you have a separate executable, and instead of a Boolean / TEvent the signaling channel is different. I personally would go with a window message which your main program has to reply to. Easy to implement on both sides: use SendMessageTimeout in the watchdog and one extra method in the main program.