-
Content Count
332 -
Joined
-
Last visited
-
Days Won
5
Everything posted by John Kouraklis
-
Hi people, I need to convert markdown text to HTML and vice versa. I tried to find a component or some code but was unable to locate any. There is a number of online converters and I was hoping they had API available but, again, I haven't found anything. So, what would help are 1. Delphi component---ideally FMX but on Windows is just fine for now 2. Cloud service with API (free mostly) 3. EXE files that I could run from within my app Does anyone have any suggestions? Thanks.
-
Conversion between Markdown and HTML
John Kouraklis replied to John Kouraklis's topic in General Help
Ah, thanks Alex. I will check. Do you also have a converter from HTML to MD? -
Conversion between Markdown and HTML
John Kouraklis replied to John Kouraklis's topic in General Help
Yes, that's right. I corrected the post. Thanks I will have a look at the link. -
Conversion between Markdown and HTML
John Kouraklis replied to John Kouraklis's topic in General Help
Hi, yes. I've seen this. I don't think it supports .md files and it is not free. -
Hi everyone, I'd like to ask for ideas on how to manage the following situation. I've got an app free for personal use. The corporate use is paid however and it adds some features but also allows the organisation to brand it (e.g., add a logo, color themes, etc.). What I find a heavy administrative task is how to manage the paid version. There are a couple of scenarios I am considering: 1. They send me their logo and I create org-specific binaries or installers. The downside is that I need to keep track of numerous editions and update files, etc. 2. They are able to unlock the app and load the logo and the theme. Then, they distribute it to their employees. A question here is how will they distribute the branded version. Do they need to repackage it in an installer? I also thought of having the exe or installer alter an embedded resource but doesn't sound a good idea to me. And, how will the updates be distributed? 3. I thought of setting up a website whether they upload their files and it produces the new installer. But this needs a proper build server in the background. Too complicated What do you think? There must be a simpler way, isn't there? Thanks
-
Thanks @corneliusdavid and @Vandrovnik Yes, this is a solution but it means that the app needs to enter the typical "corporate" IT world where the IT prepares an update and then distributes it to the employees Not at the moment. I have a built in theme manager but it is not included in this case. So, it's only about a logo and some additional functionality. I am also a bit torn between having one app with a license key that unlocks more features and having a separate build with IFDEFs. As mentioned in the initial post, I am also considering embedding the logo in an exe resource but I am sure I will need to produce a mac version in the near future. Is there something similar on macOS?
-
Should I free a sub-form or does its owner do that?
John Kouraklis replied to Tom F's topic in RTL and Delphi Object Pascal
As others have said, it's very safe. Just don't forger to free the form. I don't think so. Just create a blank project and test again. -
Sending Email via GMail Using OAuth 2.0 via Indy
John Kouraklis replied to Ugochukwu Mmaduekwe's topic in Indy
Guys, the official way to interact with GMAIL is via OAuth authentication and JSON. That's what the documentation says. The app password, 2FA or the IMAP settings are there but they depend on the user to allow and set up the parameters. -
Should I free a sub-form or does its owner do that?
John Kouraklis replied to Tom F's topic in RTL and Delphi Object Pascal
I would say it depends on the application and the platform. When on mobile platforms, I prefer to free AND NIL forms that are not used a lot given that memory is a limited resource -
RestEmail - is it possible not to have the web page upon token generation?
John Kouraklis replied to rudy999's topic in ICS - Internet Component Suite
I've spend a lot of time into OAuth authentication. I am not familiar with ICS components but normally when you need to interact with an OAuth service the process would be the following: 1. If you have an access token, then attempt the request 2. If it fails due to authorisation, then use the refresh token to update the access token 3. if this fails, then a new refresh token is needed and the user needs to repeat the whole process You can avoid all these attempts if you check programmatically whether an access token has expired before any opartion Most of the components I am aware of, refresh the tokens automatically until they reach #3 where they launch the browser. What I find annoying here is that this behaviour with the browser is automated and disturbs the normal operations of an application -
Hi everyone, I've got a visual component with a property which refers to an image list. In IDE, the component is installed without any problems but when I run the app, I get the error that the property does not exist. Obviously, the property is published and it exists in the dfm file. Every time I change the source code of the component I Uninstall/reinstall the package to avoid conflicts. How can I debug this? Any idea anyone? I thought of serialiazing/deserializing the component in code to test but this may not be that useful. Any ideas anyone? In any case, thanks and happy new year and Merry Christmas to everyone.
-
EReadError "Property does not exist"
John Kouraklis replied to John Kouraklis's topic in Delphi IDE and APIs
Hi, I found what the problem was. There was a path in the library pointing to another version of the component. I must have spent 4-5 hours today on this Thanks -
EReadError "Property does not exist"
John Kouraklis replied to John Kouraklis's topic in Delphi IDE and APIs
I cleaned and deleted all the packages but still no luck. I am really stuck... -
How to iterate a TDictionary using RTTI and TValue
John Kouraklis posted a topic in Delphi IDE and APIs
Hi, I've got a class and it has a property TDictionary<..,..>. I want to use RTTI to access the key and value of the dictionary. I am able to get the property but I can't figure out how to access the key and values. I use this approach: var genericDictionary: TDictionary<TKey, TValue>; propValue: TValue; ... propvalue.ExtractRawDataNoCopy(@genericDictionary); ---> Here I can see in the debugger that genericDictionary has the items and the correct count Then, I get AV when I try to iterate the Keys because TKey is an abstract class. Anyone can help? Thanks -
I don't think when EMBA bought the very first version of FMX mobile OSs where that dominant as they are today. I feel they were mostly trying to enter macOS world
-
Hi, I've got an app that launches a few threads. Each thread does different things but they all write in the same log file. Some threads check the internet too. Everything works well in the normal course of the application. The problem I have is when the user tries to shut down the app. What happens is that those threads that are attempting a web query or are writing in the log file raise an AV complaining that another process is attempting to write the log file. The writing process to log file is thread-safe for sure. Then, I created a global var to indicate the background running tasks. I use Atomic Inc/Dec to change the value and in FormCloseQuery I am waiting for the value to get to zero before the form is allowed to close. But the problem with the log file still appears. What's the strategy to shut down a multi-thread app? I also contemplated the idea of having another global var to indicate that the app is shutting down and then exit from the threads but this will pollute the code and it does not feel right.
-
@Kas Ob.Thanks for the detailed example. I have a class that manages all the thread so it was easy to keep track of TEvent for each threads as they are not scattered everywhere in the code. I haven't looked at the ability to cancel the thread yet. I think @Vincent Parrett's approach looks interesting
-
I tried NQS for a while. The UI is very confusing to me. It is 80s but I don't mind that much; what I don't get is how you load the projects and profile them. Even when you launch it from inside Delphi, it doesn't work smoothly. I found it very cumbersome. The only other reliable and affordable solution I found is ProDelphi. I haven't tried the x64 version but the x32 works nicely. The only downside is that it alters the source code during what they call instrumentation. But it cleans the sources after that perfectly. And they are very responsive with support.
-
I use just a boolean flag but this seems more flexible and proper. I'll try it. Thanks
-
Thanks for the suggestions. I created an array of TEvents and each event is passed to each thread. Then the TEvent.WaitFor...... method seems to do the job perfectly well.
-
Unless you have only Win apps and things like Win utils, FMX or more correctly cross-platform is the only way to go. The landscape in the market is vastly and rapidly changing and more platforms appear every other day. Unless you are an established large company, you can not afford to miss the opportunity of jumping into new markets quickly and with limited resources. We should not judge FMX's state and value based on what DevExpress says. I think their decision is more of a business one rather than a technical. Their clients are VCL develops and to me it is not a surprise that not many of them have adopted FMX. In fact, it is surprising they concluded there is no market for them. To me it seems very short-sighted understanding of the market. I am sure if they insisted, in 2-3 years their evaluation would be different. And I am also pretty sure when they started with the VCL suite, they had to iron out bugs, etc. But back then they were not the company they are now. Having said this, I have to mention here that I am not pleased with the way EMBA sees FMX either. I understand that most of Delphi clients are largely VLC developers. On the other hand, EMBA promotes Delphi as the one code base cross platform dev tool and yet they mostly focus on the introduction of new VLC products. This is a mess with their strategic priorities and every time I attend the webinars for new releases, I am disappointed to see they continue with the same approach. For example, they introduced a new TNumberBox---why is this not a FMX and VLC compoent? or the Control list?
-
Blogged : Advice for Delphi library authors
John Kouraklis replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
Pascal Analyser is more thorough I think -
Blogged : Advice for Delphi library authors
John Kouraklis replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
Sometimes I am speechless when I hear the way some people in EMBA respond to questions. They have a degree of naivety that makes you think they are talking about a product from another company😏 -
How about 10.4.0?
-
Yes, but the DCUs between 10.4.0 and 10.4.1 are not