Jump to content

microtronx

Members
  • Content Count

    101
  • Joined

  • Last visited

Community Reputation

26 Excellent

Technical Information

  • Delphi-Version
    Delphi 10.3 Rio

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. microtronx

    HTML Library review and sale: 25% off.

    Very stable and good components + very good support. We can recommend htmlcomponents fully! Thanks for your work Alexander!
  2. 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.
  3. 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?
  4. I found spring4d but there was no demo or i've not seen any demo how to use that. How is Event<T> used?
  5. 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') ;
  6. microtronx

    Delphi 10.4.1 and the IDE FIx Pack

    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 ...
  7. 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;
  8. microtronx

    Up-to-date 32 bit libmysql.dll?

    Any news here? We're also searching for a updated libmysql.dll in 32bit for mysql8.
  9. 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 ...
  10. Ok, after reinstalling missing components over Tools + Platform manager = everything working again 😉
  11. 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 ...
  12. Be sure to have a backup, after installing this patch Reportbuilder and DevExpress Components connected with Teechart are not working any more: So, whats next if we don't have a backup ??
  13. microtronx

    Your RAD Studio 10.4 Sydney issues

    You are right, it may be usable for others but on our side with big projects it crashes too often. I think new users and new projects could work fine ... 😉
  14. microtronx

    Your RAD Studio 10.4 Sydney issues

    Important IDE specific rsp's are so much, i hope we get fixes very soon ... at the moment 10.4 is not usable ... crashes all over the time
  15. microtronx

    Your RAD Studio 10.4 Sydney issues

    Everytime i click to a function name with pressed CTRL the IDE starts hanging ... when i see this, i press fast ESC and that stopps the ide from crashing, most of the time but this is not normal. Possible that someone created already a report?
×