Jump to content

Uwe Raabe

Members
  • Content Count

    2757
  • Joined

  • Last visited

  • Days Won

    163

Uwe Raabe last won the day on January 10

Uwe Raabe had the most liked content!

Community Reputation

2076 Excellent

About Uwe Raabe

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. This doesn't seem right. The call should be SetLength(arrayvar[rowindex], columnsize), shouldn't it?
  2. Uwe Raabe

    Continually Losing Frames

    Project Magician has an option for that:
  3. If you build a project, all visible sources are compiled. Only when you just compile a project where the dcu and source are both available, the source is compiled only when its time stamp or memory content is newer than the binary. If you don't want to compile any library sources but always use the binary, you must remove the source from Tools > Options > Language > Delphi > Library > Library path as well as from Project > Options > Building > Delphi-Compiler > Search Path. Unfortunately that removes the ability to debug the library sources. To fix that, you have two options. Which you choose depends on where you add the binaries folder: A: Tools > Options > Language > Delphi > Library > Library path: Add the source folder to Browsing path in the same dialog. B: Project > Options > Building > Delphi-Compiler > Search Path: Add the source folder to Project > Options > Debugger > Source Path Obviously, solution A affects all projects, while B affects the current project only. Note: You have to compile the library with debug options to make that work. With solution A you can separate the debug binaries from the release ones by placing the debug binaries in a separate folder (just as the Delphi lib folder is organized) and add the debug binaries folder to the Debug DCU path entry of Tools > Options > Language > Delphi Options > Library. This will allow to use the debug binaries when the Use debug .dcus option is set in Project > Options > Building > Delphi-Compiler > Compiling.
  4. Uwe Raabe

    Reading empty collections

    Indeed! Probably no one at Embarcadero is going to change a that old behavior, because no one can say for sure what the consequences would be for existing code. Asking here only reaches a small part of the existing Delphi developers, from which some may not even know whether their code relies on the current implementation or not. I second Anders view of better using a workaround. Besides his suggestion, you can also write a sentinel value as the only collection item, which is removed after reading. Candidates for interception can be the ReadState/WriteState methods of the component. In WriteState add the sentinel when the collection is empty before calling inherited and in ReadState remove the sentinel if found after calling inherited.
  5. Uwe Raabe

    New Code Signing Certificate Recommendations

    So your certificate has been issued in 2022 and thus doesn't fall under the new hardware rules. You can use it as long as it is valid, but then you need one of the new ones bound to a hardware token.
  6. Uwe Raabe

    End Of File

    That won't catch the keys pressed inside the grid itself. The BeforeInsert event is indeed the best place.
  7. Uwe Raabe

    The Advent of Code 2024.

    I would rather say that are 21 seconds (which is probably less than I actually need to just read the description). This is backed by this quote from the About text: Since the start time of each puzzle is way out of my awake periods a day, I can thankfully ignore the ranking system completely. This allows me to concentrate on finding a suitable solution, sometimes even a clever one.
  8. Uwe Raabe

    Application Loading incorrect bpl

    Is this folder is added to the PATH variable or how do you make Windows find those libraries? Also, which folder is given as the starting folder when you launch the application?
  9. Uwe Raabe

    My sLineBreak is not working

    A TEdit can only show one line. For multi-lines use a TMemo instead.
  10. Uwe Raabe

    Naming abbreviations for controls

    I try to omit the control type in the name in favor of the purpose the control is used for. F.i. instead naming a TLabel as lblSomething and a TStaticText as sttSomethingElse I use dspSomething, dispSomething or even displaySomething lately. Similar I give a TEdit, TMemo or TComboBox (if not in List style) a editSomething name, while a TRadioGroup, TLIstBox or TComboBox (when in List style) gets a name like selectSomething. The advantages are that these names usually stay as is when the controls are changing type and it contributes to documentation - at least a little bit.
  11. A bit tedious, but you can set a breakpoint by pressing F5 in each line from 2 to 7 and use F9 instead of F8. (Not that I would rate that a good solution, but my perception may be different than yours.)
  12. Uwe Raabe

    Why doesn't this work?

    With inline vars this works: Var Boy, Girl, Couple: string; But this does not: Var Boy: string; Girl: string; Couple: string;
  13. Uwe Raabe

    Why doesn't this work?

    You are using inline variables. Try moving the variables declaration before the begin. procedure TFormStringConcatenation.ButtonAddCoupleClick(Sender: TObject); Var Boy: string; Girl: string; Couple: string; begin Boy := EditEnterBoy.Text; Girl := EditEnterGirl.Text; Couple := Boy + ' and ' + Girl; ListBoxCouple.Items.Add(Couple);
  14. Uwe Raabe

    Upgrade Costs

    Could it be VAT?
  15. Uwe Raabe

    Switching off automatic Bookmarks?

    Well, MMX was born in 2001 and I assume the help is just as old.
×