

MichaelT
Members-
Content Count
46 -
Joined
-
Last visited
Community Reputation
9 NeutralTechnical Information
-
Delphi-Version
Delphi 10.4 Sydney
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
MichaelT replied to bravesofts's topic in Windows API
So I see. Metallica did it's job pretty well. I didn't want to start another one of the *very useful* 'is Delphi dead discussion'. Doesn't work that way. For some situations I already figured out some song lines that describe what happend. Let's assume a command-line program having to cope lots of load and finally delivers a short dump that's ... that's ... from my beloved Alissa from Canada nowadays, 'Sweet amnesia. Here to free you. As the (memory) pages burn'. Take any of the song line and they will match the situation. All your trails, solved by (F|ire) does not mean, that I'm advertising/advocating Remobjects Fire IDE on the Mac. Metaphors ain't perfect. The books you written no longer exist. The future is in your pen. Ink to paper, now begin. That's about what very likely has to be done. once situation described occurred. (As The Pages Burn, Arch Enemy). Delphi is AdaRocks, think of safe array access and such things. That's a simple one. When I'm debugging Indy stuff for example the Environment is the ICAR-BIA-LB and the user is Fluffy (Packet). Intelligence Community AdaRocks - Bunnies Intelligence Agency - LitterBox is about hitting the fist breakpoint after having pressed F9 or waiting after having forgotten to remove calls requiring synchronization from the OnDisconnect Event Handler of the TCP Server. Debugging Packages is a job for Hoppy Package. That's just fun and techniques applied from the time of the 1960s movements to overcome censorship these days and nowadays in the E.U. as well as the AIs involved. In a tree by the brook there's a song bird show sings, .... 'Oh it makes me wonder'. That's an easy one, about Mrs. Sparrows EMB San Francisco Marketing. Fell free to find matching song lines that match the situation at the days when words had to meanings. Hint: It's about fire on one hand and an ape on the other, nowadays known as FMX -- Even if I may sound like Dirty Harry, guy you made my day. It seems that you are the one with machine gun and a finger on the trigger. My reply talked about both GUI centric development and creating GUI applications designed this way with the help of a designer. The origin of the comparison btw. Delphi an VB is a classification scheme of programming languages allowing to taget applications of a certain complexity. VB and Delphi were very close and Delphi allowed to address more complex applications these days. Delphi' strength was about having the source code at hand and no separation of those or no real need to separate both who built the components on one hand and use/apply it on the other. That never changed. Not saying that there is anything wrong with mid sized applications but there is still a history of C and C++ on Windows and Mac for example that dominates the vast majority of the developers and decision makers. Phpstorm for example was already great at the time of AI not even on the horizon and pretty useful in order to somehow get through other people's code originating from the times of PHP 4. That code analysis feature finally sealed it's success and nothing else, except from a few features introduced earlier that the competition did for professional developers who preferred Mac and Linux. Btw: Apps was the name of the folder for small applications and utilities under OS/2. Even that is nothing new. No doubt that Delphi as well as RAD Studio are still great. Just wanted to clarify. -
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
MichaelT replied to bravesofts's topic in Windows API
Yet another Microsoft frontend technology? Microsoft do have a capability to provide the technology, the tool chain, the tools and the IDE or their 'Community' does. The Delphi approach matters for mid-sized applications as result of Microsoft or Apple denying the necessity for dialog based applications in the 1990s, which have been covered by various web technologies later on. I doubt that it makes lots of sense to integrate another GUI technology in anything else but a development environment pretty similar to PyScripter. For different reasons the have always been small applications in a Win 3.x tradition (utilities with GUI) and the real big/complex ones. For the latter C/C++ setting up bigger teams paid. In both cases no one ever needed a GUI designer and for the first the shortcomings of MS GUI technologies concerning GUI in case of Visual C/C++ didn't hurt. VW was the solution for the dialog based applications and those were mid-sized. VB suffered from the OLE and/or early COM approach to let the business developers design the GUI and the business logic and the controls and such stuff should have been implemented in C/C++. Remember Microsoft touting the return to one development language and that was the C language and C++ later on. The golden opportunity these days arose wtih so called Y2k Bug and companies investing in replacing the IBM Mainframe/Host and the growing of the finance industry in the 1990s. The VCL approach is lean enough and still does it's job pretty well, but for most of us. For the last decade or longer developer face/experience a certain kind of meta programming, in a different sense but the original one, by JetBrains or special development environment aiming at a certain technology. PyCharm vs. Wing and 20 other alternatives. PyScripter shows in lists of the 10 top Python development environments, while the Wing IDE requires a top 20 list in order to show up. A few years ago, Wing was ranked number 2 or 3 and fell back year by year. If people want a Thonny on steroids there is nothing EMB could do against. Have a look at VS Code or the new JetBrains IDEs. Since the shift to this century we see strong trend into direction of 'terminal style' development combined with more sophisticated and specialized technological underlying. So we can just say, GUI driven development found it's place, but has been a tiny rabbit-shit on the long time-line in which GUI focused programming in addition had it's decade in the 1990s. Third-party does not mean, not being in the position to implement your own widget-set, it means that writing ones own widget set is simply to expensive in a sense of time consuming. Even in case of WPF the controls shipped can be regarded as a sound proof of concept of the underlying technology. The idea of 'the GUI technology' is a very Microsoftish thing. To mimic the GUI is by far an/the approach enjoying broader acceptance on even on a mid-term already. ... Heavy rings on fingers wave Another star denies the grave See the nowhere crowd, cry the nowhere cheers of honor Like twisted vines that grow Hide and swallow mansions whole Dim the light of an already faded primadonna (Metallica, The Memory Remains) Love the title of the song :) Beside all your valid thoughts and arguments from a technical perspective, let's say it that way, 'If you are still developing VB-style at the age of 30, you must have done something wrong and using RAD Studio for that changes nothing concerning this remark' - not talking about you. -
xaml island Ask if Embarcadero will integrate UWP & WinUI in comming Version of Radstudio
MichaelT replied to bravesofts's topic in Windows API
xHarbour Builder Rulez:) -
Allow me to redefine your question and give the answer. There is noch such thing as a multi user enabled Personal Oracle 8, the one with the traffic lights shipped in the 1990s. From a technical perspective the most close candidate would be the Mimer DB or SQL Server as well as Firebird or Interbase. No idea if Apollo, NexusDB or Elevate DB and such things remein as an applicable choices for you, but I doubt in a first place. MaxDB/SAP DB from SAP would have been a pretty similar choice, just for the records and to a certain extent DB2 for the records as well. I'm assuming that you are using Delphi as the development tool of choice, otherwise you wouldn't ask here. I'd go for PostgreSQL, because PostgreSQL does away with many glitches of the Oracle PL/SQL Language and handling it's own history concerning programming. There exist already too many flavors of 8i style programming, 9i, 10i, 11i style and so on. I think such a makeshift/provisional solution can last long. There is no need to mimic the stored procedure language while debugging. I have chosen for Firebird or Maria DB but I personally don't put business logic into the DB anymore, even if I think it's not a bad practice at all and a pretty flexible approach still. In the end it's about having the information model constraints and extended business logic in one place and a consistent backup.
-
Errors or unexpected behavior described in this thread on the quality portal are different or do origin from different sources. There are issues that do not originate from a crashing LSP but complex code file. For example missing values in the code completion box happen but continues to work with other symbols. Switching to target platform 64-bit helps with this early LSP. Save the project and reopen. I use Delphi 10.4.1 on Win 8.1 still. That's (very) likely the LSP you talk about. Once you switched the Code Insight Manager the least thing you need to is to restart the IDE and I do have the strong impression that for some reasons saving the files to disk does help. Maybe you have to recreate the project file. I did have the Impression that also files in the memory buffer of the IDE/Editor are not treated correctly all the time. Such things are hard to reproduce. You don't need to activate the menu entry, but make sure that the assemblies responsible for the refactoring feature are registered correctly. I don't see a direct relation, but things improved in general once this action was taken. It's also possible that orphaned directory entries in the search path do play a role. I didn't bother that much investigating in the very detail. Starting the IDE, creating an empty project, saving the project, adding a few lines of code should work at least. If that fails, the problem is not the LSP in general. Switching the Code Insight Manager on the fly doesn't work, even if the IDE leaves such an impression in a first place. Things get more evil if switching the Code Insight Manger is switched on the fly while a project is opened. I personally don't have things like Error Insight enabled or the Code Folding feature for example and I don't have many files open and their length is pretty limited. I don't use sophisticated language features like generics for example (extensively). I don't want to say that a coding style from the time when Irene Cara had a hit with Fame, but I personally use Delphi or Object Pascal in general in little more sophisticated 1990's style. This does not mean that I write VB style event handlers, but I ran into troubles using 21st century style coding, Analyzing source code in files is a lot harder than navigating symbols extracted. All this 'Do it like Java' or 'Do it like C#/.net' things are way top much. If I want to do things that way I use Java or C#/.net. For extensive searches I use PowerGrep, since I scan various files that make up the whole project eg. SQL scripts and or Python files too and symbols that belong together use similar names and follow naming patterns. No idea why but LSP problems started to disappear and my Tools menu entry 'Restart LSP', a suggestion by Uwe, is rarely used today. I also don't have the structure panel open, so the Error Insight feature can stay turned of most of the time.
-
Think of errors retrieved from an external source mapped to Delphi exceptions in case of Oracle or SAP via Connect For SAP (formerly SAPx) for example. The abuse of exceptions to hint at errors in the business logic is no good idea at all. I can remember applications in the 1990s (Delphi flower power area) that were designed to hint at business logic errors via NIL pointer exception or better said EAccessViolations which show up calling virtual methods in Smalltalk 'Message Not Understood' style. I can live with retrieving error numbers raised and additional information gathered on the source system via Delphi exceptions and if people like they can include call stacks from the application. In a 24*7 server side environment an error raised at night and the applications has to continue working unattended (service, servers-side application, ...) errors mentioned are exceptional. Agreed. Even such exceptions have to be fixed as soon as possible and logged on both sides.
-
Shift + F2 makes the IDE focus on the Object Inspector and puts a property selected in a certain kind of edit mode. No idea if that feature is a useful one in practice or required, welcome, widely used or whatsoever, since I never came across this keyboard shortcut before.
-
Did you have IDE Fixpack 2007 or any other helpful extension/add-on installed before that made problems go away?
-
The whole MS Microsoft ECO-System gained it's competitive advantage by off-shoring to Russia in the 1990s at the time of Y2K (in comparison to IBM). It has always been about (big) Enterprise(s) and nothing else. Afterwards there have been several economic development programs in the U.S. aiming at moving companies to the West in a legal sense at least (subsidies for founding companies). It's more or less a copy of the British off-shoring (deindustrialization of England in the 1970s) idea. As far as business is concerned no change with Russia so far. If you think of the prime minister of Estonia, she's touting extreme Anti-Russian propaganda on one hand and her husband still does extensive business with Russian companies on the other still. A second reason was a gain in reputation by setting up the company in the U.S. and within the U.S. in the state with the most restrictive terms and laws concerning business (SQL Detective & Co for example). The one who setup the business portion is a former director of Oracle Marketing manger from Austria and 'friend', a big word, of mine. The economy of Russia in contrary to the E.U. is far more liberal and younger, so it's no surprise that one-man shows and smaller companies have a fair chance to succeed. When we grew up in Austria during the so called steel-crisis in the mid 1980s the situation was not that bad as in Russia in the 1990s but from the perspective of the material flow the Germans put their goods into their shelves setup up here (Aldi/Hofer). At the peak of this evolution we had three kind of shops for food. Discounters, luxury stores and market stands at the backyard of the parts in the city populated by the Turkish community offering the best fruits and vegetables one could grab. Pretty much the same happend to the vast majority third-party vendors after 10 years as far as Delphi was concerned. Things don't work out this way, such transition things happen in a well organized manner in order not to run into shortages. Local products disappear for about 10 to 15 years from the Business to Customer part of an classic industrial consumption society an move into B2B, especially when evolving from non-industrial lines to industrial ones (carpenter vs. . Another trick in Austria was to invest free business and the matching licenses and everyone with money on the savings account could get one and access the product from B2B. Follow the model and introduce exceptions (to the rules) whenever applicable. In the meanwhile some carpenters turned their small companies into furniture factories (more automation, machines instead of heavy tools) and tourism as well as the business with Russia was the supporting driver of this evolution. What was needed, was a higher price level. A third tendency was to cut off the growing dominance of shops from Russia (in a sense of protection) on the Huge Java stacks for example in middle of the first decade after Millennium shift.
-
What do you think of "Local Global variables"
MichaelT replied to Tommi Prami's topic in RTL and Delphi Object Pascal
That language 'feature' is a useful relic. A file in the context of the 'C' or 'Pascal' world is a compilation unit and a module is defined at a different level of abstraction. The keyword unit is about compilation units. Modula introduced modules. That's more or less the 'Host world' & Friends, no compilers or what we call a compiler today. These systems loaded a module for example into an execution context/process and the code run and/or were interpreted under the control of the executing system. A PC application or an program on home computers is controlled by a minimalistic runtime and utilizes the OS way more actively. Modules can have parameters. Have a look at PL/SQL. If you think of MTS or COM and apartments, said sloppy, it's about putting those old machines to the Windows PC. There is good reason for having interfaces and functions/procedures there and not classes in general. This COM and COM+ world is a mixture of IBM-host and DEC computers I think (appartments and friends). In remote scenarios a parameterized module does it's job pretty well (Oberon - Modula successor). On way to mimic modules are those kind of procedures. Object orientation also means modularization and a class is usually responsible fot this. In the context of above an object is a loaded module ready to execute and the application is already a 'host' computer and with a GUI involved in a certain kind of 'single user' mode (kinda MS-DOS). With the help of threads or co-routines this single user application turns into a multi-user application but without a GUI on the server side. Another example would be package vs. package library. The library is simply a concatenation of complied compilation units and the package library goes beyond. In Delphi you still have compilation units in fashion of a module, for example initialization and finalization, module variables and so on, classes, and procedures acting as a module pretty similar to Pascal on 'host' computers. On the other hand people tried out different kind of ways to experiment with the visibility and accessibility of variables and recursion on the other hand. Some problems in theoretical computer science can be solved easier or more readable when stack a function call is read a different way from left to right, right to left or from the middle. In practice those cases are rare, but at the days of upcoming multi purpose languages there have been approaches to mimic the capabilities of domain languages focused on math problems and expressed in the U.S. style of function definitions (Haskel and other functional languages from the syntax perspective). In Europe we use another standard way of describing mathematical functions, different notations. Agreed, without ever having seen these old, in the 1990s most of this was already pretty old stuff just mentioned in our scripts at the university by the guys who invented PL/I at IBM, Mr. Rechenberg (Left Linear programming languages LL(1 aka Pascal for example), just on e symbol needed to decide what comes next) and his buddy at the university in Berlin who focused on LR aka. C, a guy from the Netherlands. The difference was that the LL compiler were hand crafted and the LR languages were those built with Lex and Yacc. The difference is not the grammar solely but the way the compilers are built. Later also C and especially C++ syntax and compilers were harmonized into a more left linear appearances (2 pass no longer required or as substantial as before - from necessity to feature). I hope I crumbled this very past knowledge together correctly. I never built a compiler, we built Pascal interpreters or better said Modula Interprets aka. Mini-Modula later replaced by Mini-Java interpreters with the focus on recursive decent parsers. -
ActionList Editor: New Standard Action...
MichaelT replied to PeterPanettone's topic in General Help
On 1) LOL. I was not aware of this fact, since I don't use third party controls that add actions. I see the advantage. Maybe they have/had no other alternative left, because caching means listening and updating. No doubt that such a delay sucks and EMB has to fix the issue urgently (without delay) and make the whole thing fast. Showing hour glasses is nice, but in that case I'd guess, if possible to implement a speed up is required. The situation is not just cumbersome for you and your daily work, nowadays such thing are just annoying. Putting the blame on EMB solely doesn't make sense, since those who add such actions have to take care that the Delphi IDE stays responsive. If the dialog broke afterwards, we'll see. Agreed. It's been a hot discussion these days, a storm in the tea cup, because of the no coding touring of marketing and speed up in development. Karma is returning. In fact I just wanted to let you know to lower expectations and the outcome of the discussion these days. Question? Does the problem show up in actions manager too? Looks like the same dialog is used. -
ActionList Editor: New Standard Action...
MichaelT replied to PeterPanettone's topic in General Help
Cat lover? Feel free to cuddle a bunny of your choice, but in the end bunnies are bunnies with all their very specific lumps and 'd'umps 🐇 As far as I have read you already recognized that the problem with the default actions in the RAD Studio IDE cannot be solved in Visual Studio for example. So it's wise to file in a QC report or as Uwe calls it a QP report and please consider that a new portal has been set up by EMB formerly known as EMBT, but for a while now the technology went ashtray to a certain but in the end minor degree than expected. I didn't come across this issue in the past and thank you for posting your experience. Since take it or leave it is the new normal almost everywhere or better said take things the way they are and leave'em that way, simply don't use the default actions as long as the fix is not considered and/or implemented. I have no idea if it's possible to separate actions into separate BPLs, If I remember correctly that topic or a similar related to actions is not totally new. At least there as something in the past with 'too' many actions too and the outcome as not to use the default action list. I don't recall if that topic came up at TMS. The result of the discussion simply was that people using component set XYZ should use the Action Manager provided and in case of the Action Manager (dialog) provided don't use the feature you are talking about. -
So you are looking for a certain kind of poor man's PrintDAT! in order to provide list-reporting, list-printing or formatted list-printing. The situation is similar to poor man's partitioning on Oracle. It works well, but it's work and to a certain degree more in both cases. Take the data from the dataset, use the TPrinter's canvas in order to format the document, print the result to a PDF printer installed into the OS for example. I'd not bother with 'arguments' /thoughts like 'What if there is no such printer installed'. A computer cannot boot to no OS installed, so a program can fairly print to no appropriate printer installed. - In case of designing real reports and passing data from a Delphi data source the story is a different one. Fast Report does integrate into Delphi and not the other way around. - Indeed I'm more infrastructure focused rather than a fan of application centric doing things, that can/should be done another way. An application should not handle the transfer of messages for example, it should just send it. It's just in the early beginning or in case no reliable (messaging) infrastructure can be found or set up. Users tend to get used to this situation. I mentioned messaging just because it's a prominent example or the most prominent one.
-
Yes. FireDAC definitely does and did from the very beginning.