Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 07/02/25 in all areas

  1. Remy Lebeau

    Delphi 13 beta

    You can always use VMs for betas. But I hear you. I usually don't have spare time to actively do any testing, but I do like to join in to see what's coming ahead of time.
  2. Attila Kovacs

    Is it possible to implement floating/fully custom Dropdown Menus?

    if you are already using StyleControls look for the TscStyledForm component and "dropdownforms" demo and set your form shape with "SetWindowRgn"
  3. pyscripter

    Is it possible to implement floating/fully custom Dropdown Menus?

    Following on @Anders Melander suggestion you can find here a free implementation of his idea. The library also supports controls on menus and toolbars, is Vcl styles compatible and High-DPI aware. See some of the images here.
  4. Anders Melander

    Is it possible to implement floating/fully custom Dropdown Menus?

    The easiest way is probably to just use a TForm as the poup. You need to: Display the form with ShowWindow(SW_SHOWNA). Handle WM_NCACTIVATE to avoid the form activating when clicked. In CreateParams: Set Params.WndParent to the parent form. Add WS_POPUP and WS_CLIPCHILDREN to Params.Style and exclude WS_CHILD. Add WS_EX_TOPMOST and WS_EX_TOOLWINDOW to Params.ExStyle. If you will be implementing the form shape with alpha blending then you also need to add WS_EX_LAYERED. Shape the form either with alpha blending (WS_EX_LAYERED and SetLayeredWindowAttributes) or with regions (I can't remember the APIs for that OTOH). I'm sure that if you search github for the above (with lang:pascal) that you can find some Delphi examples. See also: http://melander.dk/articles/alphasplash/ ...or you could just throw some $$$ at DevExpress and use their TdxCalloutPopup control:
  5. Hello Delphi Enthusiasts! An absolutely unique event is approaching, one that no Delphi enthusiast can afford to miss! On June 5-6, 2025, the Delphi Summit will take place in vibrant Amsterdam, celebrating an incredible 30 years of Delphi's existence! This isn't just another conference – it's a global gathering of the Delphi community, a unique opportunity to: Discover the latest trends and technologies: Explore the future of Delphi, see innovative solutions, and learn how to leverage the full potential of this environment in your projects. Learn from the best: Listen to presentations by world-class experts, Delphi creators, and industry leaders who will share their knowledge and experience. Participate in hands-on sessions: Dive into code during workshops and technical sessions, gaining practical skills that you can immediately implement in your work. Make invaluable connections: Meet other developers, exchange ideas, build business relationships, and become part of the global Delphi family. Experience a unique atmosphere: Celebrate 30 years of Delphi in an international group, drawing inspiration and energy from the passion of other participants! (More details about the agenda and speakers can be found on the official website: https://delphisummit.com/) Join our group trip and take advantage of a DISCOUNT! To make this trip even more exciting and hassle-free, we are organizing a joint group trip to the Delphi Summit (in cooperation with BSC Polska)! Why travel with us? Super Discount: We have a special discount code that lowers the price of the Summit ticket 🙂 only for our group. Fantastic company: Travel and stay with a group of Delphi enthusiasts – guaranteed inspiring conversations, exchange of experiences, and lots of fun! Convenient transportation: We are traveling in a comfortable, air-conditioned van directly from Zielona Góra (Poland). Possibility to join along the way (Świebodzin, Berlin, Hanover, ...) Organized accommodation: We provide comfortable accommodation in a picturesque area, not far from the conference venue. Full integration: The journey itself is a great opportunity to meet interesting people with the same interests and network in a relaxed atmosphere. Cost optimization: We share the costs of transportation and accommodation, making the trip more affordable. Preliminary plan and estimated costs: Departure: Wednesday, June 4, 2025, at 8:00 AM from Zielona Góra. Possibility to join along the way (Świebodzin, Berlin, Hanover, ...). Transportation: Comfortable van (Ford Transit Custom 2021, 8 seats, air conditioning, plenty of space). Accommodation: 3 nights (04.06 - 07.06.2025) in Marinapark Volendam (charming location approx. 9 km from the Summit). Double rooms. Link to the property: https://www.booking.com/Share-ondy5X Return: Saturday, June 7, 2025, after breakfast. We plan a quick tour of Amsterdam before heading back! Additionally: Stops for meals during the trip Parking: Possibility to leave (free of charge) your car for the duration of the trip in a monitored, closed parking lot in Zielona Góra. Interested? Don't hesitate! We have a limited number of seats in the van and accommodation reservations. If you want to experience this amazing adventure, meet fantastic people, take advantage of the discount, and be part of the historic, jubilee Delphi Summit, contact me as soon as possible to reserve your spot and get the discount code! Best Regards Marcin You can contact also by www.linkedin.com/in/marcinmoszkowicz
  6. Lars Fosdal

    Share a data between two units in dynamic loaded BPL.

    Isolate your business logic from the UI. Use an intermediate class to pass the data around.
  7. DelphiUdIT

    Delphi 13 beta

    But you and Remy are still there with a greater, precious and fundamental tireless contribution. Thank you for all, for what you have done and for what you will do (to others of TeamB too, that I don't know).
  8. PeterBelow

    Delphi 13 beta

    That was a looong time ago and I've not done any serious programming in years. Actually I newer participated in a beta due to lack of time and spare hardware (installing a beta on my production PC was just too risky). And your memory is correct, I did start on the old Compuserve BPASCAL forum before Delphi was even an idea in Anders' brain 8-). Those were the days, acoustic couplers to connect via phone line, later 9600 baud modems, Turbo Pascal, later for Windows with OWL... lots of fun. Just a bit depressing that quite a few of the old crew have already passed away...
  9. There are many components/libraries available for running processes and capturing their output. But, I got frustrated with their design and functionality, mostly for the following reasons: Fixation with and premature conversion to strings. Processes produce and consume bytes. Blocking reading of process output, resulting to inefficiencies (tight loops with Sleep, or separate threads for reading the output or providing input to the process) Incomplete features and/or over-bloated So, I have made my own pascal-process single unit library. Main features: Asynchronous reading of process output Separate stdout and stderr reading which can optionally be merged Ability to consume output as it is produced or else let it accumulate and read the final result Ability to provide input to the running process before or while the process is running. Ability to terminate the running process. Synchronous and asynchronous execution of processes. Interfaced-based facilitating memory management. MIT licence Usage: You do not need to install the library. Just download or clone the repo and add the source subdirectory to the Library path. Then add PascalProcess to your uses clause. If you just want to get the output of a process you can use the class functions of TPProcess. TPProcess = class(TInterfacedObject, IPProcess) class function Execute(const ACommandLine: string; const ACurrentDir: string = ''): TBytes; overload; class procedure Execute(const ACommandLine: string; const ACurrentDir: string; out Output, ErrOutput: TBytes) overload; end; This is an example: var Output: TBytes; begin Output := TPProcess.Execute('cmd /c echo Hi'); Writeln(TEncoding.ANSI.GetString(Output)); end; For more demanding cases you can use the IPProcess interface. Example: type TUtils = class class procedure OnRead(Sender: TObject; const Bytes: TBytes); end; class procedure TUtils.OnRead(Sender: TObject; const Bytes: TBytes); begin Writeln(TEncoding.ANSI.GetString(Bytes)); end; procedure Test2; // Processes ouput as it gets produced // The main thread terminates the process var Process: IPProcess; begin Process := TPProcess.Create('cmd /c dir c:\ /s'); Process.OnRead := TUtils.OnRead; WriteLn('Press Enter to start the process. Press Enter again to terminate'); ReadLn; Process.Execute; ReadLn; Process.Terminate; end; See here the definition of IPProcess. Limitations: Currently the library is Windows only. The intention is to support other platforms (help wanted).
  10. The eel is a critically endangered specie.
  11. Dave Nottage

    Delphi 13 beta

    Part of the NDA you agreed to when you signed up was to not publicly mention that you are participating in the beta, nor any details about it, so you have already broken your NDA.
×