-
Content Count
2839 -
Joined
-
Last visited
-
Days Won
168
Everything posted by Uwe Raabe
-
compiling DCU without creating EXE
Uwe Raabe replied to Dave Novo's topic in RTL and Delphi Object Pascal
Additional options to pass to the compiler -
I guess you have different search paths by project group then? Well, I cannot promise, but I can try to add an option in a future version to include all search paths from each project in the project group.
-
compiling DCU without creating EXE
Uwe Raabe replied to Dave Novo's topic in RTL and Delphi Object Pascal
It is even possible to compile just pas files with dcc<xxx>. So create a unit that uses all of your units and compile that one. -
With remover refactoring tool to IDE, Please vote this feature request:
Uwe Raabe replied to Tommi Prami's topic in Delphi IDE and APIs
As long as no time machine is available it doesn't help much to lament about facts that cannot be changed afterwards. (One could as well claim that there would be no with-troubles when N.Wirth didn't invent it in the first place.) The topic is not about with being bad or how it could be made better, but about a tool to convert with statements without breaking existing code (which can be quite tricky shown by Anders). -
With remover refactoring tool to IDE, Please vote this feature request:
Uwe Raabe replied to Tommi Prami's topic in Delphi IDE and APIs
No need for that. You can already write this instead of such a with-clause. begin var foo := some.long.long.nested.object; foo.bar := laz ... end; That doesn't help converting existing with constructs, though. -
"Add Method" (Ctrl+Alt+M) wrongly assigned to TForm
Uwe Raabe replied to Didier Cabalé's topic in MMX Code Explorer
OK, I didn't realize that DoIt doesn't exist. MMX basically works on the current unit and the selected entity - property, method, class, module etc. -
"Add Method" (Ctrl+Alt+M) wrongly assigned to TForm
Uwe Raabe replied to Didier Cabalé's topic in MMX Code Explorer
Adding a layer of action to achieve a goal is probably not well accepted by long time MMX users as it would break their work flow. Even if such functionality would exist, which class should the method be added when DoIt is not declared in TMyObject, but in TMyBaseObject, which TMyObject is derived from? Instead of asking for the target object each time, it is much simpler to Ctrl-Click on the TMyObject reference or even the DoIt reference in the code, which immediately selects the requested object on which the Add Method action then can be executed on. -
"Add Method" (Ctrl+Alt+M) wrongly assigned to TForm
Uwe Raabe replied to Didier Cabalé's topic in MMX Code Explorer
Wrong Expectation! The method is (obviously) added to the currently selected object TForm1. Works as expected. -
I will be less active for a few weeks
Uwe Raabe replied to Lars Fosdal's topic in Community Management
I have got my first shot on Sunday. Monday morning I felt like 20 again, where I also had massive problems to get out of bed (albeit for other reasons). Took a nap after dinner (can't remember doing such thing before). Fortunately that fatigue went away in the evening. So I highly recommend a vaccination, too. -
Unfortunately the conditions when taking over MMX explicitly forbid making the code or parts of it Open Source.
-
How to Convert curl command line to Delphi code using IndyHttp or THttpClient.
Uwe Raabe replied to amit's topic in Network, Cloud and Web
Cannot test it from here, so something is probably still missing, but it might look like this one: uses System.SysUtils, REST.Client, REST.Authenticator.OAuth, REST.Types; procedure Main; var auth: TOAuth2Authenticator; client: TRESTClient; request: TRESTRequest; response: TCustomRESTResponse; begin client := TRESTClient.Create(nil); try client.BaseURL := 'https://notify-api.line.me'; auth := TOAuth2Authenticator.Create(nil); try auth.TokenType := TOAuth2TokenType.ttBearer; auth.AccessToken := 'U4314taadsffhjjjjykllFVissffdfssdfsdfsgfgz'; client.Authenticator := auth; request := TRESTRequest.Create(nil); try request.Client := client; request.Method := rmPOST; request.Resource := 'api/notify'; request.AddParameter('message', 'abcTest', pkREQUESTBODY); request.AddParameter('stickerPackageId', '1', pkREQUESTBODY); request.AddParameter('stickerId', '113', pkREQUESTBODY); request.AddParameter('imageFile', 'D:\mypic.jpg', pkFILE); request.Execute; response := request.Response; if response.Status.Success then begin Writeln('Success: ' + response.Content); end else begin Writeln('Failed with ' + response.StatusText + ': ' + response.Content); end; finally request.Free; end; finally auth.Free; end; finally client.Free; end; end; -
Note that the shown price is for a one year subscription. Nevertheless totally worth it.
-
Depends on which country the server is locating you. AFAIK, for Germany the reseller is Emenda. @KodeZwerg, do you have anything like a proxy, VPN or something active when you browse that site?
-
This is a part of the Called By graph for the TCodeItem.Clear method in MMX Code Explorer as created by Understand. The dots allow to dynamically expand/collapse the next level. This goes up even to wired event handlers, f.i. to quickly find the form and control triggering the call.
-
MMX Code Explorer FR: Add function to Select the whole Method
Uwe Raabe replied to panie's topic in MMX Code Explorer
Place the cursor somewhere inside the method and press CTRL-W repeatedly until the whole procedure is selected. Standard IDE functionality. -
It is the same as Comment Entitiy. It places a line comment // before the entity at the cursor and all related entities (like getter, setter, field for a property). It comments interface and implementation part of that entity. It doesn't matter whether the cursor is placed in the interface or implementation of that entity. Note that there is no simple action to reverse that.
-
Of course it would. It is just that all others are completely incompetent. 🤦♂️
-
I guess, the tricky part is to make the IDE support High-DPI while the form designer stays on PixelsPerInch = 96 (Irony: This would be pretty easy with the undocked designer). Imagine the controls shifting around when one DFM is designed on several systems with different DPI. One cannot expect all developers in a team working in exactly the same environment. Merging changes in DFMs would be near to impossible.
-
Any subkeys of the key need to be deleted first. TRegistry.DeleteKey already takes care of that, but it needs KEY_ENUMERATE_SUB_KEYS access for that, which is not included in KEY_WRITE. Try KEY_ALL_ACCESS.
-
These are not UI bugs in the first place. The form design looks quite OK during design time (the "String" label is changed dynamically) and run time on my system. You can see that there is still some difference in the gap between External File and the combo box. I guess, your display problems are due to some buggy scaling of the Delphi IDE, which is to be expected as long as the IDE doesn't support High DPI properly. There is not much I can do about that.
-
This kind of display errors are often seen when the IDE is used in a High-DPI environment with GDI scaling. Windows sometimes select font sizes slightly larger as the scaling suggests. It is pretty hard to detect this inside the application, The only workaround I am aware of is to give some extra space between controls to cover these cases.
-
Delphi 10.4.2 Right Click over a word -> Find Declaration, Not working.
Uwe Raabe replied to Juan C.Cilleruelo's topic in Delphi IDE and APIs
It would be interesting to inspect the different settings in your DEBUG and RELEASE configurations to find the real cause.- 45 replies
-
- 10.4.2
- find declaration
-
(and 1 more)
Tagged with:
-
Keyboard shortcut to move current line up or down?
Uwe Raabe replied to RaelB's topic in Delphi IDE and APIs
That works only when MMX Code Explorer is installed -
AFAIK, that Demo-Kit is meant to support presenters and bloggers to create content around Delphi 10.4.2. I don't know if that stuff is planned to go into the normal demos.
-
This blog mentions a way: Execute Scripts and View Source with TEdgeBrowser