-
Content Count
3483 -
Joined
-
Last visited
-
Days Won
114
Everything posted by Lars Fosdal
-
Does Visual Studio's Intellisense fail as often as Delphi's Code Insight?
Lars Fosdal replied to PeaShooter_OMO's topic in Delphi IDE and APIs
I use VS 2022 and C# on .NET. It gets confused if you have third party assemblies without sourcecode that extend standard classes. It will show the doc for the standard class methods, even if the IL is decompiled correctly for the third party assembly. But, no, I haven't seen it stop working completely. -
Also, I would like to stress that doing direct SQL to a server from a mobile device is high risk. I recommend a REST service as a front end to the database.
-
Create a shared percentage variable that can be referenced from both the db thread and the main thread In the UI, show the progress bar display, and refresh it on a timer f.x every 500ms, getting the percentage from the shared variable Create a thread to do the SQL fetch/write operations and update the shared progress percentage variable Once the thread is completed, close the progress bar display You may want to protect the shared variable with a critical section.
-
@Dmitry Arefiev - Is there a way to deal with $ in table names for PostgreSQL?
-
Another alternative is to use OutputDebugString, which can be seen in debuggers and with a debug output watcher app. I went a step further and added a DebugOut wrapper, so that I can use a switch to silence OutputDebugString as well as redirect the strings to a buffer which is flushed to a log file.
-
I'd probably just Halt;
-
Hard coded. FireDAC.Phys.SQLPreprocessor.pas, line 1028 (D11.1) '$': if not FInStr1 and not FInStr2 and (ConnMetadata <> nil) and (ConnMetadata.Kind = TFDRDBMSKinds.PostgreSQL) then ProcessQuoteTag; Although that seems to be an exception for PG. I guess Alphanum + Underscore is the only safe bet for DB entity names.
-
Quick and dirty: What if you add the table names as aliases too? tableWRules tableWLinks with tjWLL as (select wrl.fldidxwarerule as fldidxwarerule, json_agg(wll.*) as "WARESRULESLINKS" from vdata.":tableWRules" wrl inner join vdata.":tableWLinks" wll on (wrl.fldidxwarerule = wll.fldidxwarerule) where And add the actual table names like you would do with any other parameter?
-
If you Ctrl-Click on the SplitString - where do you end up? What if you add StrUtils at the end of the uses section? The behaviour you describe is a bit baffling, tbh.
-
I meant to write System.StrUtils.SplitString( ...
-
You could fully qualify the call. System.SysUtils.SplitString( ... Sorry, brainfart: System.StrUtils.SplitString( ...
-
win32 exe compiled in Delphi11 does not run on W2000
Lars Fosdal replied to rudy999's topic in Windows API
Industrial machines that are not connected to a LAN - ok. IMO, any machine that is on a network - even if it can't reach the internet by itself - needs to be continously updated/patched, and replaced before EOL. It is like insurance. Money that feels like a waste until something bad happens. -
win32 exe compiled in Delphi11 does not run on W2000
Lars Fosdal replied to rudy999's topic in Windows API
Still running Windows 2000... I can't find the words... -
I'd use a helper array to avoid running the split twice. var Splits: TArray<string>; begin Splits := SplitString(MyStr,'-'); LeftMyStr := Splits[0]; RightMyStr := Splits[1]; end;
-
9009 = file not found. Does $(OUTPUTPATH) contain the actual exe file? And is the path to the certificate correct?
-
Is asked ChatGPT: What is Internet Component Suite for Delphi?
Lars Fosdal replied to FPiette's topic in ICS - Internet Component Suite
I think calling AI for AI still is a misnomer. It is various facets of specialized ML. An actual self-organizing AI is very, very far in the future. A self-aware AI, even further in the future. As the problem domain becomes more complex, it will be harder and harder to tell the rubbish from the pearls. That is a real problem. I like tools that I can rely on. That I can trust. Actual knowledge that reflects reality, not constructs generated by algorithms with a certain risk of failure. Art generators like MidJourney, are fun and useful, and I even subscribe for $10/month to be able to play around with it - but AI art also pose a risk as it undermines actual artists. MidJourney prompt: "A computer programmer asks an AI to assist him in writing complex code, photography, ultrarealistic --v 4" It looks great until you notice the glaring mistakes. -
Is asked ChatGPT: What is Internet Component Suite for Delphi?
Lars Fosdal replied to FPiette's topic in ICS - Internet Component Suite
I'd love an AI that would suggest improvements to the code that I write, instead of writing the code for me. -
TDateTimeHelper from D11 that can be used in D10.4?
Lars Fosdal replied to David Schwartz's topic in RTL and Delphi Object Pascal
D11.1 is ok-ish. D11.2 has issues. -
When I use records, it is exceedingly rare that they are left unfilled with actual values for very long, so I would tend NOT to initialize.
-
How to add an item to ComboEdit2 after an item from Comboedit1 has been selected
Lars Fosdal replied to Linuxuser1234's topic in FMX
Well, I should also pay better attention to details. My initial reply was VCL code, not an FMX code. My apologies. TComboEdit.OnChange handler procedure TForm2.ComboEdit1Change(Sender: TObject); begin if ComboEdit2.Items.IndexOf(ComboEdit1.Text) < 0 then ComboEdit2.Items.Add(ComboEdit1.Text); ComboEdit2.ItemIndex := ComboEdit2.Items.IndexOf(ComboEdit1.Text); end; -
with is a horrific construct with loads of pitfalls. Don't use it.
-
My own scheduler loads a config, and has events added dynamically based on the config settings. Config-wise, events can be oneshot or repeating. My settings allows for fixed intervals, or specific timeslots during a day. The settings are parsed and a scheduler, which basically is a list of times and what is supposed to happened at that time, is rebuilt on startup and at midnight for today's events. Events that are in past time are removed. It also add specific built in events such as weekly events or overnight events. Basically, your timer would then look up "Now" and compare it to the sorted list of events in the scheduler. If "Now" > "Event.Time", trigger the event and remove the entry from the scheduler. In my case, it creates threads specific to the event. How frequently you need to check "Now" and scan the events, depends on how urgent it is that the event happens on time.
-
Which version of Delphi? I am being very terse, since doing is learning. Checkbox.Checked gives you the boolean state of the checkbox MemoField.Text returns the text where you have the day See https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Date_and_Time_Support for how to compare timestamps
-
TDateTimeHelper from D11 that can be used in D10.4?
Lars Fosdal replied to David Schwartz's topic in RTL and Delphi Object Pascal
Copying the code from D11.x would definitively be a no-no. Recreating the functionality where needed with your own code - no problem.