-
Content Count
2857 -
Joined
-
Last visited
-
Days Won
101
Everything posted by dummzeuch
-
More improvements to the Uses Clause Manager
dummzeuch replied to PeterPanettone's topic in GExperts
I changed the code to disable the irrelevant menu entries rather than hiding them. Also, I implemented "Open File Location". revision #2841 / 2842 There is one problem with the way the status bar code is currently implemented: It calls GxOtaTryFindPathToFile each time which is quite a costly function (try to move the entry with the arrow keys and you will notice a delay. I'm thinking about saving the whole file name instead of just the unit name while scanning for them, so they are available later. Also, it might be more intuitive to copy or move the popup menu entries of the status bar to the already existing popup menus of the lists. -
Deal - breaker: Registration Limit Increase
dummzeuch replied to John Kouraklis's topic in General Help
Since it's not a requirement that this server is running at all times (the IDE must see it only once in a while), it's quite fine to run it in a VM on the same machine. A VM can also be easily backed up to guard against hardware failure. Personally I wouldn't put it "into the cloud". I don't trust their security. As I also wrote in my blog, ours is running in our company intranet and I access it from my PC at home through an ssh tunnel. I only open that connection about once every two weeks to reset the IDE's license countdown. -
Deal - breaker: Registration Limit Increase
dummzeuch replied to John Kouraklis's topic in General Help
We are running this server as a virtual machine on an already existing XenServer. The vm runs a minimal Ubuntu Server and doesn't need much RAM or CPU. No idea whether it might run on a router, but I doubt it. But you can of course run it in a small VM on your development computer. Also, it can be configured to allow up to 30 days (the default is much lower IIRC) of using the license without contacting the elc, so you only have to remember to start that vm once in a while. -
Deal - breaker: Registration Limit Increase
dummzeuch replied to John Kouraklis's topic in General Help
I think I said it before: Convert your license to a network named user license and use the elc and this will never happen again. https://blog.dummzeuch.de/2018/07/14/some-information-about-embarcadero-licence-center/ Of course there can be other problems, e.g. with the elc itself then. But at least it will reduce the probability of you not having a working Delphi installation for several days because you changed something on your Windows computer or VM. -
Expand Macro Template: not working right if 'Umlauts' are available on source code
dummzeuch replied to ULIK's topic in GExperts
As to your suggested bugfix: It seems to work fine in my tests, but I am not sure whether it will fix the original problem reported in bug #79, but I'll just assume the best and wait for new bug reports. 😉 -
Uses Clause Manager - Showing the filepath of the selected unit in the StatusBar
dummzeuch replied to PeterPanettone's topic in GExperts
Since it is the same functionality as in Windows, when you right click on a shortcut, I think it's fine to call it the same: "Open file location" -
Expand Macro Template: not working right if 'Umlauts' are available on source code
dummzeuch replied to ULIK's topic in GExperts
I'm getting an email for each change there. I have got a filter on these emails so they don't trigger any notification on my smartphone, but I definitely get and read them, and since they stay in my GExperts folder until I delete them manually, there is a good chance that I see them when I have got time to work on the tool (like today). In contrast to posts here: These I might read but forget that they existed because once they have been marked as read, the forum software won't show them in the "unread topics" view. And that's the view I use to browse the forum. So: Posting comments (and of course bug reports and feature requests) on SourceForge is the best way to get my attention and also the best way for me to find them later. -
Uses Clause Manager - Showing the filepath of the selected unit in the StatusBar
dummzeuch replied to PeterPanettone's topic in GExperts
The first one works, the second one doesn't 😉 (Not implemented) It guess Peter's intention is to make this the same as pressing Ctrl+C in the Windows Explorer. -
Uses Clause Manager - Showing the filepath of the selected unit in the StatusBar
dummzeuch replied to PeterPanettone's topic in GExperts
@PeterPanettone NOTE: I just found and fixed a bug in the Uses Clause Manager! https://sourceforge.net/p/gexperts/bugs/149/ Make sure you are using the latest sources! -
Uses Clause Manager - Project list does not work with map file in 64-bit programs
dummzeuch replied to PeterPanettone's topic in GExperts
Committed (with changes) Note: There is still a problem with the Uses manager not finding the .map file if the output directory contains the default place holders $(Platform) or $(Config). This probably also affects other places that can use the map file, like Grep or Open File. I'll file a bug report for this. -
Uses Clause Manager - Showing the filepath of the selected unit in the StatusBar
dummzeuch replied to PeterPanettone's topic in GExperts
Thanks, committed. Please use the current sources if you want to improve this further. I'll keep my hands off this code for now in order to not create any conflicts. I made Copy text to clipboard the default for the status bar context menu. The other changes, in particular to the dfm file are due to incompatibilities to Delphi 6. -
Crash on exit when drive is removed
dummzeuch replied to Yaron's topic in MARS-Curiosity REST Library
This can probably be avoided by changing the PE flags of the executable: {$SETPEFLAGS IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} -
convert embedded GML to a world file
dummzeuch posted a topic in Algorithms, Data Structures and Class Design
I've got picutres (airial photos) in jpeg2000 format (filename.jp2) with embedded GML (Geographic Markup Language) information giving their geographic position. I need to use this with a tool that can only handle JPEG files with additional world files (filename.jpg + filename.jpw). I already have got a conversion tool for jpeg2000 to jpeg (Yes, I know that jpeg2000 is lossless while jpeg isn't, but that doesn't matter in this context.) but it does not handle the gml information. I need to do two things; extract the GML text interpret this text in the same way as a world file Eventually this should result in a program that reads those .jp2 files and generates .jpw files for each of them. Before I reinvent the wheel: Is there already a tool that can do that (in batch mode!)? If not: Extracting the GML can be done by simply parsing the start of the file until it encounters the matching strings. Not elegant but it would work. I'd prefer a library that can do this according to specification though. I tried to understand the GML specification, but so far failed. It's very complex and apparently can do a lot more than I need. A world file contains 6 lines of text: Line 1: A: pixel size in the x-direction in map units/pixel Line 2: D: rotation about y-axis Line 3: B: rotation about x-axis Line 4: E: pixel size in the y-direction in map units, almost always negative[3] Line 5: C: x-coordinate of the center of the upper left pixel Line 6: F: y-coordinate of the center of the upper left pixel I'm not sure how to get this from the GML information: <gml:FeatureCollection xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlJP2Profile/1.0.0/gmlJP2Profile.xsd"> <gml:boundedBy> <gml:Envelope srsName="urn:ogc:def:crs:EPSG::25832"> <gml:lowerCorner>319000 5629000</gml:lowerCorner> <gml:upperCorner>320000 5630000</gml:upperCorner> </gml:Envelope> </gml:boundedBy> <gml:featureMember> <gml:FeatureCollection> <gml:featureMember> <gml:RectifiedGridCoverage dimension="2" gml:id="RGC0001"> <gml:rectifiedGridDomain> <gml:RectifiedGrid dimension="2"> <gml:limits> <gml:GridEnvelope> <gml:low>0 0</gml:low> <gml:high>9999 9999</gml:high> </gml:GridEnvelope> </gml:limits> <gml:axisName>x</gml:axisName> <gml:axisName>y</gml:axisName> <gml:origin> <gml:Point gml:id="P0001" srsName="urn:ogc:def:crs:EPSG::25832"> <gml:pos>319000.05 5629999.95</gml:pos> </gml:Point> </gml:origin> <gml:offsetVector srsName="urn:ogc:def:crs:EPSG::25832">0.1 0</gml:offsetVector> <gml:offsetVector srsName="urn:ogc:def:crs:EPSG::25832">0 -0.1</gml:offsetVector> </gml:RectifiedGrid> </gml:rectifiedGridDomain> <gml:rangeSet> <gml:File> <gml:rangeParameters/> <gml:fileName>gmljp2://codestream/0</gml:fileName> <gml:fileStructure>Record Interleaved</gml:fileStructure> </gml:File> </gml:rangeSet> </gml:RectifiedGridCoverage> </gml:featureMember> </gml:FeatureCollection> </gml:featureMember> </gml:FeatureCollection> gml:lowerCorner and gml:upperConer seem to be the coordinates of the top left and bottom right of the picture in UTM zone 32N, that should take care of lines 5 and 6 of the world file. Pixels sizes don't seem to be part of the data. I could probably assume a rotation of for these kinds of pictures. So maybe I could simply compute the pixels sizes from the picture size and the given coordinates? -
Uses Clause Manager - Project list does not work with map file in 64-bit programs
dummzeuch replied to PeterPanettone's topic in GExperts
Thanks a lot. I was expecting the reason for this functionlity to fail to be a compiler / map file incompatibility but didn't know if I was right. This will solve it for Win64, but probably not for the other target platforms because they use yet another compiler. -
Deal - breaker: Registration Limit Increase
dummzeuch replied to John Kouraklis's topic in General Help
No, it used to be like that (Delphi 2007), but embarcadero changed this a while ago. -
Improvements in Uses Clause Manager Identifier Search
dummzeuch replied to PeterPanettone's topic in GExperts
As long as I use a slow computer myself that's important to me. It's not that I could not afford a faster one, I chose not to throw away anything just because something "better" comes around. You would be surprised how many Downloads of the Delphi 6 (and 7) version there still are. Personally I never used Delphi 6 but went from Delphi 5 directly to Delphi 7, so there is no nostalgia involved. I keep Delphi 6 support around because it's not much effort to keep it on top of Delphi 7 support (which is even more "popular" than Delphi 6). If I were to drop support for any Delphi versions, I would drop everything below Delphi 2007. That will happen if I ever lose my installations of these older versions, they stop working because of e.g. a Windows update or some bug turns up that only exists in these versions and that I am unable to fix with reasonable effort. (Or if I just decide I'm fed up with it.) For me GExperts is not about "business value". Otherwise I would definitely do something else in my spare time. -
Make the class constructor a regular procedure, the class variable a variable inside the unit and call the procedure from initialization.
-
You may need a license to use Google Maps, while Open Street Map is free, you can even host your own map server. Also, I would rather trust in OSM than Google that they keep their service available and the APIs mostly unchanged. (Just remember why this forum exists. G+ anybody?)
-
Parse and Log method parameters
dummzeuch replied to Mike Torrettinni's topic in RTL and Delphi Object Pascal
I wonder whether the string types also have a .toTtring method(helper). That would make writing such a tool so much simpler. -
Improvements in Uses Clause Manager Identifier Search
dummzeuch replied to PeterPanettone's topic in GExperts
Just to let you know: The improvements compiled with minimal changes in Delphi 6. No, as I wrote: I tested it on two computers, one is an 8 core Intel, the other one a 6 core AMD. Both are much faster than the average computer used in our company. But I also keep a Samsung N10 Netbook with Windows XP around to test for performance issues. Delphi 2007 and most of the GExperts functionality works fine on that one. But since the new functionality is already annoyingly slow on my fast computers, I haven't checked on the netbook yet. Talking about annoyances: You have the habit of upper casing words in a sentence. This comes over to many as shouting which is impolite. But answering the question: I prefer to solve performance issues in a way that also profits people with slower computers. After all, the above mentioned netbook is the one I take with me when I'm on vacation. One option to improve performance would be to use ContainsStr rather ContainsText. This would require the list to be converted to upper (or lower) case for searching, but since it would annoy me to show the identifiers converted thus, it means to have a converted copy of the list for searching and another one with the original identifiers. I just committed GX_UnitExportList (plus unit tests) which I consider using as a the solution. Another option would be to create an index as an array['a'..'z', '_', ' '] of TList which points to all entries that contain a given character (' ' for "any other character", we can have non ASCII characters in identifiers after all, but I guess they are rare). So the search could only include those entries that are in the list of all characters the user has typed. But it takes time to generate that array which may make the cure worse than the disease. I'll have to do some timing here. -
Improvements in Uses Clause Manager Identifier Search
dummzeuch replied to PeterPanettone's topic in GExperts
@PeterPanettone I have been testing the new functionality and I like it. One thing I that I would change (and probably will when I find th time) is to always show the matches at the start first even in "match anywhere" mode. This might also solve the small performance problem in that mode, because it's noticably slower than "Match at start" even on my very fast computer. So searching for matches at the start could be done first and displayed immediately, searching for matches anywhere else could be moved to a background thread and appended to the list once that thread finishes. Thinking about this: After that change there would be no need to distinguish between those modes... -
Improvements in Uses Clause Manager Identifier Search
dummzeuch replied to PeterPanettone's topic in GExperts
I just had a short look at the sources: They don't compile with Delphi 2007 because you prefixed many identifiers with the full unit names, e.g. Vcl.Controls.whatever. Delphi < XE does not understand this, so please don't do that. Also, there are quite a few unknown properties, but there isn't much that you can do about this. If I get it to compile I'll commit this, so you can base any additional changes on the changed code. Edit: Done. -
Improvements in Uses Clause Manager Identifier Search
dummzeuch replied to PeterPanettone's topic in GExperts
Delphi 6 (and Delphi 2007) does not have any enhanced threading library, so TParallelFor is out. I hope the rest of your changes hasn't broken too many places. (Mind you, I'm not complaining, I'm glad that somebody shows so much enthusiasm and contributes to GExperts, but as long as it can be done without too much hassle, I want to continue supporting Delphi 6 and 7. And Delphi 2007 is a must as long as I'm stuck with it.) -
No, it's the combination of the project's search path and the library path. Basically everything the IDE knows about.
-
May I remind you that adding suggestions to the sf.net ticketing system increases your chances of gettimg them implemented?