Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 06/22/25 in all areas

  1. Renate Schaaf

    Bitmaps to Video for Mediafoundation

    I've just uploaded an update to my project https://github.com/rmesch/Bitmaps2Video-for-Media-Foundation What it does: Contains a VCL-class which encodes a series of bitmaps and video-clips together with an audio-file to video. The result is an .mp4-file with H264 or H265 compression together with AAC-audio. It uses windows mediafoundation, which is usually contained in windows. Hardware-encoding is supported, if your graphics-card can do it. Requires: Headers for mediafoundation from FactoryXCode: https://github.com/FactoryXCode/MfPack Windows 10 or higher Encoder (MF-Transform) for H264/H265, usually come with the graphics-driver Delphi XE7 or higher, if I haven't messed it up again, I've only got the CE and Delphi2006 (Win32 and Win64 should be working, but Win64 recently crashes for me with "The session was disconnected".) The demo-project shows some uses: Record a series of canvas-drawings to video Make a slideshow from image-files (.bmp,.jpg,.png,.gif) with music (.wav, .mp3, .wmv, ...) and 2 kinds of transitions Insert a videoclip into a slideshow (anything that windows can decode should work) Transcode a video-file including the first audio-stream. Improvements: I think I now better understand how to feed frames to the encoder. With the right settings it makes stutter-free videos with good audio-video-synchronization. It's now usable for me in my "big" project, and I no longer need to rely on ffmpeg - dlls. More info in changes.txt. Just try it, if you're interested, I'd be glad. Renate
  2. Remy Lebeau

    TLS Issues and TLS3 message comming from Iindy

    No, it does not support OpenSSL 3.x or TLS 1.3 at this time. But, you can use a 3rd party SSLIOHandler that does, such as TaurusTLS (https://github.com/JPeterMugaas/taurustls). Security requirements change all the time. They have to update their systems every so often to keep up. There is much more to HTTP/S than just URLs. Yes. Yes, it does, at least on the client side, and has for 8 years now.
  3. pyscripter

    Python Output

    For now, there are very serious limitations you need to consider when using emNewInterpreterOwnGIL to achieve true parallelism. See for instance the limitations in What’s new in Python 3.14 — Python 3.14.0b3 documentation. Even the innocent looking print command is not thread-safe. And almost nothing can be share between the interpreters. Also there are limitations about what you can import, and P4D modules are not yet considered safe for use with emNewInterpreterOwnGIL. This is changing with the forthcoming python 3.14. It will include a new module concurrent.interpreters that exposes the interpreters with their own GIL to pure python code. There will also be an addition of ways to communicate between the interpreters using queues. See PEP 734. So for example you could store your output to such a queue and print it when everything is finished. But all the above is cutting edge and unless you really need it you should avoid it, If you decide to use it then make sure you fully understand the limitations and implications. I will try to make P4D modules compatible with emNewInterpreterOwnGIL and that would at least give you the option to say add output to a Delphi string list (or something similar) protected with a global lock on the Delphi side. Note that all the above are not related to the free-threading version of Python, which in itself is another story altogether.
  4. Patrick PREMARTIN

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    I open the issue https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-3711 You can follow it by enabling the notifications after login on this URL (quality.embarcadero.com). The difference between TThread.Queue() and TThread.ForceQueue() happens in the main thread : in the first case the code is executed, in the second it's delayed to next message processing iteration. Unfortunately, the behavior is not the same on Mac and Windows and in this project the form is only refreshed on macOS, for Windows it's done at the end.
  5. dummzeuch

    Define conditional symbol in .dpr

    You cannot define a symbol in the .dpr file to be available in the units (it will be available in the .dpr file itself though). You must put it into the .dproj file (Project -> Options). Alternatively you can define it in an include file and include that file in all units that require the symbol. That latter approach is used by most libraries because a library cannot add anything to the project options.
  6. himitsu

    Bugs on WINMD, who can clarify ?

    Source: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1577 https://quality.embarcadero.com/browse/RSP-44096 https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1754 https://www.delphipraxis.net/214473-warnung-vor-winmd.html ......................
  7. dummzeuch

    Added IDE Toolbar Expert to GExperts

    Some Delphi IDE versions have an annoying bug with the toolbars that makes them unusable if you customize them. If you have seen this problem, you know it, if not, congratulations! Unfortunately I am one of the people who experience this problem and it annoyed me so much, that I added a workaround to GExperts. ... read on in the blog post.
  8. dummzeuch

    Define conditional symbol in .dpr

    And that was most likely the reason. The compiler only compiles units that have changed. Changing the include file does not change the units. To ensure that a unit is recompiled after a change to an include file, you must do a complete build of the project(s). The same applies to defines set in the .dproj file btw. Changing them does not trigger a complete rebuild. If you want to be really paranoid about this, delete all units from the unit output path. This ensures that every unit will be recompiled. I do that once in a while.
  9. Be my guest! I tried to look for the issue in QP a few days ago, but got sent from site A to B to A, then not finding anything in either, and finally giving up. I do remember QP to work, back in 1972, but I'm getting the impression they changed the furniture down there, and now it's a hassle to just locate it. Probably my age. Thanks for confirming! I can now cancel that psychiatric evaluation appointment. At least for this issue. Btw, I have been using TThread.Queue quite a bit, but never considered ForceQueue. Thanks for making me look into that one.
  10. Patrick PREMARTIN

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Ok, in that case I confirm the big speed loss between 11.3 Alexandria and 12.3 Athens for this project, even with my changes. Did you opened an issue on QP or can I open it ?
  11. Patrick PREMARTIN

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    And to remove the Application.ProcessMessages, you can do that : I know the TThread.ForceQueue() has its detractors, but in this context it works very well. PS : it works for Mac, but the display is not done on Windows...
  12. Patrick PREMARTIN

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Hi @domus Just to be sure: do you really need TRectangle instances or is it only to draw cubes "falling" (to the right) on the screen ? In your loop, if they are outside the screen, do you need to change their Position.x value ? I understand why you used the Application.ProcessMessages, but for me it's like FreeAndNil() for Nick H. : never use it, find an other way. 🙂 I'll try your code, but i'm on an ARM Windows on Mac, it's "slow" by design.
  13. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Can you reproduce in a small project that you can post here?
  14. thank you hans! this revelation about the ownership of scrolls just saved my life i couldn't unsderstand why one of my projects the scroll was working and on the other project was not working
  15. Die Holländer

    TeeBI free full sources released

    Works very well.
  16. pcoder

    Bugs on WINMD, who can clarify ?

    Delphi winmd is not available to me (latest CE user), so I don't know, but I recommend to compare it with other winmd Pascal providers.
  17. TOML is a "config file format for humans", that has gained a lot of traction in the python and rust communities among others. It is basically the INI file format on steroids. It compares quite well to alternative formats such as JSON, YAML and XML. Compared to JSON is way more readable and compact. Since I could not find any Delphi library for processing TOML, I have created my own: toml-delphi. Features: TOML v1.0.0 compliant. Passes all 734 (valid/invalid) official validation tests. Fast. Single stream tokenizer and lexer that doesn't use regex. Converts TOML documents to Delphi's RTL's TJSONObject, thus allowing for easy traversal, manipulation and query of the generated documents. Includes TTOMLWriter for converting TJSONObjects back to TOML. Provides for easy (de)serialization of Delphi objects and records from/to TOML. This is the interface of the main unit: TJSONObjectHelper = class helper for TJSONObject function ToTOML(MultilineStrings: Boolean = False; Indent: Integer = 4): string; procedure StreamTOML(Stream: TStream; MultilineStrings: Boolean = False; Indent: Integer = 4); procedure SaveTOMLtoFile(const FileName: string; MultilineStrings: Boolean = False; Indent: Integer = 4); class function FromTOML(const Contents: string): TJSONObject; overload; class function FromTOML(Contents: TBytes): TJSONObject; overload; class function FromTOML(Stream: TStream): TJSONObject; overload; class function FromTOMLFile(const FileName: string): TJSONObject; end; ETOMLSerializer = class(Exception); TTOMLSerializer = class class function Serialize<T>(const AValue: T): string; overload; class function Deserialize<T>(const ATOML: string): T; overload; end; Example usage: You can convert TOML source to TJSONObject using one of the FromTOML functions. For example to parse a TOML file you use: var JsonObject := TJSONObject.FromTOMLFile(FileName); //or for parsing a TOML string: var JsonObject := TJSONObject.FromTOML(TOMLstring); To convert a TJSONObject to TOML you use one of the methods ToTOML, StreamTOML or SaveTOMLToFile. For example: TOMLString := JsonObject.ToTOML; // or JsonObject.SaveTOMLToFile(FileName); Example serialization: type TTestRec = record IntValue: Integer; FloatValue: double; StringValue: string; DateValue: TDateTime; ArrayValue: TArray<string>; end; procedure TestSerializer; var Rec: TTestRec; TOMLString: string; begin Rec.IntValue := 123; Rec.FloatValue := 3.14; Rec.StringValue := 'abc'; Rec.DateValue := Now; Rec.ArrayValue := ['A', 'B', 'C']; Writeln('Serialized record:'); WriteLn('=================='); TOMLString := TTOMLSerializer.Serialize(Rec); Writeln(TOMLString); Writeln('Record deserialized and serialized again:'); Writeln('========================================='); Rec := TTOMLSerializer.Deserialize<TTestRec>(TOMLString); TOMLString := TTOMLSerializer.Serialize(Rec); Writeln(TOMLString); end; Output: Serialized record: ================== IntValue = 123 FloatValue = 3.14 StringValue = "abc" DateValue = "2025-06-18T05:37:02.110+03:00" ArrayValue = [ "A", "B", "C" ] Record deserialized and serialized again: ========================================= IntValue = 123 FloatValue = 3.14 StringValue = "abc" DateValue = "2025-06-18T05:37:02.110+03:00" ArrayValue = [ "A", "B", "C" ] I hope you find it useful.
  18. gkobler

    wuppdi Welcome Page for Delphi 11 Alexandria?

    New Version is available. V 1.2.1.B42 for x86 and x64 D12.x Now you can adjust the behavior
  19. Vincent Parrett

    Intercepting UuidCreate function

    Intercepting functions for unit testing is a terrible idea. A better option would be to create abstractions and a concrete implementation (ie actually calls UuidCreate), that abstraction can be easily mocked using Delphi Mocks or Spring4D for uinit tests. The same applies to code that relies on things like Now or NowUTC - e.g - https://github.com/VSoftTechnologies/VSoft.System.TimeProvider
  20. dwrbudr

    TVirtualImageList Custom component

    I think TVirtualImageList is automatically scaled when DPI changes only when TVirtualImageList is placed on a TForm/TFrame (look for SendChangeScaleMessage in the VCL code). So you'll have to override the panel ChangeScale method and set the image list size.
  21. Please look at https://github.com/apokroy/Ext.Types/blob/master/Source/Ext.Types.Date.pas
  22. Uwe Raabe

    Procedure/Function Commenting..

    There are also some code templates in Delphi to simplify writing these comments: summary, params, returns, remarks
  23. Carlo Barazzetta

    Looking for SVG support in Delphi?

    I want to personally thank Vincent Parrett and Kyriakos Vlahos for the great contribution to the project! The official 2.0 version will be released shortly and also published on GetIt. Meanwhile, you can download the project from Github and report any problems. I'm also working on IconFontsImageList to add similar funcionalities, like a IconFontsVirtualImageList and IconFontsImageCollection...
  24. Hi, can anyone help me with this? Where am I supposed to store my images on Android? I use the deployment manager to store them in "res\drawable-xxx" but my app does not find it. How do I access the folder from the binary file? I mean, would that be "res\drawable-xxx" or "..\res\drawable-xxx"? Thanks
  25. Dave Nottage

    Where do I store my own images on Android?

    Is there an issue with using GetDocumentsPath (which in the deployment manager for Android translates to assets/internal), or subfolders thereof? Alternatively, use KodeZwerg's solution. GetHomePath in deployment manager translates to ., i.e. the root
×