-
Content Count
3565 -
Joined
-
Last visited
-
Days Won
120
Everything posted by Lars Fosdal
-
Since I have a limited set of third party libs and plugins, my backup is to document the installation procedure. It doesn't take very long, IMO. The only thing that is somewhat annoying is the settings migration, but I have a registry file I keep handy to restore my preferred IDE settings.
-
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
@Anders Melander - I prefer the method that David describes. Return a documented error that can be handled. The criteria of the assert means you actually know the situation and should be able to do so. For me, asserts are contract validators that I use in debug mode. If the asserts hits me, I love to see it straight away in the debugger. I am not a fan of asserts in production code. Silly car analogy: Assert means you will drive off the road when you hit an unexpected turn. Asserts off and condition validation and error handling means you hit the brakes instead. -
snake_kebab-case Oh, and the leet teenager edition sn4k3_k3b4b-c453
-
I often use code boxes and haven't had that happen to me. I'm using Chrome. Something I do see is that some old comment text I wrote earlier, sometimes shows up again in the reply editor.
-
AFAIK, editing posts and comments doesn't trigger a notifications for others - so if the intent is to make the update visible, adding a new comment is probably the best approach. Those that have been active in the thread will then get notified.
-
I agree - unless we are talking about old-ish replies? Personally, I am ok with a freeze after so many (days?) policy. Any correction after than can be done in a new comment? Edit: There have been episodes where members have modified their posts/comments a long time after they were written. Usually in the context of "leaving in anger".
-
Is there actually a freeze after a certain period?
-
I know @Daniel tweaked something - but it was supposed to only affect the EMBT people's inability to edit their own posts?
-
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
Anders, With Assert If In_The_Shit then Panic Without Assert If In_The_Shit then DoOurBestToCope else BizAsUsual; -
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
David, The full callstack at the time of the assert is in the first attached QPInfo file of https://quality.embarcadero.com/browse/RSP-31944 Added the extract in a comment. -
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
Just want to add that I loved the way it worked up until that error which hopefully can be quickly remedied. -
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
@David Millington Unable to reproduce in small example. But, uninstalled the Parallel Debugger - and the Assert fail no longer happened. Created a QP https://quality.embarcadero.com/browse/RSP-31944 -
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
Repeatable. And - it brings down the IDE. Will be checking if it is possible to make a small example when I get time. -
ANN: Parnassus Parallel Debugger
Lars Fosdal replied to Dave Millington (personal)'s topic in Delphi Third-Party
I had a failing assert in some CPP code - which I sort of assume is this plugin, since I've never seen it before. It happened on a breakpoint in an exception handler, and it brought down the IDE. Asserts in production code is not a good practice. -
git and Delphi tooling?
Lars Fosdal replied to Lars Fosdal's topic in Project Planning and -Management
There is a fallback to the free version for GitKraken as far as I can tell? -
git and Delphi tooling?
Lars Fosdal replied to Lars Fosdal's topic in Project Planning and -Management
@Uwe Raabe - The pro version of Kraken allows me to create and comment on issues in the tracker, being it Jira, GitHub, GitLab, etc. We simply liked Kraken better than Fork - who knows - that may change over time. You can also create a feature, hotfix or release branch from the Issue, ensuring the commit will contain the issue reference. -
DELPHI 10.4.1 : Manage Platforms, NOT WORK!!
Lars Fosdal replied to gioma's topic in Delphi IDE and APIs
Web Installer or ISO image? -
Rio 10.3.1 Indy TIdSSLIOHandlerSocketOpenSSL seems to not support TLS 1.3. Is there an update anywhere?
-
My perspective is from the VCL app where any number of frames and forms can have focus. Having to deal with the wedged in virtual keyboard that produces input that is not intended for a checkbox or a button is a PITA, hence the COM port. We accept the scan over the COM port in a background thread and decode the GS1 128 AIs to build a content description, queue it, and post a message to the main window which then propagates the info to the focused form/frame. The frame can then check the queued AIs by identity to see it there is content relevant to it. This also allows us to capture the scans faster than we process them, so that the user doesn't have to wait.
-
BTW - Technically, KebabCase 🐑🍽️ should read kebab-case since it typically is used for f.x. REST API URLs where each word is on a hyphen skewer, i.e. a kebab of words. F.x. https//fictivedictionary.com/api/get-meaning-of-word
-
Or simply prefix with Local<var name> or even UnitLocal<var name>? No need to remember any special meanings of a single letter.
-
If you already have a driver, the associated COM ports should be identifiable from the device manager. Open Device Manager Click on View in the menu bar and select Show hidden devices Locate Ports (COM & LPT) in the list Check for the com ports by expanding the same
-
Usually there would be a driver that allows the scanner to be accessed as a COM port, or the scanner presents as a virtual keyboard (wedge configuration). The latter is something that we avoid. The COM port abstraction means it doesn't matter if the device is a BT device, a serial device, or an USB device. A possible starting point would be to explore from here: https://www.zebra.com/us/en/support-downloads/knowledge-articles/evm/emulating-a-com-serial-port-over-usb-using-cdc-driver.html
-
No, not really. I just use a longish descriptive name, and I keep the declaration near the routines where it is used. F.x. unit SoAndSo; interface // lots of other declarations procedure ClearThreadContextLog; procedure SetThreadContextId(const aId: Integer); function GetThreadContextId: Cardinal; function GetThreadContextLog: TArray<String>; procedure AddThreadContextLog(const aText: String); implementation // lots of other code threadvar ThreadContextLog: TArray<String>; ThreadContextId: Integer; procedure ClearThreadContextLog; begin SetLength(ThreadContextLog, 0); end; procedure SetThreadContextId(const aId: Integer); begin if (aId <> ThreadContextId) then DebugOut(Format('Setting ThreadContextId %d for ThreadId %d', [aId, GetCurrentThreadId])); ThreadContextId := aId; end; function GetThreadContextId: Cardinal; begin if ThreadContextId > 0 then Result := ThreadContextId else Result := GetCurrentThreadId; end; function GetThreadContextLog: TArray<String>; begin Result := ThreadContextLog; end; procedure AddThreadContextLog(const aText: String); begin var len := Length(ThreadContextLog); SetLength(ThreadContextLog, len + 1); ThreadContextLog[len] := Format('%d %s', [TThread.CurrentThread.ThreadID, aText]); end; // lots of other code end.