-
Content Count
3324 -
Joined
-
Last visited
-
Days Won
110
Everything posted by Lars Fosdal
-
Is there a Delphi lib that can generate an RFC-4122 UUID?
Lars Fosdal replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
The RFC describes four variant formats, and the MS GUID is variant 2. I am simply wondering if there is another implementation than the MS one available to me in case the MS one is not compatible with IBMs requirements. uses System.SysUtils; var guid: TGuid; sguid: string; begin if CreateGUID(guid) = S_OK then sguid := 'urn:uuid:' + guid.ToString.ToLower; -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
As long as what you push to the shared repository, compiles 🙂 It is very annoying if teammates commit code that doesn't compile. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
Correct. Most UIs for git visualize branches and merges. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
They are. GitKraken supports implements the GitFlow convention, simplifying the execution of that workflow. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
Ref the chart I posted. That patch or hotfix if you like can be spun off the release branch and committed and merged back into the release branch and the development branch. I am fond of GitKraken here, because it supports GitFlow which simplify doing these things. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
They are similar, but not identical it seems - judging by this: https://github.com/stettberger/git-external -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
Ref. https://nvie.com/posts/a-successful-git-branching-model/ We came from SVN, so we had to rework our mental SVN model for git, but once we learned the mechanisms, none of us miss SVN at all. One of the hurdles was not thinking about master/main as trunk, but as the release branch, and that you did all the work you used to put in SVN trunk, into a develop branch. Feature branches are really, really helpful - but don't let them drag out too long, or you will likely be facing merge conflicts if you are multiple people working in the same repository. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
TBH, I don't know for sure since I've never used that feature myself since we always use the same version of the shared code for all our projects. I'd have to read up on sub-modules and externals to find out, but perhaps somebody else here is using this? -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
As we've touched on before, @Uwe Raabe , the "fun" starts with 3rd party design time components. Maintaining projects that use two different versions of f.x. TMS components is something I really want to avoid if I can. -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
Pinning a version means that you pull from a specific version instead of the HEAD version (i.e. latest) -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
We use this model. Works quite well. https://nvie.com/posts/a-successful-git-branching-model/ -
How to manage feature changes during release cycle?
Lars Fosdal replied to Mike Torrettinni's topic in General Help
We do that, but we can do that because our projects are inhouse and closely related, and we have control over the release and upgrade cycles, and we always upgrade all apps to using the latest 3rd party libs. But - if there are 10+ projects that are not really related, they would need repositories of their own, and the shared code would need to have a repository of its own. The question remains whether the shared code should always follow the latest version, or if you pin a version per project and upgrade on need only. The third party libs dependencies will be a challenge here - especially if there is a difference of version of the libs between the projects. -
Getting an Object Instance Name when ancestor is of TComponent
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
That I did not know. Thank you, Uwe! -
As I understand, the APIs are bound at runtime, or am I mistaken? Can it be that your application tries to use an API that doesn't exist in a compatible form on SDK14 / S3? Edit: OR - the API is access restricted and you are not checking for the rights to access the API before use? Edit 2: I want to point out that all of the above are pure speculations on my part.
-
Why empty dynamic arrays = NIL?
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
I agree. NULL = There is no list. Empty = There is a list, but it is empty. -
Getting an Object Instance Name when ancestor is of TComponent
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
One thing about component names is that you f.x. cannot dynamically add multiple identical frames to a form at runtime unless you ensure a unique name by doing something like this: type TOurFrameBase = class(TFrame) constructor Create(const AOwner: TWinControl); reintroduce; end; constructor TOurFrameBase.Create(const AOwner: TWinControl); begin inherited Create(TComponent(AOwner)); FPanel := AOwner; Parent := AOwner; Align := alClient; Name := ClassName + '_' + Seed.Next.ToString; // Ensure that every frame created gets a unique name I.e. we ensure a unique name for the frame instance. (Seed is a singleton for the class that delivers a unique (incrementing) cardinal (per app life time)). If you don't do this - you will run into duplicate name errors. -
why shortstring in Delphi cannot used in our Programs using New IDE?
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
I don't mind the braces, TBH - but some of the expression operators still irk me, probably because I don't use them all day. -
why shortstring in Delphi cannot used in our Programs using New IDE?
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
Sure, that and array[0..n] of Byte; are pretty common. Still, Byte sized variables and constants are used a lot in various APIs. Even nuggets like SizeOf(Byte); can be found sprinkled around the RTL and VCL, although I believe the universal result of that is 1. -
AND watcher = currentUser() Add the above to the query
-
why shortstring in Delphi cannot used in our Programs using New IDE?
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
Avoid using short strings. Short string is for backwards compatibility only (typically for older desktop apps migrated to the new). They are ANSI based and do not support Unicode natively, and have been deprecated since 2009 when the Unicode string format was made king of the hill. Byte still is a useful number format when you don't need a large range, -
There is also https://uberpdf.org/ by @Joe C. Hecht
-
delphi set max length for Argument of string in a method
Lars Fosdal replied to bravesofts's topic in Algorithms, Data Structures and Class Design
foo(Copy(aValue, 1, 20)); -
Ann: TECNativeMap 4.4 is available with delphi 11 support
Lars Fosdal replied to Christophe E.'s topic in Delphi Third-Party
That's a pretty impressive map component! -
Parnassus Bookmarks for Delphi 11 Alexandria?
Lars Fosdal replied to PeterPanettone's topic in Delphi IDE and APIs
@Stano Did you try the actual navigation feature of it - i.e. goto? -
True that, but it depends on the number of rows and if the control keeps the already fetched rows or discard them. I am used to working with tables where fetch all is not an option. Beyond a certain number - a search is a better option than a scroll bar.