-
Content Count
1129 -
Joined
-
Last visited
-
Days Won
102
Everything posted by Dalija Prasnikar
-
How do you organize developing new features in big projects?
Dalija Prasnikar replied to Mike Torrettinni's topic in General Help
Depending on the feature. If I need to test some general concept and/or feature is not tightly coupled with app I will make separate test project until I figure whether it will work as intended. If feature is tightly coupled with rest of the application I will create new feature branch in that app repository and start from there, even if compiling/running takes time. But, this is what we are trying to tell you, not having VCS is an issue. Because, new feature workflow highly depends on VCS. I know it may seem that learning how to use VCS takes valuable time, but you can get that time back in a week (literally). -
Does debugger handle WITH better in latest versions, 10.3+?
Dalija Prasnikar replied to Mike Torrettinni's topic in General Help
It still does not work in 10.4 -
It would help if you would stick to one thread instead of posting separate topics... it is hard to track what is going on with pieces of information scattered around.
-
Patch 2 for RAD Studio 10.4 now available
Dalija Prasnikar replied to Marco Cantu's topic in General Help
Are you calling me insane???? This is my actual code!!! 😜 -
Patch 2 for RAD Studio 10.4 now available
Dalija Prasnikar replied to Marco Cantu's topic in General Help
LOL, it looks like fix for my code literally broke Vincent's code https://quality.embarcadero.com/browse/RSP-28761 -
Patch 2 for RAD Studio 10.4 now available
Dalija Prasnikar replied to Marco Cantu's topic in General Help
Honestly... I don't care if compiler broke your code... they released fix for compiler bug that broke my code... -
Patch 2 for RAD Studio 10.4 now available
Dalija Prasnikar replied to Marco Cantu's topic in General Help
"If you can't laugh, what can you do?" -
Apple Silicon is terminology used for Apple designed, ARM based chips https://en.wikipedia.org/wiki/Apple_Silicon
-
I literally just started typing same sentence. Delphi devs always complain all logic is dumped in form (event handlers), Android devs always complain all logic is dumped in Activity (Delphi form equivalent), iOs devs always complain all logic is dumped in ViewController (again Delphi form equivalent)...
-
Should Delphi have native interfaces?
Dalija Prasnikar replied to Koru's topic in RTL and Delphi Object Pascal
I am not against evolution, but that evolution must follow some basic rules - and not all rules are Delphi specific, some common language rules also apply. If you are building a castle, you cannot go ahead and add another tower by ruining the foundations first. As far as rest of your posts is concerned, I am sorry to say, but I have hard time understanding what you want to say. Maybe it is the fact that you want to design things in different order is throwing me off course, maybe it is something else, but I cannot exactly pinpoint it. -
Should Delphi have native interfaces?
Dalija Prasnikar replied to Koru's topic in RTL and Delphi Object Pascal
One thing worth mentioning because you seem to take interface-class relation backwards. The whole purpose of interfaces (COM or native, or whatever) is that they are abstraction. They just define API, not the implementation. It is class that implements interface and knows about the interface, not the other way around. In other words, interface should never ever know anything about classes that implement interface and any proposals that violate that are practically useless. -
FreeAndNil 10.4 vs 10.3.1 and Pointers
Dalija Prasnikar replied to Sherlock's topic in RTL and Delphi Object Pascal
Everyone please vote for Global Generics https://quality.embarcadero.com/browse/RSP-13724 So we can have type safe FreeAndNil without quirks and lies. -
FreeAndNil 10.4 vs 10.3.1 and Pointers
Dalija Prasnikar replied to Sherlock's topic in RTL and Delphi Object Pascal
Maybe you will find some answers here https://dalijap.blogspot.com/2020/06/magic-behind-freeandnil.html -
Just to make it clear, I am not dismissing using dictionary mapping where it fits better (if you don't have up front defined set of actions at call site), I am merely objecting to the notion that using integer tags is toy programming.
-
Sorry, but I don't see how if Sender is FooButton then DoFoo else if Sender is BarButton then DoBar .... Is preferable to case TComponent(Sender).Tag of TAG_FOO : DoFoo; TAG_BAR : DoBar; ... end; It also gets worse if you have several Senders that perform same task - for instance, button and menu (I know that you can have actions, but actions share same caption - not always preferable, especially in non-English environments) I am aware that you can also add dictionary and map actions that way, but then you need to maintain dictionary, its lifetime, mappings and on top of that you don't have spelled out logic in place where action happens - following code through dictionary is debugging nightmare. Mappings are mappings... you can always use wrong mapping being it integer based or not.
-
For stuffing in pointers and such... it is not appropriate, but for storing integer values that can later be used to determine appropriate action... why would that be wrong or used only in toy apps? In Delphi I never used Tag in toy apps knocked up in minutes, because they were pretty simple, but in more complex ones, especially with dynamic content and multiple entry points for actions, tag is the most straight forward thing to use and maintain. Also, just yesterday, I wrote a whole a lot of tag based code in native Xcode iOS application where native view also has tag property specifically used for determining which action you want to run. And there just like in Delphi you have Sender object that you can also use to determine appropriate action, but just like in Delphi code working with objects would be more convoluted and using Tag is preferred when you have to determine or change action at runtime.
-
Delphi Rio 10.3.3 reinstall after uninstalling Delphi 10.4 doesn't update filetypes in registry
Dalija Prasnikar replied to vhanla's topic in Delphi IDE and APIs
Try going to to Options -> IDE - File Associations and doing Deselect All, Select All and Save. That should restore file associations for version where you have run Options dialog. In theory file associations will be reset as soon you save Options even without going to File Associations tab. -
LOL... I missed that. I guess I am accustomed to uninstalling first, then cleaning up left overs before installing, so I haven't seen that dialog for a long time. It is quite possible that this option somehow got broken, after introduction of Migration Tool and unifying installers (Web and ISO) in the 10.4. Please, file bug report. Otherwise it will stay broken forever.
-
You can use RegEdit to remove registry key HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0 Deleting (or renaming) that key will remove all custom settings. If possible it would be good to determine source of your problem. Do you have any IDE plugins installed in 10.3 or other 3rd party components - packages (including your own). Maybe imported settings are trying to load something incompatible. I just tried to import my settings from 10.3 again in 10.4 and everything works fine for me.
-
Err... that option does not exist any more. You have to use migration tool to preserve settings if you are reinstalling and updating and also for upgrading to new major version.
-
This might be a bug, then. I just found one similar to what you are describing IDE does not remember user color seting for source editor https://quality.embarcadero.com/browse/RSP-28754
-
There is new option in Options -> User Interface -> Theme Manager called Toggle style to match Windows Light and Dark mode. It is checked by default and that setting overrides any other custom settings. You need to uncheck that option before you can use custom theme settings. If you want to edit registry directly under Theme key, this new option is called ToggleTheme (DWORD) and its value should be set to 0
-
10.4 move editor tabs around not working
Dalija Prasnikar replied to Erix A.'s topic in Delphi IDE and APIs
There is a bug. You cannot move active tab. You need to select some other tab first and then you can drag the tab you want. Cannot rearrange editor tabs, when it is selected https://quality.embarcadero.com/browse/RSP-28465 -
You already fixed the issue, but that issue is already fixed in Omni Thread, too. There is newer version in the making, not released yet, but it has fixes and packages for 10.4. Last commit was just 4 days ago. https://github.com/gabr42/OmniThreadLibrary When new Delphi release comes out and you find issues with some of the libraries you are using, it is good to recheck library for updates. Keep in mind that libraries cannot be publicly updated before official release and sometimes takes a few days to have those patches and fixes generally available.
-
Smart Pointers - Generics vrs non-generic implementastion
Dalija Prasnikar replied to pyscripter's topic in RTL and Delphi Object Pascal
It is simpler, but not faster. FWIW, I am using the same simple implementation because I don't need that extra speed. Smart pointer already brings in some performance drop and in places where I can live with that I can also live with unoptimized version of smart pointer. But if you really want to use smart pointers and you really need every last CPU cycle you can squeeze out of it, then Spring4D is the way to go.