-
Content Count
1030 -
Joined
-
Last visited
-
Days Won
22
Posts posted by aehimself
-
-
Forget about dism and SFC, those commands never fixed any issues since I'm working with computers 🙂 The command you are looking for is wsreset, I think I had to use it a couple of times on my Insider PC.
-
3 hours ago, Mark- said:Am I wrong to think that some values, while using WMI to fetch the values, WMI retrieves the values from the registry?
To be honest I am not 100% sure about it, but I think no. WMI is storing information in it's own database, which is a piece of junk. Back in the days when I was a sysadmin we had to rebuild countless corrupted WMI databases 🙂
Wikipedia also seems to confirm that it's separate from Registry: "Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification."
https://en.wikipedia.org/wiki/Windows_Management_Instrumentation
-
Don't rely on the registry, it easily can be overwritten! Even if it's temporary, it can confuse your application.
I found this code in the Internet, which I extended to generate an MD5 hash with DCPCrypt. Remove it if you don't need / have it and use it if you want.
-
6 hours ago, Lars Fosdal said:Snapshot it. [...] Snapshot it.
Please tell me that Oracle VirtualBox is not using incremental/differential snapshots (like VMware does)! If yes, creating a snapshot and continuing to use the VM will eat up your disk space quicker than you could say "upgrade"!
-
I personally never used FireDAC, and it shouldn't be an issue at all, but here we go. Maybe the driver waits for commiting the transaction? Also you can try not to clear, but simply say qry.SQL.Text := 'DROP TABLE USERS'. It will also trigger the change in the TStrings (which I guess the SQL property is) but it worths a try...
-
Happens a lot to some of us at work, using 10.0. Sometimes a reinstall helps, sometimes it comes back... I suspect it has to do something with the size of the codebase / amount of components and addons installed, but was never able to confirm this.
Also keep in mind that in the release notes of 10.3.3 they mentioned a bugfix of a sudden IDE crash.
P.s.: turn off code insight. It's unusable anyway and can cause havoc in the IDE!
- 1
-
Yes, 6.1.11 is the latest I could find (and therefore have).
I was hoping someone knows where to find a recent version.
I honestly think Oracle discontinued it; my hopes are more on unofficial builds (like oss.netfarm.it was for ClamAV).
-
Yes, the installer has a 32 bit version, but it only offers the 64 bit server for installation 😞
-
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.
-
Agreeing with @David Heffernan here. If the only solution is to kill and restart you are facing an endless loop, a never firing event, critical section deadlock, incorrect CoInitialize context, an unhandled exception rendering the rest of your code unusable, or thousands of other reasons, what moving to a UWP will most likely not solve.
Litter your code with debugging log messages and you'll find out quickly what the culprit is.
-
Indeed the question is a little bit broad. Are you looking for visual or functional updates? The "How can I modernize my app" can mean implementing cloud-based data storage and/or processing with extensive APIs or just eye candy to make end users more comfortable using it.
-
35 minutes ago, John Kouraklis said:Out of curiosity, does the comment in SQLite site implies that they do not use threads internally in the database?
The existence of sqlite3_interrupt suggests that yes indeed, they do 🙂
-
Maybe related...?
I'd also experiment with .BringToFront and .RestoreTopMosts but I'm almost certain that this will push it behind a modal dialog. Keep in mind that this is by design though - if there's an open modal dialog behind your visible form, no actions will be processed and your program will seem to be frozen!
If you really need to achieve this, you could make your own dialog as a simple form and handle the .Enabled and .Visible properties from code. It might sound messy, but results will always be more reliable than playing around with owner and poup handles imo.
-
1 hour ago, ertank said:Maybe you can run two threads?
Something like your thread-1 does the loop. Upon a variable trigger or a procedure call, thread-1 runs the possibly never ending code in thread-2.
After that thread-1 checks if that thread-2 terminates in a given time limits.
If there is a timeout, your main app can provide a feedback to user and maybe an option to re-start the app or something.
This seems to be over-complication for me. Basically, this is somewhat what happens, only with thread 1 being the main (VCL) thread.
Based on the comments above it seems on Linux there's a high chance (almost certain?) that the app will quit. On Windows it leaks memory and there's a slight chance of further misbehavior - although I could not induce a case like this myself. At the end of the day, if the app is most likely to stop it's better to try to kill the thread first imo. With the 25 prior confirmations, of course 🙂
-
I'd add a scrollbox in the groupboxes first, and add insert the controls on the scrollboxes. Just to be sure that they'll be all visible.
Edit: Also, I'd add recursivity in the GetAllCheckboxes method, but that's only my taste.
-
1 hour ago, Joseph MItzen said:[...] a folk definition of insanity is to do the same thing over and over again and to expect the results to be different [...]
https://i.imgur.com/sqZE6sS.jpg
I hope some will get it 🙂
-
37 minutes ago, Lars Fosdal said:That said - in this case, it sounds like the third party engine has serious flaws.
It does. But we all know the phrase - you cook with what you have 😞
- 1
-
15 minutes ago, Joseph MItzen said:Is now a good time to bring up that threads are evil? 😈
I strongly, strongly disagree. They introduce more problems that they solve in some implementations, true; but with correct usage they can make a sluggish UI fluent, a long running calculation finish in a fraction, or simply making the application do several calculations in parallel instead of serial. One word for all: they make a better experience and happier end-users.
Threads are dangerous. Not evil.
- 1
-
As far as I remember (I am not allowed to use CE anymore, unfortunately) you can request a new license for CE somewhere on the website after logging in.
- 1
-
1 hour ago, Anders Melander said:procedure TMyThread.Execute; begin while (not Terminated) do begin CallStuffThatMightBlockForever; if (FNotInterestedAnymore) then break; end; end;
There is no cycle and - as I mentioned earlier - CallStuffThatMightBlockForever might never return, therefore the break will never trigger.
26 minutes ago, Anders Melander said:Then the thread will be killed when the application terminates.
The point is that it's better to forget about the thread, report a timeout and continue as if the thread had been forcefully terminated.
Of course if the thread has allocated or is blocking resources then that solution might not work.
If the application terminates I'm perfectly fine with that. Before reaching this point there will be 25 thousand nagging confirmation messages. If the user says yes, and accepts that the program might quit or become unstable, I did what I could.
Unfortunately it does block resources. However leaving it to run also can be a solution. If it's needed again I can launch an other instance, this will only cause problems during shutdown. Unless I can detach them from the process...
-
Edited to library 🙂 Sorry for not using the correct terminology, since this is my first multi-platform solution I'm not familiar on how these modules are called elsewhere.
The original question is still valid, though.
-
There's no cycle, no serial commands in my thread. It calls one method in a blackbox library (blackbox = not written by me, closed source) which can freeze or take way too long to execute. My code will not regain control for hours to be able to quit, or won't regain it at all.
This leaves me no options but to expect leaks and misbehavior and kill it with fire.
-
Hello,
I know it's not good and should be used as a last resort or not at all. But I still need a true, cross-platform solution to instantly kill the execution of a thread, no matter what. Since I only have Windows experience, this is what I have until now:
Uses [...]{$IF defined(MSWINDOWS)}, WinApi.Windows{$ENDIF} [...] {$IF defined(MSWINDOWS)} If Self.IsRunning Then TerminateThread(Self.Handle, 1); {$ENDIF}
How this should be implemented on Linux and more?
Thanks!
-
13 hours ago, Fr0sT.Brutal said:Yeeah, when you move from English-only to multi-language, these 100 lines will turn into 100 files xD
Well, I'd say one language = one set of of rules = one helper unit. You'll not reach 100 files, but can get close if you are ambitious enough 🙂
Plus, you need a fluent speaker of that language to help you out. I personally do not speak French, but I hear they have quite messed up way of saying numbers (like 92 is "76 and 16" or something).
- 1
Controlling MS Word Window from Delphi form
in VCL
Posted
Completely agree with @David Heffernan here. From what I imagine your app is like, you would have easier (and more user friendly) results looking into writing a Word plugin instead.