Edwin Yip
Members-
Content Count
432 -
Joined
-
Last visited
-
Days Won
3
Everything posted by Edwin Yip
-
New blog post: Leveraging ChatGPT to generate a Delphi class along with CRUD code from a table schema
Edwin Yip replied to Darian Miller's topic in Tips / Blogs / Tutorials / Videos
Wow... -
exception message : Error connecting with SSL. EOF was observed that violates the protocol.
Edwin Yip replied to david_navigator's topic in Indy
Thanks! Changing to `TIdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1_2;` fixed a "EIdOSSLConnectError: Error connecting with SSL. EOF was observed that violates the protocol " error for me too! -
I upgraded THunSpell (by Stefan Ascher) for unicode Delphi
Edwin Yip replied to Edwin Yip's topic in I made this
Sorry, I somehow the dll file was missing, now it is in the repository. -
Today I discovered a new FastCGI implementation for the Ngix web server in Delphi and think I'd share it with you: https://github.com/kylixfans/FastCGI PS, I didn't make this - it's by my fellow countryman, but I guess here is the best sub-forum to make such a post?
-
Well, I didn't exactly make this, but DelphiZip should be the most feature-rich open source zip component for Delphi, and since 2019 due to a health issue Russell Peters the previous maintainer has stop the maintenance. I fixed several minor issues for the library, but there is no place to submit my changes now (even delphizip.org is down), so I created a github repository and welcome anyone to contribute: https://github.com/edwinyzh/ZipMaster
-
Just an idea - wWithout breaking backward compatibility, It'll be great if the To Do List window has a "Created Date" column, so that one can track when the todo item was added.
-
This fork seems to be a bit updated: https://github.com/dshumko/WKE4Delphi
-
Hi, I wonder if anyone, especially @Alexander Sviridenkov can give me any advise as to solving the following ThtPanel (a control from delphihtmlcomponents.com) rendering issue (text overlapped) under win 10/11 (ok under win 7). - The screenshot of the issue is attached. - I'm using HCL 3.7 (not the latest, I know, but I'm afraid I need to solve this issue with this version at the moment). - The html code used: Trial Period's Expiring in 21 Day(s)<br />When in trial mode only <strong>20</strong> blabla.<br /><br /><a href="#buy">Buy MyProduct here</a><br /><br /><a href="#activate">Activate MyProduct</a> if you already have a license key - The `ThtPanel` object: var pnlMsg := THtPanel.Create(Self); pnlMsg.Parent := Self; pnlMsg.AlignWithMargins := True; pnlMsg.Hint := '[Ctrl + C] to copy the message to clipboard'; pnlMsg.Align := alClient; pnlMsg.Caption := 'pnlMsg'; pnlMsg.ParentBackground := False; pnlMsg.ParentColor := True; pnlMsg.ParentFont := False; pnlMsg.ParentShowHint := False; pnlMsg.PopupMenu := pmMsg; pnlMsg.ShowHint := True; pnlMsg.TabOrder := 1; pnlMsg.Styles.Clear; pnlMsg.Styles.Add('a {'); pnlMsg.Styles.Add(' color: #0088cc;'); pnlMsg.Styles.Add('}'); pnlMsg.TouchScroll := False; pnlMsg.VerticalScrollBar := hsbAuto; pnlMsg.HighlightTextColor := 0; pnlMsg.EnableSelection := True;
-
Text overlapped in Delphi Html Component Library
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
Oh I thought THtCanvasGDI is the default one...So I tried THtCanvasGDI has no issue. Question now: I assume changing `HtDefaultCanvasClass` only affects text rendering, but not other parts such as imaging rendering, is that correct? If so, I can use THtCanvasGDI to workaround the issue... Conclusion: With HCL 3.7 (not sure about the other versions), THtCanvasGP has text overlapping rendering issue, but both THtCanvasGDI and THtCanvasDX are OK. -
Text overlapped in Delphi Html Component Library
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
Thanks for the help Alexander. So I've just tried: - THtCanvasGDI: I assume this the default so it has the issue. - THtCanvasGP: Tried `HtDefaultCanvasClass := THtCanvasGP`, and it's the same issue. - THtCanvasDX: `HtDefaultCanvasClass := THtCanvasDX` solves the issue! And the html code is updated at runtime like this: `pnlMsg.HTML.Text := aHtmlCode` PS, I prefer `THtCanvasGDI` because the text rendering is the same as the system. -
Text overlapped in Delphi Html Component Library
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
Typo: In the attached screenshot, "I masked on this area..." should be "I masked only this area..." -
64bit RTL patches with Intel OneApi and TBB
Edwin Yip replied to RDP1974's topic in RTL and Delphi Object Pascal
Wow, that's a 10x improvement! Not sure how it affects the performance of framework like mORMot @Arnaud Bouchez :) -
Do you mean this commit: https://github.com/CPsoftBE/BackupOfCromis/commit/0323cf3dbd25587fae592701581b8241ff07cebf Strange, I couldn't see any file changes to the github repo...
-
Stack Overflow Developer Survey 2022 Results
Edwin Yip replied to Uwe Raabe's topic in Tips / Blogs / Tutorials / Videos
Delphi is #7 in the loved languages ranking -
Oh sorry, overlooked the MacOS requirement...
-
I use mORMot for this because calling a method or an interface in another process is just like calling a method/interface in the same process. And the communication protocol can be tcp/ip or named pipes. On process B you define and implement an interface: type ICalculator = interface(IInvokable) ['{9A60C8ED-CEB2-4E09-87D4-4A16F496E5FE}'] /// add two signed 32-bit integers function Add(n1,n2: integer): integer; end; TServiceCalculator = class(TInterfacedObject, ICalculator) public function Add(n1,n2: integer): integer; end; function TServiceCalculator.Add(n1, n2: integer): integer; begin result := n1+n2; end; And you expose it: Server.ServiceRegister(TServiceCalculator,[TypeInfo(ICalculator)],sicShared); On process A, you can now call the above interface served by process B: Client.ServiceRegister([TypeInfo(ICalculator)],sicShared); var I: ICalculator; begin I := Client.Service<ICalculator>; if I<>nil then result := I.Add(10,20); end; More details: https://synopse.info/files/html/Synopse mORMot Framework SAD 1.18.html#TITLE_415 Sample code: https://github.com/synopse/mORMot/tree/master/SQLite3/Samples/14 - Interface based services It's even simpler if you use the so-called "method-based service". Hope it helps.
-
It seems that the copilot rest API has been available...
-
Sounds cool!
-
Alexander's HCL is excellent and a set of gems, and definitely you can rely on it. Others I've successfully used in the past: https://github.com/ying32/htmlparser (open source, simple but does work depending on your needs). and DIHtmlParser (commercial, it's actually more of a tokenizer, but powerful)
-
HCView - an open source BSD-licensed Rich Edit Control in Delphi
Edwin Yip posted a topic in Delphi Third-Party
Another open source Delphi project worth spreading - a pure Delphi implementation of a rich text editor, like TRichEdit, in BSD license. But be aware - although the classes/methods/vars are well named in English, the comments and documents are in Chinese. So feel free to ignore it if you mind that. https://github.com/59079096/HCView-Pascal -
HCView - an open source BSD-licensed Rich Edit Control in Delphi
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
I did compiled and run the demo, but I didn't look any further, so I'm not sure about the performance of search, etc... -
HCView - an open source BSD-licensed Rich Edit Control in Delphi
Edwin Yip replied to Edwin Yip's topic in Delphi Third-Party
Thanks for the heads up, Mike. I removed the fb details from the link in my post, however, it seems that your quoted reply still contains the details :D -
Hi @laes, thanks for your efforts! In case you didn't know, the CN Pack Delphi extension provides some advanced syntax highlighting: http://www.cnpack.org/images/cnwizards.gif
-
- TZipMaster has a full set of features for writing/reading zip archives, most of the logics are implemented in Delphi, but it relies on a 300+KB DLL for the underlying operations. - TZipMaster supports both 64bit and 32bit Delphi compilers. - TZipMaster supports Zip64 (for zip files larger than 4GB). I edited the readme.md file
-
Yes, you have to write such code, and such code only works if the scrollbox has the focus.