-
Content Count
105 -
Joined
-
Last visited
Community Reputation
30 ExcellentTechnical Information
-
Delphi-Version
Delphi 10.3 Rio
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Installation went good from 10.4.1 to 10.4.2. Only problem I had, was with third party components / packages. I.e. I had to reinstall i.e. Reportbuilder 20.04 for Sydney but now it starts without any problems. Anyone using 10.4 (or 10.4.2) in production environment? We're stuck at 10.3 ...
-
Read and reapply design time properties to specific controls - runtime
microtronx replied to aehimself's topic in VCL
What about only creating your form without applying the saved changes? = That should be your design time state, or I'm wrong? -
Delphi is 26 years old - Marco's blog
microtronx replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
... wow, I also know that old DOS - blue background Turbo Pascal .. crazy. It feels like i worked with it "last year" ... so it feels like only 1-2 years of experience 😉 -
asmprofiler - Freeware Profiler for Delphi saved my day - Thanks
microtronx posted a topic in Tips / Blogs / Tutorials / Videos
Thank you very much @AndreMussche. Your https://github.com/andremussche/asmprofiler has saved my day ... my week ... after searching the bug and not finding it by myself ... and a "not working AQ..." demo 😉 I found your project! What a good coincidence! Don't know, if others know your work .. but they definitely should! Very good job! Thanks again! -
HTML Library review and sale: 25% off.
microtronx replied to Alexander Sviridenkov's topic in Delphi Third-Party
Very stable and good components + very good support. We can recommend htmlcomponents fully! Thanks for your work Alexander! -
Runtime create new "fields" with RTTI on a tComponent
microtronx replied to microtronx's topic in RTL and Delphi Object Pascal
I have created a global "tDictionary<tComponent, tmxEvents>" and a small helper function to return an entry or add an entry if it does not exists ... working perfect. Thanks for your tips guys. -
Runtime create new "fields" with RTTI on a tComponent
microtronx posted a topic in RTL and Delphi Object Pascal
Hi, which is the simpliest way to add new properties to a existing component in runtime? Lets say we have a tDataset and I want to att a fList:tList to it in runtime, if it does not exists. Is this possible? -
MultiCast NotifyEvents / DatasetNotifyEvents
microtronx replied to microtronx's topic in Algorithms, Data Structures and Class Design
I found spring4d but there was no demo or i've not seen any demo how to use that. How is Event<T> used?- 4 replies
-
- delphi
- multicast events
-
(and 1 more)
Tagged with:
-
MultiCast NotifyEvents / DatasetNotifyEvents
microtronx posted a topic in Algorithms, Data Structures and Class Design
After searching the internet a lot i've decided to create a new unit to be able to assign multiple afterscroll or afteropen events to one component ... very simple in runtime. Informations on https://www.delphipraxis.net/143341-event-multicast-problem-howto-sender-methodname.html helped me to create a basic unit. Pls check it at https://github.com/MicrotronX/Multicast-Events I know, there must be something better out there ... but for me this works very good ... PS: I cannot guarantee that the source code is free of bugs! Example-Usage in a tDataset descant: unit myMulticastEventDatasetUnit; interface uses System.Classes, Data.DB, mxEventsUnit; type tmyMulticastEventDataset=class(tDataset) private function fmxevents_get:tmxevents; public fmxEvents:TmxEvents; constructor Create(AOwner:TComponent); override; destructor Destroy; override; published property mxEvents:TmxEvents read fmxevents_get; end; implementation constructor tmyMulticastEventDataset.Create(AOwner: TComponent); begin inherited; fmxEvents:=nil; end; destructor tmyMulticastEventDataset.Destroy; begin if assigned(fmxEvents) then fmxEvents.free; fmxEvents:=nil; inherited; end; function tmyMulticastEventDataset.fmxevents_get: tmxevents; begin // we Create the tmxEvents only if there is a need if not assigned(fmxevents) then begin fmxEvents:=tmxEvents.create(self); end; result:=fmxevents; end; end. If someone knows a way to inject this into tDataset itself, you're free to change the code! Declarations for Examples: myDS:tmyMulticastEventDataset; procedure FirstAfterScrollEvent(vDataset:tDataset); procedure SecondAfterScrollEvent(vDataset:tDataset); Example-Usage for registering a AfterScroll Event: myDS.mxEvents.Event('AfterScroll').AddDatasetNotifyEvent('uniquenameforevent1', FirstAfterScrollEvent) ; myDS.mxEvents.Event('AfterScroll').AddDatasetNotifyEvent('uniquenameforevent2', SecondAfterScrollEvent) ; Example-usage for disabling a already registered AfterScroll Event: myMCDS1.mxEvents.Event('AfterScroll').Disable('uniquenameforevent1') ; myMCDS1.mxEvents.Event('AfterScroll').Disable('uniquenameforevent2') ;- 4 replies
-
- delphi
- multicast events
-
(and 1 more)
Tagged with:
-
Why we do not go another way ... and why does Embarcadero do not give Andreas free lifetime licenses or a lifetime subscription? We / Subscription owners pay a lot and sometimes we don't get anything within that subscription period + Andreas is doing / has done a lot for Delphi in the last years ... so this would be a very good roi for embarcadero IMO. I don't know if Andreas would accept this ... but if he can, it would be a big plus for delphi ...
-
Should Exit be used instead of 'record Exists?' boolean?
microtronx replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
I would use "Exit;". Having nearly same needs and have a created a tObject for managing a tDictionary<string, __myrecord> to manage everything ... very fast IMO. Be sure to use "MonitorEnter" and MonitorExit if this can be used in multithreaded applications like function tmyComponent.getvaluerecord(vName: string; const vDefaultValue: variant): __MyRecord; var vValue:__MyRecord; begin if MonitorEnter(fDATA, fMonitorTimeout) then begin try vname:=trim(lowercase(vname)); if fData.TryGetValue(vname, result)=false then begin // we don't have that key in dictionary ... return default value ... or create a new entry etc.. result.vwert:=vDefaultValue; result.isObject:=false; result.isFile:=false; result.doFreeObject:=false; result.vcomponent:=nil; result.vname:=''; result.vdtstamp:=0; result.vtype:=''; result.vgroup:=''; end; finally MonitorExit(fDATA); end; end; end; -
Any news here? We're also searching for a updated libmysql.dll in 32bit for mysql8.
-
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
microtronx replied to microtronx's topic in Delphi IDE and APIs
I think the Patch has uninstalled all components (Teechart Standard is one of them) which i had selected in time of installation ... right after the patch installed i saw all optional software & languages not installed any more in platform manager. After reinstalling them with platform manager (tools menu), everything fine again ... -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
microtronx replied to microtronx's topic in Delphi IDE and APIs
Ok, after reinstalling missing components over Tools + Platform manager = everything working again 😉 -
Installed 10.4 Patch (Patch Tool) Test 1.0 - Components needing Teechart don't work any more
microtronx replied to microtronx's topic in Delphi IDE and APIs
Uninstalling that patch leaves a damaged system! it seems that the patch has uninstalled a lot of components / addons. Now i try to go through Tools menu to install languages, teechart and Androidsdk again ... lets see what happens ...