Leaderboard
Popular Content
Showing content with the highest reputation on 03/04/19 in all areas
-
The GExperts Grep Search expert has various options to tell it which files to search: The current file All files in project All files in project group A directory list (separated by semicolon) That sounds like an exhaustive list, but it isn’t. Both, project and project group, were only searching files explicitly listed in the project(s). Files that were linked into the project using the search path, were not searched. Until now, that is: There is now an option to use the MAP file instead of the DPR file for project search. https://blog.dummzeuch.de/2019/03/03/gexperts-grep-can-use-the-map-file/
-
Google API access with OAuth 2.0 authorization for web server applications
mjustin posted a topic in Delphi Third-Party
The develop branch of the Daraja HTTP Framework includes a new tutorial with the full source code for a web server application which implements OAuth 2.0 authorization to access Google APIs. The example calls the Google Drive API to display the result of a ‘files’ request, which contains the files on the My Drive page of the user account in JSON format. Requirements: * Google account (with access to the developer console) * a Google API project with an OAuth 2.0 client ID * the client_secret.json file with the project configuration * OpenSSL DLLs * Lazarus 2.0 or Delphi 2009+ * SuperObject (for Delphi) More information: Google API access with OAuth 2.0 authorization for Daraja HTTP Server Applications (full source code) About Daraja HTTP Framework: * GitHub: https://github.com/michaelJustin/daraja-framework * Wiki: https://github.com/michaelJustin/daraja-framework/wiki * API Docs: http://michaeljustin.github.io/daraja-framework/ Happy coding, Michael Justin-
- oauth 2.0
- google api
-
(and 1 more)
Tagged with:
-
Simple answer NO. The IDE Fix pack fixes only the IDE
-
TIdSSLIOHandlerSocketOpenSSL and TLS 1.3 ?
Angus Robertson replied to Lars Fosdal's topic in Network, Cloud and Web
ICS implemented OpenSSL 1.1.1 last year, initially for draft versions of TLSv1.3, then the final version. There are comments in the ICS SSL units about the major changes needed to support 1.1.0 and 1.1.1, and ICS applications support for three major OpenSSL versions, one of which is chosen during initiatisation. Now looking at OpenSSL 3 (or maybe 4) due out later this year, they say before support ceases for OpenSSL 1.0.2 at the end of the year. Angus -
Well, let's do the math!
-
Hands-On Design Patterns with Delphi
Primož Gabrijelčič posted a topic in Tips / Blogs / Tutorials / Videos
Original post: https://www.thedelphigeek.com/2019/02/design-patterns-with-delphi-book.html Hurrah, hurray, my third book is here! It’s called Hands-On Design Patterns with Delphi and (just like my first book) I wrote it for Packt Publishing. (The second book was self-published and I expect the fourth one to be, too.) As the name says, “Design Patterns with Delphi” deals with design patterns. It is a bit different from most of design pattern books and websites you will find on the Internet. Case in point A: There are no UML diagrams. I don‘t speak UML. Tried to learn it few times but for some reason the whole concept doesn‘t agree with me. If you like diagrams, don’t fear though. Any book on design patterns - and most websites covering that topic - will gladly show how any design pattern can be diagrammed. That, however, is not important and should not govern your decision to buy the book. More important is case in point B: This book speaks Delphi. All the examples are written in Delphi and language features are used to the full. I also covered few less known Delphi idioms in separate sections. You’ll still be able to follow the discussion even though you may program in a different Pascal dialect. There’s also case in point 😄 Examples make sense. I deeply dislike classical design pattern examples of the “And then we want to write this program for different toolkits and it should also be able to draw circles, not only squares” kind. Euch! I tried to find a good example for each design pattern. Admittedly, I ended with few examples that draw triangles and squares on screen (mostly because some patterns were designed specifically for solving such problems), but most of them are of a more practical nature. This book covers all three classical design pattern categories - Creational patterns, Structural patterns, and Behavioral patterns. It also discusses patterns from the newer Concurrency patterns category. At the end I threw in some borderline-pattern(ish) topics and ended with a discussion of few patterns that cannot be strictly classified as “design” patterns. In this book you’ll find: Chapter 1 An introduction to patterns. Exploration of design principles, design patterns, and idioms. A mention of anti-patterns. A short description of most important design principles. Delphi idioms: creating and destroying objects. Chapter 2 Creation patterns part 1. Singleton. Dependency injection. Lazy initialization. Object pool. Chapter 3 Creation patterns part 2. Factory method, Abstract factory, Prototype, Builder. Delphi idioms: Assign and AssignTo. Chapter 4 Structural patterns part 1. Composite. Flyweight. Marker interface. Bridge. Delphi idioms: comparers and hashers. Chapter 5 Structure patterns part 2. Adapter. Proxy. Decorator. Facade. Delphi idioms: replacing components in runtime. Also: helpers. Chapter 6 Behavioral patterns part 1. Null object. Template method. Command. State. Chapter 7 Behavioral patterns part 2. Iterator. Visitor. Observer. Memento. Delphi idioms: for .. in. Chapter 8 Concurrency patterns part 1. Locking. Lock striping. Double-checked locking. Optimistic locking. Readers-writers lock. Delphi idioms: tasks and threads. Also: bitwise operators. Chapter 9 Concurrency patterns part 2. Thread pool. Messaging. Future. Pipeline. Chapter 10 Writing Delphi programs. Event-driven programming. Actions. LiveBindings. Form inheritance. Frames. Data modules. Chapter 11 Wrapping it up. Exceptions. Debugging. Functional programming. I hope you will like this book and learn a lot from it. I know I did during the nine months I spent writing it. And if you find any bug in the code, let me know so I can correct it in the second release! -
What is meant as 'implementation detail' vs 'non-implementation detail'?
David Schwartz replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
your explanation is even implementation-dependent! 🙂 I think you're missing the point. It's not about the means used to access something. If you have a variable "fabc : integer" and somewhere you want to display it as a text value, fabc.ToString depends on you KNOWING that fabc IS declared as an Integer, right? That's what meant by "implementation details". There's no method being used here! The GOAL is a solution where you do NOT KNOW HOW IT'S IMPLEMENTED. Is it an integer? A string? A float? A date? A means of querying a database? Something that sends a request to a SOAP or REST API to get a result back? The point is, when you need that value in whatever format, you get it in that format, without having to KNOW how it's actually implemented. There are some terms, "getter / setter" or "accessor / mutator" that refer to methods used to get and set values without regard to how they're implemented. In Design Pattern terms, I believe these are called Adapters. Meaning, you use an Adapter pattern to adapt one thing to another. No matter HOW fabc is defined within the class, you can be sure that a method like function GetABC : string; will ALWAYS return the contents of fabc as a string, regardless of how fabc is actually declared. And regardless of whether fabc is private, protected, public, or published. This also goes under the more generic topic of "encapsulation" regarding object-oriented programming. -
Unreliable connection to remote MS SQL Server database
Attila Kovacs replied to Martyn Spencer's topic in Databases
I'd also check the host os's event viewer. It could be also a licensing issue. -
Delphi inline and function evaluation
David Heffernan replied to Mahdi Safsafi's topic in Tips / Blogs / Tutorials / Videos
Somewhat ironic that the output that performs worse is the one that you found impressive. -
GExperts fails to load after upgrading Rio from 10.3 to 10.3.1
dummzeuch replied to luebbe's topic in GExperts
fixed today in revision #2576 -
Trying to install ICS 858 on C++ Builder Rio 10.3.1
alank2 replied to alank2's topic in ICS - Internet Component Suite
Hi Angus, I would appeal that you leave the old C++ files if you can. I will edit all of them to make the changes above and submit them to you via email on Monday or Tuesday. Thanks! Alan -
What is meant as 'implementation detail' vs 'non-implementation detail'?
Rudy Velthuis replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
On the contrary: it is not preferred not to rely on implementation details. Implementation details are things you know about how a piece of software currently works, but which are not documented (although sometimes they are) and/or which may change in later versions. Do not rely on such details. Rather rely on public interfaces and documented traits of the software. The latter of your examples is an implementation detail, i.e. that internally, the virtual tree uses Node.States. It may one day have a different way to denote that a node is expanded. -
What is meant as 'implementation detail' vs 'non-implementation detail'?
David Heffernan replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
When facing terminology that you don't recognise I cannot recommend the use of websearch highly enough. https://enterprisecraftsmanship.com/2016/07/27/what-is-an-implementation-detail/ https://stackoverflow.com/questions/1777719/what-is-the-definition-of-an-implementation-detail And no, it's the second excerpt that relies on leaking implementation details, which is why it should not be used. -
What's new HCL/Core Added support for TVirtualImageList Improved rendeing of images and text (align to pixel) HtPanel: added AllowScaling property. SVG: added support for "use" element. Added support for external SVG images Improved RTL support Automatic detection of RTL blocks Virtual image source for image lists on other forms, f.e. src="_forms/DataModule1/ImageList2/5" Improved emoji symbols support for VCL and FMX. Improved resize hint Added TCSSStyleSheet.GetAllClasses/GetAllIds Improved SVG rendering Added OnElementEnter/Exit event for HtPanel Added THtDocument.LoadfromStream Added THtDocument.ElementsFromPoint method returning all elements located at specified point. Empty attributes with no value now preserves their format Added support for ForeignObject tag which allows use of HTML blocks inside SVG. FMX: improved text baseline calculation Scripter: added support for list of values in case statement: case a of 1,2,3: Editor Fast Report component with visual editor and page split support (included in bundle). https://www.youtube.com/watch?v=DNAK_KR8fB0 https://delphihtmlcomponents.com/fastreport2.gif Added TDBHTMLEditor.UseOuterHTML property Added TDBHTMLEditor.NewDocumentTemplate Editor:Column widths are not preserved when copy/paste part of a table SQL Optimized schema loading queries for Oracle. Added TSQLSelectQuery.ChangeRowLimit class function. Added TSQLSelectQuery.AddJoin function https://delphihtmlcomponents.com
-
TIdSSLIOHandlerSocketOpenSSL and TLS 1.3 ?
Allen@Grijjy replied to Lars Fosdal's topic in Network, Cloud and Web
Some thoughts on OpenSsl 1.1.1....We recently finished porting the OpenSsl 1.1.1a headers to Delphi for all platforms (Windows, macOS, Android, iOS and Linux, 32 and 64-bit where appropriate) and may write an article for our grijjy blog on that sometime soon. The challenge is building in a way that works for each Delphi platform, which we also did in the process. Deploying OpenSsl with your app in a way that is uniform for all platforms but does not interfere with legacy OpenSsl that is sometimes part of the OS is also a challenge. The libraries for LibSsl and LibCrypto often cause dynamic linking issues on POSIX platforms when they attempt to reference one another. We solved this with some creative linking that is platform specific. Also it isn't wired into Indy, because we don't use Indy internally, but it shouldn't be too hard (for someone else to do). The other challenge is TLS 1.3 isn't really completely working in OpenSsl 1.1.1 and has a few outstanding issues. You probably don't want to use TLS 1.3 at this time. -
Solution(s) for coder with quite poor eyesight
Dalija Prasnikar replied to Tommi Prami's topic in Delphi IDE and APIs
Pretty good, but not ideal. -
Trying to install ICS 858 on C++ Builder Rio 10.3.1
Angus Robertson replied to alank2's topic in ICS - Internet Component Suite
Because ICS is entirely supported by volunteers, and none of us understand C++. It would be far easier to cease support for C++. I've asked for assistance in producing C++ packages in the past, and one user kindly supplied some mostly working stuff, for 10.2 which I modified for 10.3, so renaming errors are mine. But when I can not build the packages and no-one else helps, errors are inevitable. So will some-one please email me a complete working set of 10.3 C++ package files, with whatevery changes are needed for the readme, and they will be placed in the distribution. I'm not going to work from a list of instructions I can not test. Angus -
Trying to install ICS 858 on C++ Builder Rio 10.3.1
Angus Robertson replied to alank2's topic in ICS - Internet Component Suite
Sorry, been busy doing too many other things this week. When I add new units to ICS, I have to update literally hundreds of package files for all the old Delphi versions we support. A few I might fire up that version of that Delphi, but it takes days to do that for all old versions so mostly it's a text editor job. But currently the old C++ packages are untouched, and I suspect they will no longer build anyway, at least not without lots of errors. So I'll remove all old C++ files from the distribution, and going forward we'll just support 10.2 and later. If someone needs support for C++ XEx, they will be better working from a newer version than an older version. My email address is in the readme8.txt file. Angus