Jump to content

Ian Branch

Members
  • Content Count

    1274
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Ian Branch

  1. Ian Branch

    English Version of GLibWMI??

    Thank you all for your inputs. Appreciated. In the short term I have gone with Angus' Magenta component. Having said that I am interested in learning how to call/use the winapi stuff. Is there a guide somewhere? I have looked at the MS information and it is like reading a different language. Regards & TIA, Ian
  2. Ian Branch

    English Version of GLibWMI??

    Angus - Tks, d/load requested. Stephane - French, Spanish, same difference to me. I don't understand it. πŸ™‚ Ian
  3. Ian Branch

    Indy 11 ??

    No pressure, just asking.. When might Indy 11 surface?? Regards & TIA, Ian
  4. Ian Branch

    Indy 11 ??

    Tks Remy, As I said, just curious. Regards, Ian
  5. Ian Branch

    Can anybody confirm, pls

    D11.2 - I don't get the error message but Delphi falls over.. 😞
  6. Ian Branch

    Close application during form create??

    Tks Mark-
  7. Ian Branch

    Error building rev 3943

    Attempting to build rev 3943 under D11.2. Get the following.. Regards, Ian
  8. Ian Branch

    Error building rev 3943

    Tks, all good now.
  9. Hi team, Given a database table field statement.. MyTable.Fieldbyname('MyField').AsString What is the best/most efficient way to test if it is empty or NULL?? IsNullOrEmpty(MyTable.Fieldbyname('MyField').AsString) But Delphi didn't like it. Regards & TIA, Ian
  10. Ian Branch

    Check if database table string field is empty or NULL??

    Hi Stano, Doesn't that assume that the field is Null if empty? Ian
  11. Didn't even realize there was such a thing as a 'Premium Update Subscription'. 😞
  12. Ian Branch

    Regex help please..

    Hi Team, Regex is one of those mysteries I have never fathomed. :-( I have the following code.. function ValidEmail(const EmailAddress: string): Boolean; const EMAIL_REGEX = '^((?>[a-zA-Z\d!#$%&''*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])' + '[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)' + '(?>\.?[a-zA-Z\d!#$%&''*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])' + '[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]' + '{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d))' + '{4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\' + '[\x01-\x7f])+)\])(?(angle)>)$'; begin Result := IsMatch(EmailAddress, EMAIL_REGEX); end; I don't recall exactly where I found it, apologies to the author, and it has served me well. It works well for single email address entries. How can it be modified so that it will parse multiple email addresses separated by a ';'? e.g. myemail@here.com;youremail@there.com.au With possible expansion to three or more email addresses in the future. I will be most grateful for any solution. Regards & TIA, Ian
  13. Ian Branch

    Turbopower Visual Planit??

    Hi Team, Has anybody brought TPVP into the 21st century? πŸ˜‰ I have downloaded it from SF and am trying to get it loaded under D11.2. Regards & TIA, Ian
  14. Ian Branch

    Turbopower Visual Planit??

    I suspect it does, it has a later version #. Maybe I will look at it once I get this little exercise over.
  15. Ian Branch

    Getters & Settters??

    Hi Team, I have only ever used a Getter/Setter construct once and that was just copying some code. It worked, but I didn't really understand what was going on and at the time urgency was priority. I now believe I have a use for Getters & Setters but don't understand what they are actually doing. Can some one point me to a plain English explanation of what Getters & Setters do and how they do it. Do I need both a Getter & a Setter for the functionality to work? Be gentle.. πŸ˜‰ Regards & TIA, Ian
  16. Ian Branch

    Turbopower Visual Planit??

    OK. I downloaded and had a look at the Lazarus implementation. I also had a look at various Lazarus/Delphi conversion guides. As I have the original almost working now I don't think I want to tackle the Lazarus/Delphi conversion.
  17. Ian Branch

    Turbopower Visual Planit??

    No, I wasn't aware. Is there much involved in porting Lazarus/FreePascal to Delphi??
  18. Ian Branch

    Turbopower Visual Planit??

    If I ever get it working.. πŸ™‚
  19. Ian Branch

    Turbopower Visual Planit??

    I changed TVpDependentInfo(DependentList.Listο»Ώ^[I]).Component to TVpDependentInfo(DependentList.Items[I]).Component and it seems to like it. We'll see. Next issue..
  20. Ian Branch

    Turbopower Visual Planit??

    Hi Guys, OK, got a pile of little issues sorted. Got this error.. "[dcc32 Error] VpBaseDS.pas(1232): E2017 Pointer type required" For this.. procedure TVpControlLink.ReleaseDependents; var I : Integer; begin for I := 0 to pred(DependentList.Count) do Detach(TVpDependentInfo(DependentList.List^[I]).Component); end; With the cursor sitting between the ^ and [. I suspect this is a Delphi language change issue. There are a number of these TVpDependentInfo(DependentList.List^[I]).Component related errors. TVDependantInfo is declared as.. TVpDependentInfo = class { Used by the ControlLink component } protected{private} FComponent: Pointer; FEventHandler: TVpControlNotifyEvent; public property Component: Pointer read FComponent write FComponent; property EventHandler: TVpControlNotifyEvent read FEventHandler write FEventHandler; end; DependentList is a TList. Ian
  21. Ian Branch

    Turbopower Visual Planit??

    OK. Tks. That sorted it. Not used to the idea of diving in to the core classes. All OK there Tks. Moving on to the next error. I should be able to resolve this one. πŸ™‚
  22. Ian Branch

    Turbopower Visual Planit??

    [dcc32 Error] VpXBase.pas(655): E2008 Incompatible types The procedure is derived from this.. {The TVpMemoryStream class is used to expose TMemoryStream's SetPointer method.} TVpMemoryStream = class(TMemoryStream) public procedure SetPointer(Ptr : Pointer; Size : Longint); end;
  23. Ian Branch

    Turbopower Visual Planit??

    I didn't want to get into the innards if it has already been sorted. Having said that, I am trying to build and install the .bpl under D11.2. I get an incompatible types error here.. {==TVpMemoryStream===================================================} procedure TVpMemoryStream.SetPointer(Ptr : Pointer; Size : Integer); begin Assert(not Assigned(Memory)); inherited; <<< end; I don't know/understand enough to know what to do here. Ian
  24. Ian Branch

    Getters & Settters??

    I got an email with a link.
  25. Ian Branch

    Getters & Settters??

    David, Thank you for your clear and helpful explanation. Appreciated. I have been looking in my Apps to see where/how the use of Properties can improve my code. I have found a couple of cases so far. Stano, Tks. I have downloaded the book. Regards, Ian
Γ—