Jump to content

Lars Fosdal

Administrators
  • Content Count

    3565
  • Joined

  • Last visited

  • Days Won

    120

Everything posted by Lars Fosdal

  1. Lars Fosdal

    Using WriteLn in dll

    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.
  2. Lars Fosdal

    Close application during form create??

    I'd probably just Halt;
  3. Lars Fosdal

    FireDAC + TableNames with '$'

    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.
  4. Lars Fosdal

    FireDAC + TableNames with '$'

    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?
  5. Lars Fosdal

    TestInsight 1.2 released

  6. Lars Fosdal

    Split String

    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.
  7. Lars Fosdal

    Split String

    I meant to write System.StrUtils.SplitString( ...
  8. Lars Fosdal

    Split String

    You could fully qualify the call. System.SysUtils.SplitString( ... Sorry, brainfart: System.StrUtils.SplitString( ...
  9. Lars Fosdal

    win32 exe compiled in Delphi11 does not run on W2000

    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.
  10. Lars Fosdal

    win32 exe compiled in Delphi11 does not run on W2000

    Still running Windows 2000... I can't find the words...
  11. Lars Fosdal

    Split String

    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;
  12. Lars Fosdal

    Digitally Sign Applicaiton

    9009 = file not found. Does $(OUTPUTPATH) contain the actual exe file? And is the path to the certificate correct?
  13. 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.
  14. I'd love an AI that would suggest improvements to the code that I write, instead of writing the code for me.
  15. D11.1 is ok-ish. D11.2 has issues.
  16. Lars Fosdal

    Default(TMyRec) usage

    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.
  17. 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;
  18. Lars Fosdal

    Footman

    with is a horrific construct with loads of pitfalls. Don't use it.
  19. Lars Fosdal

    How to check and set

    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.
  20. Lars Fosdal

    How to check and set

    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
  21. Copying the code from D11.x would definitively be a no-no. Recreating the functionality where needed with your own code - no problem.
  22. Do you want to add the selected from ComboEdit1 to the dropdown of ComboEdit2? Hook Combo1Edit.OnSelect procedure TForm4.ComboEdit1OnSelect(Sender: TObject); begin ComboEdit2.Items.Add(ComboEdit1.Text); end; This event is called when an item is selected from the dropped down list of ComboEdit1. Naturally, you need to add code to see if the item has already been added before you add it.
  23. Lars Fosdal

    Object files for Google Snappy C API?

    The quality of posts is far more important than the quantity of posts. Focus on the quality of your posts, and you'll have no complaints.
  24. Lars Fosdal

    The Delphi 11.2 release thread

    Just to capture the gossip 🙂
  25. Another option: REST server used by REST client (thick or thin)
×