Adding a Windows 10 computer to a Samba (NT4) domain

Microsoft is trying to force everybody to update from the old NT4 domain system to the "new" (as in "was new >10 years ago") Active Directory system. While that's probably a good idea for most people there are some like me stuck with a working Samba installation that for some reason needs to continue to … Continue reading Adding a Windows 10 computer to a Samba (NT4) domain

GExperts bug: CTRL+V on FMX form designer inserts into secondary editor window

I got a bug report for GExperts and Delphi 10.4 that's really curious: When a secondary editor window is open in the IDE and the FMX form designer is active, trying to insert a component from the clipboard into the form inserts the textual description of that component into the editor windows instead. I could … Continue reading GExperts bug: CTRL+V on FMX form designer inserts into secondary editor window

How to fix the “teEngine not found” compile error

Today I had a very strange compiler error in Delphi 10.2, that occurred on one computer but did not occur on another computer: myUnit.pas(28): error F2613: Unit 'TeEngine' not found. The project was checked out from svn on both computers, so the source code was identical. So the unit "VCLTee.TeEngine" from TeeChart was in a … Continue reading How to fix the “teEngine not found” compile error

Allow svn:author to be changed for a subversion repository

Note to self: In order to allow changes to the author of an svn commit, the pre-revprop-change hook of the repository must be changed like this: Insert the line [bash] if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi [/bash] just below the existing, similar line that allows changing svn:log. … Continue reading Allow svn:author to be changed for a subversion repository

How to use JumpFolder to create multiple “start menus”

Even after Microsoft abandoned the stupid idea of the Windows 8 start screen and gave us back the start menu in Windows 10 there is still a lot to desire. Of course you can replace the the start menu with a tool like Open Shell (formerly known as Classic Shell) which improves it quite a … Continue reading How to use JumpFolder to create multiple “start menus”

When sorting a “StringList” is very costly

The following code looks innocuous but slows down a program significantly: [delphi] type TJCHListSortCompare = function(Item1, Item2: Integer): Integer of object; TCheckListBoxWithHints = class(TCheckListBox) private procedure QuickSort(L, R: Integer; SCompare: TJCHListSortCompare); // [...] procedure TCheckListBoxWithHints.QuickSort(L, R: Integer; SCompare: TJCHListSortCompare); var I, J, P: Integer; tmpObj: TObject; tmpStr: string; tmpChecked: Boolean; begin repeat I := L; … Continue reading When sorting a “StringList” is very costly