Hacker Newsnew | past | comments | ask | show | jobs | submit | pascal_wizzard's commentslogin

is v11 still 32 bit?


Yes. It has full 64 bit support though (both linker and debugger) + rest of major OS'es as compiling target.


it should support 64 bit


it does


Don't use delphi, the rad sucks for everything but dragging and dropping components. The drag and drop is also a pain in the ass because it will constantly adjust the layout, making every commit be filled with noise. Maybe all frontend is this bad though, I don't have much experience with other tools.


But wouldn't careful usage of margins, anchoring and aligning - if it is possible - take care of this?


In the dfm(the UI declaration file) the positions of elements are always absolute with relation to the forms top left point, they are just recalculated on the fly when a change in the form causes them to resize. Using alignment is great but it doesn't solve the problem. Not really that big of an issue in the big picture, just makes diffing forms annoying.


It's been a long time, so things might have changed... I doubt it anyway.

What you write about sounds very much like you could solve easily changing the default behaviours. There was some "autoalign" property, or something similar, that you can disable.

I won't install a demo to check, I'm afraid, but knowing that there's a solution could help?


The described issue exist in Lazarus so i think it'd be the same in Delphi and C++ Builder.

There are tools for automatic alignment, Lazarus has both an align property (align to the parent's left, right, top or bottom edge or to the remaining area in the center, which is good enough for many layouts) and an anchor system (allowing to either "anchor" an control's edge in place so it gets resized with the parent or to place an edge relative to another control's edge or center point) as well properties for margins, min/max size and a bunch of special-case containers that layout their children like page/flow, etc.

However the controls still have their left/top/width/height properties, the layout functionality just updates those. And since forms are just serialized objects that store a property's value if it is different from the default value, the left/top/width/height properties are always stored in the form even if they'd be overridden later by the automatic layout mechanisms (object serialization exists at a lower level than that, it doesn't "know" about forms or anything like that - in Lazarus it isn't even part of the LCL framework but instead part of Free Pascal's FCL framework on top of which LCL was written and technically these are two separate projects).

The end result is that if you open a project and for some reason the controls get resized (e.g. you have a different theme than the last time you opened it which would cause some buttons to be smaller/larger and in turn cause other layout changes), when you save the project the files in which the forms are serialized in will have different values than previously for their left/top/width/height properties - and that will show up in a diff when you have the project in version control.

This is can be a bit annoying since when you want to see what changed in a form you have to mentally ignore all the position and size changes. Though TBH in practice personally i never thought much about it.


The end result is that if you open a project and for some reason the controls get resized...

I used a graphical diff tool that showed both versions and allowed to revert unwanted changes with a couple of clicks. I think it was WinMerge. Also, I never opened the DFM designer unless I was going to make a change.

Top and Left need to be published properties, even for non-graphical components, so the designer can place them somewhere without covering one another. That's why they're declared so deep in the hierarchy.

The serialization code is one of the nicest parts of the framework. I was tasked once with translating an old and messy application. Translation tools, including the one by Borland, included in the enterprisey versions, were utter crap. I hacked the serialization code to extract the relevant strings into an Excel that we sent to the guy doing the translation and then use his output to create different DFM sets, all of them included in the exe, and selected when starting the application.

Actually everything about the IDE was great, there was a comprehensive API to make plugins ("experts") for the IDE, mostly undocumented, but Ray Lischner wrote a couple of great books about it and some nice guys created a set of useful utilities with source.


Well it really depends on what operations you expect to be instant. Basic editing like movement, inserting, etc is instant, but summing from 1 to 100000000000000000000000 is where elisp would show its poor performance.


linus has subsurface


meaning what?


Meaning that he has written a significant program (called Subsurface) in C++.


so, let me get this straight. he wrote an application for a dangerous pastime (diving) in a language that he has many times publicaly despised? cool.


I assume this is a reference to the recent krazam video?


I like to use symbol only space cadet keycaps https://mkultra.click/gb-kat-space-cadet


there's no need for a cbdc, just invoke the emergencies act and you can do whatever you want with anybodies money


Don't have kids when you're both 40, adopt. The genetic risk is way too high.


Even working with the 'modern' delphi ide makes intellij feel like advanced alien technology.


Yeah it's horrible. Autocomplete randomly doesn't work. Debugging symbols randomly disappear, and you get thrown into an assembler view. Or even if it works, you can't see the values of variables sometimes. Sometimes it gets better by restarting the IDE...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: