Jump to content

John Kouraklis

  • Content Count

  • Joined

  • Last visited

  • Days Won


John Kouraklis last won the day on January 10

John Kouraklis had the most liked content!

Community Reputation

72 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. John Kouraklis

    Client Library for FusionAuth?

    Hi @Dan Moore, I ended up writing my own. It does not provide full cover of the API; I only added the calls I needed. I can share it with the community but need to clear it up a bit as at the moment it uses some proprietary code. I only used it for simplicity but it can be replaces with open source. Thanks John
  2. John Kouraklis

    Drag and Drop Component Suite for Delphi 10.4 Sydney

    Interesting...I am going to have a look at it. Sadly it does not support FMX apps
  3. John Kouraklis

    Hints and ShowHint

    @Anders Melander Are you sure ShowHint is inherited from the parent control? Shouldn't it respect the HitTest property?
  4. John Kouraklis

    Your RAD Studio 10.4 Sydney issues

    Yesterday, I got a new one: "The LSP is not running...Attempting to launch it again" or something like this. LSP never came back. I had to restart the IDE
  5. John Kouraklis

    Your RAD Studio 10.4 Sydney issues

    LSP form works...when it works What annoys me is that you first need to save a file before LSP is able to locate the changes--and this may not be what you always want. In all the videos EMBA presented and demonstrated LSP, they used units from the libraries. They never played live in the sense to add variables or procedures and then fire up LSP. In other versions I had CodeInsightPlus by DevJet which is an amazing product. Maybe they should have considered to buy it.
  6. John Kouraklis

    IDE Fix Pack 6.5 dev-snapshot 2020-05-17

    @jbg Thanks for the amazing work (as always) May I ask if you can add something in the compilation windows? I think having the Platform and the output directory would be very useful
  7. John Kouraklis

    Difference between Pred and -1

    @Mike Torrettinni Hahaha...yes...my bad 😋
  8. John Kouraklis

    Difference between Pred and -1

    I also use for..in all the time. Don't forget though that in for loops you can not modify the iteration variable. So, if you have a TStringList, this code does not compile: for item in list do item:=item + '123'; In such cases, iterating through the items via index is the only option for num := 0 to list.Count - 1 do list[num]:=list[num] + '123';
  9. John Kouraklis

    Why does this code work when it shouldn't?

    I see. thanks
  10. Check this code: var forControl: Integer; forArrayDyn: array of Integer; begin SetLength(forArrayDyn, 10); for forControl := 1 to 10 do forArrayDyn[forControl - 1]:=forControl; for forControl := 0 to Length(forArrayDyn)-1 do begin SetLength(forArrayDyn, 3); Writeln(forArrayDyn[forControl]); end; end. In the second for loop, the size of the forArrayDyn changes from 10 to 3 and yet the for loop is able to access the elements above index 2. Given that for loops evaluate the initial and final values only once at the beginning of the loop, shouldn't this generate an AV? I understand that in memory there are still elements in positions where index >=3 but shouldn't the code break? The set length does affect the array because when I set a breakpoint I can see the change. Thanks!
  11. John Kouraklis

    Global StyleBook component

    You can also create a FormBase, add the stylebook and then inherit all other forms from this one.
  12. Hi people, I'd like some help about user management servers and how they are used in apps. This is a general question that applies to getting access to users either via Active Directory or FB contacts or Google contacts, etc. Say I have a connection to FB or to active Directory and people login in my app using FB or AD credentials. Now, all my users exist on FB or on AD In my app, users do stuff and therefore I need to keep some data as well. So, this means I need to replicate and keep a sunchronised copy of the user database. Is this how it should work? What's the common practice here? Thanks
  13. John Kouraklis

    How to iterate a TDictionary using RTTI and TValue

    Thanks Remy--Always good to learn
  14. John Kouraklis

    How to iterate a TDictionary using RTTI and TValue

    Remy, thanks for the explanation and for sharing your knowledge 👍. I admit that even if I had gone all the way down to retrieve the enumerators I would never have thought to Invoke them. I use 10.3.3 and the first instance of TKey in System.Generics.Collections is this: ------> This is line 748 (*$HPPEMIT END OPENNAMESPACE*) (*$HPPEMIT END ' template<typename TKey, typename TValue>'*) (*$HPPEMIT END ' inline __fastcall TPair__2<TKey, TValue>::TPair__2(const TKey AKey, const TValue AValue) :'*) (*$HPPEMIT END ' Key(AKey), Value(AValue)'*) (*$HPPEMIT END ' {}'*) (*$HPPEMIT END CLOSENAMESPACE*) [HPPGEN(HPPGenAttribute.mkNonPackage)] TPair<TKey,TValue> = record Key: TKey; Value: TValue; constructor Create(const AKey: TKey; const AValue: TValue); end; // Hash table using linear probing TDictionary<TKey,TValue> = class(TEnumerable<TPair<TKey,TValue>>) private type TItem = record HashCode: Integer; Key: TKey; Value: TValue; end; TItemArray = array of TItem;
  15. John Kouraklis

    How to iterate a TDictionary using RTTI and TValue

    @Remy Lebeau Wow....Amazing and complicated stuff. So I really need to drill down to the enumerator to get hold of the pairs. Thanks a lot for this!!! You mentioned that it might be unreliable to do this with generics. Do you think the app may crash for more complex dictionaries? Because it doesn't exist. For a dictionary, TKey and TValue are Generic parameters of the TDictionary class. They are not standalone concrete types, like you are thinking of. And out of curiosity, how does the compiler recognise TKey then? It must be from the HPPEMIT directive, right?