Jump to content

Lars Fosdal

Administrators
  • Content Count

    3483
  • Joined

  • Last visited

  • Days Won

    114

Everything posted by Lars Fosdal

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

    ProgressBar not update in android

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

    ProgressBar not update in android

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

    FireDAC + TableNames with '$'

    @Dmitry Arefiev - Is there a way to deal with $ in table names for PostgreSQL?
  5. 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.
  6. Lars Fosdal

    Close application during form create??

    I'd probably just Halt;
  7. 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.
  8. 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?
  9. Lars Fosdal

    TestInsight 1.2 released

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

    Split String

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

    Split String

    You could fully qualify the call. System.SysUtils.SplitString( ... Sorry, brainfart: System.StrUtils.SplitString( ...
  13. 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.
  14. Lars Fosdal

    win32 exe compiled in Delphi11 does not run on W2000

    Still running Windows 2000... I can't find the words...
  15. 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;
  16. Lars Fosdal

    Digitally Sign Applicaiton

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

    Footman

    with is a horrific construct with loads of pitfalls. Don't use it.
  23. 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.
  24. 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
  25. Copying the code from D11.x would definitively be a no-no. Recreating the functionality where needed with your own code - no problem.
×