-
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 ExcellentAbout Uwe Raabe
- Currently Viewing Forums Index
- Birthday 09/30/1956
Technical Information
-
Delphi-Version
Delphi 12 Athens
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Creating irregularly shaped multi-dim dynamic arrays
Uwe Raabe replied to JohnLM's topic in Algorithms, Data Structures and Class Design
This doesn't seem right. The call should be SetLength(arrayvar[rowindex], columnsize), shouldn't it? -
Project Magician has an option for that:
-
Source still built even though the DCUs are first in the path..
Uwe Raabe replied to Ian Branch's topic in Delphi IDE and APIs
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. -
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.
-
New Code Signing Certificate Recommendations
Uwe Raabe replied to James Steel's topic in General Help
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. -
That won't catch the keys pressed inside the grid itself. The BeforeInsert event is indeed the best place.
-
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.
-
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?
-
A TEdit can only show one line. For multi-lines use a TMemo instead.
-
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.
-
How do I set debugging ranges with-in lines?
Uwe Raabe replied to JohnLM's topic in Delphi IDE and APIs
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.) -
With inline vars this works: Var Boy, Girl, Couple: string; But this does not: Var Boy: string; Girl: string; Couple: string;
-
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);
-
Well, MMX was born in 2001 and I assume the help is just as old.