-
Content Count
2268 -
Joined
-
Last visited
-
Days Won
46
Everything posted by Fr0sT.Brutal
-
There is no standard query or table, only basic TDataset. What FastReport did is create their own basic query class and provide a bunch of adapters to particular query classes (BDE, ADO, IBX etc). However, all years I've worked with FR, I never needed particular FRQuery. I just prepare datasets inside my app and provide them to FR engine. Probably you too won't really need exactly queries
-
Clientdataset seems a good idea but it requires stupid midas.dll IIRC. Alas, the implementation should be as simple as, f.ex., TStream descendant, but it's too complex actually. There was Marco Cantu's article "A Dataset with no Database" (link is obsolete now) which I used to create my own primitive implementation when I needed a grid with word wrapping. For simplicity it's only able to store strings.
-
I always try to declare methods so that most calls jump "up" (to the beginning of a unit).
-
Survey of Delphi Versions in use??
Fr0sT.Brutal replied to Ian Branch's topic in Community Management
They usually solve it like: 1) Collect as much as possible 2) Extract pieces that are needed for analysis 3) Sell other to 3rd parties 4) Double profit! -
Proxy for TEdgeBrowser/Webview2?
Fr0sT.Brutal replied to softtouch's topic in Network, Cloud and Web
Really impressive, you seem to revive all-in-one approach of good old Opera! -
HTML Parser alternative to MSHTML?
Fr0sT.Brutal replied to Darian Miller's topic in Delphi Third-Party
HTMLViewer obviously also has its parser; however I'm not aware if it could be used separated from rendering engine -
Proxy for TEdgeBrowser/Webview2?
Fr0sT.Brutal replied to softtouch's topic in Network, Cloud and Web
I doubt it's possible. Neither Chrome can do this nor all Chromium clones I know (like Opera) -
I use changelog file as both versions catalog and info for user to read, it has simple format like 3.2.1 + add stuff ! fix stuff ... Update checker requests the file, parses it, checks if latest version differs from the current binary version and suggests to update displaying all the changes from the current version to the latest one. I also have beta versions: b865 + some untested changes where 865 is build number that is compared with that in current binary. I don't think I need something more advanced - the changelogs are so small I don't bother with caching and traffic. Depending on the server settings, you could put the versions into their personal folders so that directory listing will give you the list of all newer versions and their paths; then you can loop through all newer versions getting their changelogs (if each version has its own one) or just retrieve one common file. Proxy support is really something to be considered; however, you can rely on system-wide settings if you don't want to implement custom editors for these options.
-
No. Any custom graphics just confuse users of business apps. Moreover, it will burden remote channels with no real benefit
-
Actually that's what Word does. It occupies the opened file for the whole edit cycle blocking it from access
-
Survey of Delphi Versions in use??
Fr0sT.Brutal replied to Ian Branch's topic in Community Management
What's the sense in such surveys gathered from 20-30 guys? -
Load and save cookies with System.Net.HttpClient, how?
Fr0sT.Brutal replied to softtouch's topic in Network, Cloud and Web
From the 1st glance, this could be also done with plain old procedures b/c all used members are public -
What you dislike in idea of having these options set in different build configs inside dproj?
-
My crystal ball says he just wants to prevent users from examining his app's traffic. Use SSL with hostname verification and forget about sniffers.
-
Looking for photography enthusiasts for continuing a camera calibrator project (CoCa)
Fr0sT.Brutal replied to hurodal's topic in I made this
...and still no multithreading 😄 Moreover, rewriting GUI wrapper, as in subject, in Python is twice senseless. -
Reorganize a class / Set Of ..
Fr0sT.Brutal replied to PatV's topic in Algorithms, Data Structures and Class Design
The shortest form you can achieve is TClass<TEnum, TSetOfEnum>. Or have generic class working with sets of byte and only write specific converters TSetOfEnum<=>SetOfByte -
buOverbyteIcsHttpSrv.THttpServer.Create
Fr0sT.Brutal replied to merijnb's topic in ICS - Internet Component Suite
Probably that was intended for design-time auto-naming -
Cast an array of numbers to array of bytes without re-allocating
Fr0sT.Brutal replied to Der schöne Günther's topic in Algorithms, Data Structures and Class Design
Fair point I'm a bit old-school. Pointer+length work with almost any language, interfaces are mess (especially Delphi ones) -
Looking for photography enthusiasts for continuing a camera calibrator project (CoCa)
Fr0sT.Brutal replied to hurodal's topic in I made this
only in the form "(import some-library-that-will-do-all-the-work).run()" -
Cast an array of numbers to array of bytes without re-allocating
Fr0sT.Brutal replied to Der schöne Günther's topic in Algorithms, Data Structures and Class Design
Just remember such hacks could break if compiled with RTL that has another layout. Besides this, the solution is quite OK. However, if at least one of 3rd parties you use accepted raw pointers, the issue wouldn't exist at all. -
OT: without the "IDE" word the name of this topiс would be some kind of historical fact 🙂
-
Can undefined function result point to valid/used data in memory?
Fr0sT.Brutal replied to Mike Torrettinni's topic in RTL and Delphi Object Pascal
Any allocations give you previously unused memory blocks, if that wouldn't be true even primitive Hello world app would randomly crash -
1) UNIQUE constraint on both fields could solve this 2) Using Autoinc there could be only one for all companies so there will be holes in numbering and number capacity could exhaust very quickly (10E8-1). Splitting area between several autoincs could push the issue into more far future but it would make things complicated
-
Class not instantiated ... but method executed
Fr0sT.Brutal replied to DelphiUdIT's topic in Algorithms, Data Structures and Class Design
Methods are just routines with implicit 1st argument set to Self. If you're not using Self inside them, they will work. Try to add some internal string field and show it inside Ghost, then you'll get what you expect -
Any way to get RTTI for non-zero-based enumerated types?
Fr0sT.Brutal replied to PiedSoftware's topic in RTL and Delphi Object Pascal
You may use the following trick which I recently invented and applied to all my projects: 1) TEnumNullable = (enNone, enFoo, enBar); 2) TEnum = enFoo..enBar; // or Succ(Low(TEnumNullable))..High(TEnumNullable) this has following benefits: - RTTI features - "Null" value that won't cause range check errors in FPC like usual TEnum(-1) - "Null" value that is NULL (zero) actually - ZeroMemory, Default(), Class.Create init fields with this value - two types so you can differentiate where null is expected and where not - simple and obvious DB_Value_Of_Enum = Ord()