Leaderboard
Popular Content
Showing content with the highest reputation since 12/03/23 in all areas
-
If the drawing code is too time consuming for being called in OnPaint, you might consider drawing to a bitmap when something changed and draw that bitmap in OnPaint.
-
I will never understand why such a bug is not repaired almost immediatelly - even if they just remove this optimisation. Now it looks that they are satisfied that D12 was released as planned and now f*ck you, users - we do not mind that this product is unusable, for us it was only important to release it. 😕
-
Hi, my first post here. Sorry if this is not the right place, but i feel this is something that should be stated somewhere for others to find. I am running the small danish company Carsoft. We make a quit successful system, called Carsoft Planner for auto workshops, in Delphi. For years I have had the problem, that the main product was debugging fine, but smaller stuff would simply not debug in 64 bit mode! I have googled for hours and tried everything i found - setting firewall, changing all the different paths etc. etc. Now I am in the process of moving Delphi and all my sources to a brand new computer, and a brand new Windows 11. So I installed Delphi 12, moved the sources, and made a very small project "Hello world", just a button and a Showmessage. Put a breakpoint, Pressed F9 and no succes. Breakpoint not found! More googling etc. Finally i found a post somewhere mentioning use of non ascii characters in paths. In Denmark we have three extra letter "æøå" and i have used one of these in the folder name for my "small stuff". Changing my folder name solved the problem completely, everything now works as it should. This might be a well known fact around the world, but I have seen other having the same problem, with no solution, so my hope is this post can help. Best regards Lars
-
debugger Win 64 debugger not working
David Heffernan replied to Lars Geisler's topic in Delphi IDE and APIs
That fabled focus on quality really paying dividends. -
The Bug with div [const] is a showstopper so Athens is not usable
-
Were just waiting for somebody to start using it I guess
-
How to attach a DigiCert Token certificate to exeutable
Bart Kindt replied to Bart Kindt's topic in Delphi IDE and APIs
That is not even required. I have now found Inno Setup does it all for you. We are getting way out of Delphi topic here, but this is what I now have in Inno Setup, and it does it all: Tools>Configure Sign Tools: signtool="C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool" sign /a /fd SHA256 $f [Setup] SignTool=SignTool [Files] Source: "*.exe"; DestDir: "{userappdata}\SARTrack\exe"; Flags: recursesubdirs ignoreversion signonce Source: "*"; Excludes: "*.exe"; DestDir: "{userappdata}\SARTrack\exe"; Flags: recursesubdirs ignoreversion (where \SARTrack\exe is my destination dir) This signs *all* executables, then it signs itself. -
Something that is often overlooked is to limit the redraw frequency. If you redraw the display on every update and there are many updates per second, you may save a lot of time on triggering the invalidate at a capped rate, i.e. not do a full redraw every time, but update once every fixed time interval. Unless you are doing video processing - a redraw at maximum twice per second should be more than sufficient?
-
Maybe you are doing computation in the OnPaint event. Decouple computation from presentation (the drawing). For the drawing itself, avoid drawing pixel by pixel on screen. Avoid having hundreds of components to draw. Avoid drawing invisible parts. Painting in a bitmap and then blasting the bitmap on screen could be faster than painting on screen directly.
-
Uninstalled D11, now D12 won't start....
Ian Branch replied to Ian Branch's topic in Delphi IDE and APIs
Resolved. Deleted both Parnassus BookMarks & CoreEditor entries in the registry just to be safe, then used AutoGetit to reinstall it/them. All good now. -
Better to use CompilerVersion (and RTLVersion) instead, then you don't need to update the defines every time a new version is released, only when you need to add a new define, eg: {$IF DEFINED(DCC) OR (CompilerVersion < 23)} {$DEFINE EC_DELPHI} {$IFEND} {$IF CompilerVersion >= 20} // Delphi 2009 {$DEFINE EC_UNICODE} {$IFEND} {$IF CompilerVersion >= 34} // Delphi 10.4 {$IF CompilerVersion < 35} {$DEFINE EC_VCL27} {$IFEND} {$DEFINE EC_VCL27_UP} {$IFEND} {$IF CompilerVersion >= 36} // Delphi 12 ... {$IFEND}
-
Probably because of its size. Most Noto fonts are huuuge. Noto Color Emoji contains both COLR and SVG data. The COLR data is ~1Mb while the SVG data is ~18Mb... I'm not sure what you are saying here. Microsoft is the primary author of the COLR format and DirectWrite supports all the common color glyph formats: https://learn.microsoft.com/en-us/windows/win32/directwrite/color-fonts However, the client has to specify what format to use during Shaping and if the client asks for SVG glyphs then that is what it will use. https://learn.microsoft.com/en-us/windows/win32/api/dcommon/ne-dcommon-dwrite_glyph_image_formats You can try subsetting the font to exclude the SVG data and see if that makes a difference (apart from the 18 Mb data saved 🙂)
-
macOS process spawning: Exception class 6 when calling addObserver
Navid Madani replied to Navid Madani's topic in Cross-platform
Thanks, David. That was indeed what caused the exception. I noticed that pattern at least once in the docs I read and forgot. The pattern above was based on Objective-C code samples I studied. However, mine does not work as intended because the notification handler is not called back. I did not know about Kastri until now. I'll pursue the Kastri solution if tinkering with my own implementation remains fruitless. In any case, I just became a Kastri sponsor on GitHub. Thanks again.- 3 replies
-
- macos
- spawning processes
-
(and 1 more)
Tagged with:
-
Then you are likely doing too much work in your drawing code. Or you are doing other things besides just drawing. Painting should be a quick task. Draw only what can be seen for the current state of your existing data, nothing more. Do not manage your data/UI in any way other than drawing. If you need to manipulate your data/UI, that has to be done outside of a paint cycle. That is not how UI painting works. You have to draw whatever your current state represents. After the painting is finished, if a state change occurs, then you can trigger a repaint to draw the updated state. No. Every paint cycle is a complete redraw from scratch. For each window/control that is being painted, you have to draw it entirely in a single cycle. And then again in the next cycle. And so on. You can Invalidate() an individual form/control to trigger a new paint cycle for it, but that requires you to redraw it entirely from scratch when that next cycle begins,
-
Your specification in the original post is incomplete so it's not surprising that people don't know what you want. Your clarification is still unclear. Until you can define precisely what you want the code to do how could you expect anyone, even yourself, to be able to write it.
-
Declaring inline variable inside a loop vs. before the loop
FPiette replied to Marsil's topic in RTL and Delphi Object Pascal
You may either measure the time for both way of doing it, of look at the assembly code generated. -
TField.IsNull is the way to check if a database field is NULL. Do not rely on this conditions beeing mapped to a specific value.
-
[SOLVED] Delphi 12, FireDac, SQLite : capability not supported
weabow replied to weabow's topic in Databases
[SOLVED] I've put on app boot a on the main form : TFDPhysSQLiteDriverLink, with the property : EngineLinkage -> sIFDEStatic Maybee an idea do do that from code ? -
Delphi 12.0 Athens is not correctly installing the Android SDK
Dave Nottage replied to scamp's topic in Cross-platform
It's likely because you have an incompatible JDK present on the machine. This is a potential fix: 1. Make sure JAVA_HOME environment variable is set to the Adoptium JDK: JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-11.0.15.10-hotspot 2. Add missing build-tools by going to: C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidSDK-2525-23.0.50491.5718\cmdline-tools\latest\bin In a command prompt and issue these commands: sdkmanager “build-tools;33.0.2” sdkmanager “platforms;android-33” -
Intel Simd-sort library
Dave Novo replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
We write software that does scientific data analysis. We regularly have to sort arrays of millions of elements of data. But I recognize we are in the minority of developers. -
How to sort only a part of a list
Uwe Raabe replied to caymon's topic in Algorithms, Data Structures and Class Design
You didn't mention the Delphi version, but since Delphi 11 you can use the appropriate Sort overload taking a comparer, start index and count. procedure Sort; overload; procedure Sort(const AComparer: IComparer<T>); overload; procedure Sort(const AComparer: IComparer<T>; Index, Count: Integer); overload; -
Spring4D 2.0 sneak peek - the evolution of performance
Vincent Parrett replied to Stefan Glienke's topic in Tips / Blogs / Tutorials / Videos
It's this rich api that makes Spring4D collections worthwhile. The perf hit is still worth it for this alone. In a real world application (FinalBuilder) I have not noticed any perf issues that could be attributed to the spring4d collections, but then I'm rarely enumerating huge collections - certainly in my profiling efforts there were plenty of areas to optimise, but spring4d wasn't showing up as an area of concern in the profiler (vtune). Now if only we could have non ref counted interfaces (ie no calls to add/release) and we could implement interfaces on records - best of both worlds 😉 -
What about additional free open source C++ libraries on GetIt ?
oliwe replied to Rolf Fankhauser's topic in General Help
I fully agree with that. The fact that open source libraries are not easy to use with RAD Studio or C++Builder is one of the biggest limitations. Installing via GetIt is nice, but much more important from my point of view is a reasonable support of CMake. I think you get young programmers at school and in the universities - there you set yourself on a "favorite IDE". Without the ability to compile open source libraries, Embarcadero is out of the race when it comes to generating young talents who use RAD Studio. What a pity! I am using VTK with RAD Studio - the only reason for that is because I am bound to the IDE with old projects. It would be cool if we put together in this thread or wherever C++ libraries that can be "somehow" compiled with RAD Studio. In cooperation with Embarcadero we should bring the open source capability forward piece by piece. PS Okay, I'm dreaming 😉 -
Cross platform isn't just mobile. The features could be usable on MacOS or Linux, too.