Ian Branch
Members-
Content Count
1352 -
Joined
-
Last visited
-
Days Won
3
Everything posted by Ian Branch
-
Hi programmer2k, Yes it does, but you expect it there because you have set it as such. Yes, the IDE does the same thing but should it? I don't set the font in the IDE to 14 so I can print at 14, I set it so I can read it. Trying to work with a font size of 10 in the IDE on a 4k screen is just impossible for my tired olds eyes. π Yet font size 10 on print is perfectly readable. When I print, I need to be able to reduce the font to a manageable size for reading on the paper. Hence the request. Ian
-
Seems to have a redundant ')' after the =0..
-
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
-
Angus - Tks, d/load requested. Stephane - French, Spanish, same difference to me. I don't understand it. π Ian
-
No pressure, just asking.. When might Indy 11 surface?? Regards & TIA, Ian
-
Tks Remy, As I said, just curious. Regards, Ian
-
D11.2 - I don't get the error message but Delphi falls over.. π
-
Tks Mark-
-
Attempting to build rev 3943 under D11.2. Get the following.. Regards, Ian
-
Tks, all good now.
-
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
-
Check if database table string field is empty or NULL??
Ian Branch replied to Ian Branch's topic in General Help
Hi Stano, Doesn't that assume that the field is Null if empty? Ian -
Delphi beta testing a "premium" privilege?
Ian Branch replied to Brandon Staggs's topic in Tips / Blogs / Tutorials / Videos
Didn't even realize there was such a thing as a 'Premium Update Subscription'. π -
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
-
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
-
I suspect it does, it has a later version #. Maybe I will look at it once I get this little exercise over.
-
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
-
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.
-
No, I wasn't aware. Is there much involved in porting Lazarus/FreePascal to Delphi??
-
If I ever get it working.. π
-
I changed TVpDependentInfo(DependentList.Listο»Ώ^[I]).Component to TVpDependentInfo(DependentList.Items[I]).Component and it seems to like it. We'll see. Next issue..
-
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
-
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. π
-
[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;
-
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