-
Content Count
1936 -
Joined
-
Last visited
-
Days Won
25
Everything posted by Attila Kovacs
-
procedure TForm1.MyOnMoveHandler(Sender: TObject; var X, Y: Integer); begin DoSomething(x, y); end; procedure TForm1.X; begin myJoy := Tjoystick.Create(Form1); myJoy.OnJoyMove := MyOnMoveHandler; end;
-
Get class instance in record
Attila Kovacs replied to Ugochukwu Mmaduekwe's topic in Algorithms, Data Structures and Class Design
Not outside, as it's strict private. You could pass TA instances to the method you are using to initialize your record. class function DefaultB(ATA: TA): TB; static; begin Result.ClassAInstance := ATA; end; -
As a Delphi expert, do you ever need to refactor or improve your code?
Attila Kovacs replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
It's an interesting topic since ages. Please don't kill it. The original question was also very broad (or strictly just a yes/no question). -
And it's not just about html, it's about everything... I have so far: Runtime user rights management with htscript Runtime charts designer with htreports, including SVG maps over 8500 paths (ZIP code areas) HTML Report generator in a Report generator (like the one in the video, just not FR) On the fly datasheet generator, in just msecs Custom dropdown forms with interactive elements Several webshop-template/text editors with htmledit (wysiwyg) Several visualizations like notes, appointments, charts, etc.. with dynamic content and dynamic sizes (looks really great) many other things... and many many new ideas.. I can't wait for the office extensions! I love it! And everything native. Dig this.
-
Can't reproduce in Chrome. @Kas Ob. Wat is your default os encoding and which parentheses was it?
-
custom attributes question
Attila Kovacs replied to David Schwartz's topic in RTL and Delphi Object Pascal
They are different, but you can parse and look for the field or for the property for yourself. You can also put as many attributes to your field/property as you want. -
@Alexander Sviridenkov So you have implemented the whole office package into Delphi? I hope it's not only for FMX. 😉
-
holy cow Alexander
-
I was playing with TWebBrowser and it turns out that it just renders crap in HDPI mode. A simple winforms app with a webbrowser renders everything correctly. Both exe's are added to FEATURE_BROWSER_EMULATION with 11000 and checked the compatibility mode with https://detectmybrowser.com/ Tested in 10.1/10.2/10.3 I could not find any report about it, maybe I'm doing something wrong. Has anyone else experienced this?
-
Got it. The key is to register the exe name under "FEATURE_96DPI_PIXEL" in the registry with a dword=1. This makes TWebBrowser render correctly in a DPIAware applicaiton. Thank you @Der schöne Günther for the hint!
-
Wow @Der schöne Günther, bingo. I've compared the manifests between the winforms and the delphi app and the winforms app has no dpiAware:True in it. So I unchecked it in Delphi and voila, they render the same. Thanks for the tip, but.... Now I have an other question... What should I do now? Looks like I would need it for the VCL app but not for the TWebBrowser!?
-
maybe your original project's exe name added to the registry to run in hihgher compatibility mode? https://stackoverflow.com/questions/25843845/how-to-have-delphi-twebbrowser-component-running-in-ie9-mode
-
It's amazing that you can argue with a quotation from your own post. Maybe 400% text zoom would be better.
-
So what? First time experiences with 4K?
-
scaling, not the text size
-
no. use 200% scaling for best result
-
What are your compiler settings for debug builds?
Attila Kovacs replied to dummzeuch's topic in Delphi IDE and APIs
This makes Greta even more sad. -
you are right, it wont. this is all what happens: if (FMaxConnections > 0) and (FAddingActiveModules >= FMaxConnections) then raise EWebBrokerException.CreateRes(@sTooManyActiveConnections); Calculating the max allowed concurrent user depends on many things and there is no exact formula. You could do some stress-test to see how the server works under load. This would also test how your dll and connection pool are performing, are there deadlocks, unexpected behavior, etc...
-
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
Well, I'd clone/backup the project and start removing all 3rd party units, including firedac. - did you check the system/application events? - if you kill all the w3wp processes in the taskmanager, will then IIS stop faster? -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
Ok. - I'll assume then that you are aware that in case of TFDManager.Create(SomeComponent), including placing the component on a datamodule, FDManager will be free'd if SomeComponent is free'd. - I'm sure, that you have tried commenting out the whole OnTerminate, and IIS still stalls on stop. Let me know if you find something. I'm really curious. -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
Ok. How do you create FDManager (Create(nil)?, not that you free it twice) and where is the var declared? -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
How can you see that? Hourglass, or the time until the dll is released? -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
sidenote: in "TWebApplication.Create" there is already a "if IsLibrary then IsMultiThread := True;" -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
ok -what if you remove the .free? Will it leak memory or does it get freed when IIS unloads the dll? -what if you create your FDManager with "TISAPIApplication(Application)" as owner? It's a TComponent descendant so it will free FDManager. -
ISAPI DLL concurrent requests
Attila Kovacs replied to Mark Williams's topic in Network, Cloud and Web
I'm not sure why do you need a critical session for freeing something? Do you think other threads would still using it? And you just freeing it? Just asking.