omnibrain
Members-
Content Count
107 -
Joined
-
Last visited
Everything posted by omnibrain
-
icstimeclient IcsTimeClient timeout when connecting ptbtime1.ptb.de
omnibrain posted a topic in ICS - Internet Component Suite
I'm currently testing IcsTimeClient but I'm running into inexplicable timeouts when trying to get the time of ptbtime1.ptb.de. It looks like it's resolving the IP correctly (192.53.103.108) and when I try to get the time from the same server via the Indy-Component it works. Other servers, like the NIST-servers NIST Internet Time Service work with IcsTimeClient too. I tried both, with the OverbyteIcsTimeTst program and my own, reduced to the basics, one. -
RCS Chats - Rich Communication Services
omnibrain replied to Angus Robertson's topic in ICS - Internet Component Suite
I don't think Apple is using RCS. And the track record of Google regarding messaging is not the best. ~10 years ago there were some failed attempts of carriers in Germany trying to push a RCS based messenger. But WhatsApp had already won back then. -
Of course, but in the code of the component there is "NTPToDateTime" and in there "UTCTimeToLocalTime". And like I said. Last week it worked. I would have expected an error of 2 hours last week, if this was the case.
-
I've sent you an email asking for a quote.
-
This looks really great. But for some demos I still get the following error, I think the uecNativeMeasureMap dcu is outdated: [dcc32 Fataler Fehler] UMainNativeLinesPolygones.pas(8): F2051 Unit uecNativeMeasureMap wurde mit einer unterschiedlichen Version von UECGraphics.TECCanvas compiliert
-
I really like what I see. Do you have an overview over the demos, so I don't have to open each one? Some Demos don't compile, DemoNativeLinesPolygon for example. I think it has to do with the DCUs being compiled for a different version.
-
Can you please provide me with a trial (your website says to ask for a trial)? I want to give it a spin, before I license it for me and my 3 other developers. Native Support for WFS and WMS layers so they can be used like in leaflet without having to build the URL by hand would be great. A time dimension function for WMS, like Leaflet.TimeDimension AddOn would be the cherry on the cake. Regarding the legends, you are correct, no special function is needed, they are just static images.
-
"Manually" building URLs for WFS is easy, because it's more or less a "static" geojson endpoint. For WMS it is not really an option for me, because WMS (especially combined with a GeoServer) is a somewhat complex standard with spatial and temporal dimensions and way easier to use with ready made libraries.
-
My map looks like this: Then I add point markers for asset tracking, etc.
-
Sounds great. I'm really intrigued. I'm really considering giving it a try, because currently I'm using leaflet in a web view. While that has advantages, especially for reusability in the web, a "native" Delphi solution would make my life easier especially for the simpler usecases. One more question: In one part of my app I'm enriching my Map with WFS and WMS. Via WFS I get a geojson layer and have a click handler assigned to every feature: var wfslayer = L.Geoserver.wfs("https://maps.dwd.de/geoserver/dwd/ows?service=WFS", { layers: "dwd:Warnungen_Gemeinden_vereinigt", style: { fillOpacity: 0, }, onEachFeature: function (feature, layer) { layer.on('click', handleClick); } }); wfslayer.addTo(map); Via WMS I get a raster layer and use plugins to show the legend and more important navigate through the time dimension: var regen = L.tileLayer.wms('https://maps.dwd.de/geoserver/ows?', { layers: 'dwd:Niederschlagsradar', format: 'image/png', transparent: true, version: '1.3.0', opacity: 0.5, attribution: 'DWD' }); var regen_time = L.timeDimension.layer.wms(regen, { updateTimeDimension: true, }); regen_time.addTo(map); L.control.scale().addTo(map); uri = "https://maps.dwd.de/geoserver/ows?service=WMS&request=GetLegendGraphic&format=image%2Fpng&width=20&height=20&layer=dwd%3ANiederschlagsradar" L.wmsLegend(uri); Would this be possible with your component? Edit: I'm getting data from: https://maps.dwd.de/geoserver/web/ but will also use other sources in the future.
-
For geolocation can I specify my own Nominatim instance?
-
I run my own OSM tile server. Currently I bundle leaflet with my application, but your component looks interesting too. Regarding OSM you only mention setting map.TileServer := tsOsm; in code. But can I also specify my own tile server in the format http://example.com:8080/tile/{z}/{x}/{y}.png? Edit: I found it further down: https://www.helpandweb.com/ecmap/en/tecnativemap.htm#USE_YOUR_OWN_TILE_SERVER
-
I want to host a console in my Delphi application. Editors/IDEs like VS Code and IntelliJ IDEA have an embedded console. I want essentially achieve the same. For the moment it doesn't matter if it is the "old" console oder the new "windows terminal". I want to have a tab or panel in my application with a console that runs cmd or powershell. Trouble is, I don't know where to start. When I search I only find how to write Delphi console applications. Or I find information on how to read the console output of other programs (like with TurboPack DOSCommand).
-
Yes, but redirecting input and output is not what I want to do. That's possible with the TurboPack DOSCommand I mentioned. But this way I lose everything that makes a (modern) console magic. Colours, clickable links. So I want to "host" the real deal. I suppose I can start a Console, pass a handle to a panel or something as the parent and have it draw within my program. I don't need the output. I could send input via Windows Messages if necessary.
-
Can someone help me? I use a TObjectDictionary<integer,TmesData> with doOwnsValues, but if I remove an object via .Remove(key) my destructor does not get called. My class declaration: TmesData = class private procedure socketDataAvailable(Sender: TObject; ErrCode: Word); public payload: string; sendCount: integer; sendSocket: TWSocket; log: ts; sendTime: tdatetime; constructor create(alog: ts; const ip,port,apayload: string); destructor Destroy; //close and free socket function doConnect():boolean; function doSend():integer; end; On my form I do //create sendList sendList:=TObjectDictionary<integer,TmesData>.Create([doOwnsValues]); // add objects sendlist.Add(strtoint(seq),TmesData.create(doLog,edIP.Text,edPort.Text,mes)) later I do processing with for var seq in sendlist.Keys do begin //do processing //... //remove current object after processing sendlist.Remove(seq); end; The destructor of my TmesData objects never gets called. I must miss something obvious.
-
generics Destructor of Object in TObjectList<k,v> never gets called despite doOwnsValues
omnibrain replied to omnibrain's topic in Algorithms, Data Structures and Class Design
Ah, yes. Obviously. I generally don't write my own objects (or they are only "records on steroids, so I don't need a custom destructor) -
And most important: Only commit what you actuallly changed. Revert all the rest. Only made a change to the .pas? Revert that changes to the dfm. Those are either selected tabs, attributes that got added with newer versions, or those imagelist headers that change by themselves. Or worse: you missclicked and moved a control. (Or Delphi decided to f*** with the DPI). Same for the project files.
-
How to use an external editor like VScode and GitHub Copilot for Delphi 11 Alexandria?
omnibrain replied to Al T's topic in Delphi IDE and APIs
What extensions would you recommend? Is Delphi Extension Pack - Visual Studio Marketplace a good start? -
ChatGPT does not answer with Facts but with the thing that is most likely going to be the answer. Sometimes that's actually a fact, sometimes it just makes stuff up. I had ChatGPT make up library names that sounded good, with method signatures that fitted the requirements, but they did not exist. When pressed ChatGPT even made up github repositories. This behaviour is more likely for Delphi than for example Javascript, because there was just not as much Delphi code in the training set.
-
Best practices for working with a DB accessed via REST API?
omnibrain replied to David Schwartz's topic in Databases
Supabase Try Supabase. It is postgreSQL+postgREST+Auth. You can manage your access rights via row level security directly in the database. If the automatic API via postgREST does not fit you can always build something yourself later, because in the end it's postgreSQL and you can use it as such. -
I implemented the Async/Await-Pattern as described in The Delphi Geek: Async/Await in Delphi Now I want to update GUI-Elements from my async task. For example to write into a log window or update a status bar. How would I best do that. I guess I can't use TThread.Synchronize because that's a whole different library? memo1.append(datetimetostr(now)+': Starting'); Async( procedure begin memo1.append(datetimetostr(now)+': Start Processing'); for i=0 to itemcount do begin //process TThread.Synchronize(nil, procedure begin memo1.append(datetimetostr(now)+': Processed item No '+inttostr(i); end); end; end). Await( procedure begin memo1.append(datetimetostr(now)+': Finished Processing'); end); end;
-
Async/Await with updating visual controls
omnibrain replied to omnibrain's topic in OmniThreadLibrary
Doesn't matter in this case, because it's just an example, but definitily something to consider if it plays a role. -
Async/Await with updating visual controls
omnibrain replied to omnibrain's topic in OmniThreadLibrary
Thanks a lot. It's my first real foray into parallelism and concurrency with Delphi. Especially with parallelism and concurrency I learned the hard way, that there is a difference between "seems to work in development" and "does really what it should be doing", especially when the Dev is inexperienced with the tools. Oh, yes, of course. -
Opinions about Pascal vs C/C++ IDE
omnibrain replied to TimCruise's topic in Tips / Blogs / Tutorials / Videos
Yes, they are barely scraping by and nobody uses their tools.- 39 replies
-
- programming hardware
- rad studio
-
(and 1 more)
Tagged with:
-
Opinions about Pascal vs C/C++ IDE
omnibrain replied to TimCruise's topic in Tips / Blogs / Tutorials / Videos
Jetbrains gives you 25% if you send them a screenshot of your Delphi License.- 39 replies
-
- programming hardware
- rad studio
-
(and 1 more)
Tagged with: