Книги по Delphi / Delphi Books

Статус
В этой теме нельзя размещать новые ответы.

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Hands-On Design Patterns with Delphi
Author: Primož Gabrijelčič / February 2019
[SHOWTOGROUPS=4,19,20]
Handsupphp.png

Design patterns have proven to be the go-to solution for many common programming scenarios. This book focuses on design patterns applied to the Delphi language. The book will provide you with insights into the language and its capabilities of a runtime library.

You'll start by exploring a variety of design patterns and understanding them through real-world examples. This will entail a short explanation of the concept of design patterns and the original set of the 'Gang of Four' patterns, which will help you in structuring your designs efficiently. Next, you'll cover the most important 'anti-patterns' (essentially bad software development practices) to aid you in steering clear of problems during programming. You'll then learn about the eight most important patterns for each creational, structural, and behavioral type. After this, you'll be introduced to the concept of 'concurrency' patterns, which are design patterns specifically related to multithreading and parallel computation. These will enable you to develop and improve an interface between items and harmonize shared memories within threads. Toward the concluding chapters, you'll explore design patterns specific to program design and other categories of patterns that do not fall under the 'design' umbrella.

By the end of this book, you'll be able to address common design problems encountered while developing applications and feel confident while building scalable projects.

What You Will Learn
Gain insights into the concept of design patterns
Study modern programming techniques with Delphi
Keep up to date with the latest additions and program design techniques in Delphi
Get to grips with various modern multithreading approaches
Discover creational, structural, behavioral, and concurrent patterns.

Determine how to break a design problem down into its component parts

Table of Contents
1: INTRODUCTION TO PATTERNS
2: SINGLETON, DEPENDENCY INJECTION, LAZY INITIALIZATION, AND OBJECT POOL
3: FACTORY METHOD, ABSTRACT FACTORY, PROTOTYPE, AND BUILDER
4: COMPOSITE, FLYWEIGHT, MARKER INTERFACE, AND BRIDGE
5: ADAPTER, PROXY, DECORATOR, AND FACADE
6: NULLABLE VALUE, TEMPLATE METHOD, COMMAND, AND STATE
7: ITERATOR, VISITOR, OBSERVER, AND MEMENTO
8: LOCKING PATTERNS
9: THREAD POOL, MESSAGING, FUTURE AND PIPELINE
10: DESIGNING DELPHI PROGRAMS
11: OTHER KINDS OF PATTERNS
Book Details
ISBN 139781789343243
Paperback476 pages


14 servers: Для просмотра ссылки Войди или Зарегистрируйся
password: hands-on_design-patterns-delphi_pdf-code

[/SHOWTOGROUPS]
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Introduction to FMXLinux by Jim McKeeth
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Delphi Android 64-bit In-App-Purchase Fix
Marco Cantu - 19/12/2019
[SHOWTOGROUPS=4,19,20]
We have found a severe issue with the TInAppPurchase component on Android 64-bit and here is a workaround you can apply directly to your code.

After our release of RAD Studio 10.3.3, which includes for the first time Delphi Android 64-bit support, a few customers have reported issues with when recompiling applications that use the TInAppPurchase component. When these applications are compiled for 64-bit Android and runtime they raise an access violation.

You can see a couple of reports at Для просмотра ссылки Войди или Зарегистрируйся and Для просмотра ссылки Войди или Зарегистрируйся.

These reports were escalated yesterday by two different customers, and we had our team have a look. It turns out we missed one of the required steps for migration to 64-bit in that component, namely shifting a data type from Cardinal (same size on all platforms) to NativeUInt (which is platform specific). This is achieved by using the TFmxHandle type.

The workaround to address the issue is to make a copy of the FMX.Helpers.Android.pas file, part of the FMX sources (installed by default under C:\Program Files (x86)\Embarcadero\Studio\20.0\source\fmx), copy into the project folder, add it to the project, and change line 250 of that unit from

Код:
FTimerHandle: Cardinal;
to:
Код:
FTimerHandle: TFmxHandle;

You can see the code snippet in the image below. This addresses the problem (and we'll include the fix in the next release of RAD Studio).
2019_2D00_december_2D00_inapppurchase.png




Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.
[/SHOWTOGROUPS]
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Delphi RTL: Generic vs. Traditional Collections
Marco Cantu
- 20/12/2019
[SHOWTOGROUPS=4,19,20]
Since Delphi got generic types, in the 2009 version, its runtime library (RTL) has a generic collections unit. The RTL however, still has the classic collections. Recently I got some requests about which is recommended to use, and while the discussion can go a bit deeper, I wanted to blog a high level overview.

Classic Container Classes
The most basic collection class in the RTL is the TList class (in the System.Classes unit), which represents a general list of pointers (or object references). The container classes (in the System.Contnrs unit) includes the following:

TObjectList, which is a TList for TObject references and includes ownership support
TComponentList, which adds to the ownership also the notification support all components have
TClassList
TOrderedList
TStack and TQueue with TObjectStack and TObjectQueue
Various bucket lists
When you are using these containers you often need to cast from the type of the objects you are managing to the fixed type the list supports. This introduced the possibility of errors and causes some runtime delay if you continuously check the type of the objects extracted from the list with dynamic casts (like "as"):

myList: TList;
myList.Get(3) as TMyObject
Generic Collection Classes
Along with generic types in the language Delphi added a set of basic generic collections. These are defined in the System.Generics.Collections unit and offer a generic blueprint for containers tied to the specific data type you need. Generic collections include:

TList<T>, a basic generic list including support for sorting and enumerations
TThreadList<T>, a more thread-safe list with locking support
TQueue<T> and TStack<T>
TDictionary<TKey,TValue>, a fairly powerful dictionary with customizable key and value types
TObjectList<T: class> which has ownership support for can be used only for object types, similarly to the other following containers
TObjectQueue<T: class> and TObjectStack<T: class>
TObjectDictionary<TKey,TValue>
TThreadedQueue<T>
Advantages of Generic Collections
Generics collections offer the ability to define specific containers for given data types you need to use, and let the compiler check the data type compatibility, rather than doing the same at runtime. This results in cleaner and more readable code, more robust applications, and faster execution -- given the reduced need ot runtime checks:

myList: TList <TMyObject>;
myList.Get(3); // returns TMyObject

All of the new libraries and subsystems in Delphi use the new collections, for example FireMonkey leverages them a lot rather than using the traditional coding style.

Any Reason not to Use Generic Collections?
There are basically two reasons for not using the new collections. One is that if you have existing working code, you might not want to change it. Even more if the code is in a library (like VCL) changing it could cause incompatibility in code that uses the library.

The other reason is that generics in Delphi cause a significant code bloat, because for any data type used by the collection the class methods are replicated, even if almost identical. In very large applications, this has a negative effect on compile and link time and on executable side.

Additional Generic Collections
Finally, I want to mention that if you use generic collections heavily, you should consider those available in the Spring4D library, which extends what we have in the RTL. See the documentation at Для просмотра ссылки Войди или Зарегистрируйся

Again this is meant to be a short summary and I know I could have been more extensive and precise, hope it is helpful to some of the old developers not fully aware of our generic collections -- which was the goal of the blog post.
[/SHOWTOGROUPS]
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
New Delphi and C++Builder RAD Server Courses now on Embarcadero Academy - by David I - 22/12/2019
[SHOWTOGROUPS=4,19,20]
I am proud to announce that two new RAD Server courses are available on the Embarcadero Academy!

Using Delphi & RAD Server

Для просмотра ссылки Войди или Зарегистрируйся
Using C++Builder & RAD Server

Для просмотра ссылки Войди или Зарегистрируйся
What You’ll Learn

Watching the lecture videos, reading the lecture course notes and working with the example cpde you’ll learn the following:

RAD Server’s application development tips and techniques
RAD Server’s platform requirements
How to build and test your first RAD Server applications
How to deploy your RAD Server applications to Windows+IIS and Linux+Apache
The new RAD Server features in RAD Studio 10.3 Rio releases
How to build client applications using RAD Studio and Sencha EXT JS to access your RAD Server endpoints
What sample projects and application templates are available for RAD Server to help get you started
Where to find additional references, resources, videos, blog posts and more
Courses:

Using Delphi and RAD Server to Rapidly Design, Build, Debug, and Deploy Services-Based Solutions

Для просмотра ссылки Войди или Зарегистрируйся

Using C++Builder and RAD Server to Rapidly Design, Build, Debug, and Deploy Services-Based Solutions

Для просмотра ссылки Войди или Зарегистрируйся[/SHOWTOGROUPS]
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
The Unicode Standard, Version 5.2, issued and published by the Unicode Consortium (PDF - 2009)
This PDF file is an excerpt from The Unicode Standard, Version 5.2, issued and published by the Unicode Consortium. The PDF files have not been modified to reflect the corrections found on the
Updates and Errata page (Для просмотра ссылки Войди или Зарегистрируйся). For information about more recent versions of the Unicode Standard see Для просмотра ссылки Войди или Зарегистрируйся.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals.

The Unicode® Consortium is a registered trademark, and Unicode™ is a trademark of Unicode, Inc.

The Unicode logo is a trademark of Unicode, Inc., and may be registered in some jurisdictions.

The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.

The Unicode Character Database and other files are provided as-is by Unicode®, Inc. No claims are made as to fitness for any particular purpose. No warranties of any kind are expressed or implied. The recipient agrees to determine applicability of information provided.

Copyright © 1991–2009 Unicode, Inc.

All rights reserved. This publication is protected by copyright, and permission must be obtained from
the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in
any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, inquire at Для просмотра ссылки Войди или Зарегистрируйся. For terms of use, please see Для просмотра ссылки Войди или Зарегистрируйся.

Visit the Unicode Consortium on the Web: Для просмотра ссылки Войди или Зарегистрируйся

  • The Unicode Standard / the Unicode Consortium ; edited by Julie D. Allen ... [et al.]. — Version 5.2.
  • Includes bibliographical references and index.
  • ISBN 978-1-936213-00-9 (Для просмотра ссылки Войди или Зарегистрируйся)
  • 1. Unicode (Computer character set) I. Allen, Julie D.
  • II. Unicode Consortium.
  • QA268.U545 2009
  • ISBN 978-1-936213-00-9
  • Published in Mountain View, CA
  • December 2009
Chapters:
  • 4.1 Unicode Character Database
  • 4.2 Case—Normative
  • 4.3 Combining Classes—Normative
  • 4.4 Directionality—Normative
  • 4.5 General Category—Normative
  • 4.6 Numeric Value—Normative
  • 4.7 Bidi Mirrored—Normative
  • 4.8 Name—Normative
  • 4.9 Unicode 1.0 Names
  • 4.10 Letters, Alphabetic, and Ideographic
  • 4.11 Properties Related to Text Boundaries
  • 4.12 Characters with Unusual Properties
[SHOWTOGROUPS=4,19,20]
Для просмотра ссылки Войди или Зарегистрируйся
[/SHOWTOGROUPS]
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Introduction to Docker
Jim McKeeth / 30/1/2020
[SHOWTOGROUPS=4,19,20]
This is an introduction to Docker for Delphi and C++Builder developers to get you ready for working with the new Docker support for RAD Server in 10.3.3 Rio.
First here is a replay of the Для просмотра ссылки Войди или Зарегистрируйся. It is over 2 hours long. Below you will find some shorter videos covering Docker Basics and specifically working with RAD Server and Docker.


This is the Для просмотра ссылки Войди или Зарегистрируйся and connecting to it from Delphi to deploy a simple Hello World Delphi application into a Docker Linux instance.

Для просмотра ссылки Войди или Зарегистрируйся
A short Для просмотра ссылки Войди или Зарегистрируйся and accessing it through the browser as HTML5 via Broadway.

Для просмотра ссылки Войди или Зарегистрируйся
See Для просмотра ссылки Войди или Зарегистрируйся for the details on Для просмотра ссылки Войди или Зарегистрируйся. You can find the Для просмотра ссылки Войди или Зарегистрируйся and the source on Для просмотра ссылки Войди или Зарегистрируйся.
Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся
[/SHOWTOGROUPS]
 
Последнее редактирование:

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
Here my simple TEDIT sample for this, of course, is possible using a code more xpert like create a class to automatize all process, or same, use new functions/procedure on RAD Studio 10.3.3 Rio.
This is a bad way:
1. input "-123" and then to the first position "4" - you will get "4-123"
2. you cannot use ctrl+a or ctrl+c
3. and most importantly. from clipboard you can paste any text
 

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
NumCPULib4Pascal
By Ugochukwu Mmaduekwe, August 7, 2019 in I made this
[SHOWTOGROUPS=4,19,20]
NumCPULib4Pascal is a Cross Platform Pascal library to query the number of CPUs (Logical (logical processors) and Physical (cores)) on a machine.

Usage: Add NumCPULib to uses clause:

Код:
uses
  NumCPULib;

var
  lcc, pcc: Int32;
begin
// count logical cpus (aka logical processors)
lcc := TNumCPULib.GetLogicalCPUCount();
// count physical cpus (aka cores)
pcc := TNumCPULib.GetPhysicalCPUCount();
end;


What is the difference between the existing System.CPUCount and NumCPULib4Pascal?
  1. System.CPUCount only reports the LogicalCPU Count (aka logical processors), it has no option to report the PhysicalCPU Count (cores).
  2. System.CPUCount will not report the correct value on windows systems with more than 64 logical processors. NumCPULib4Pascal fixes this by querying GetLogicalProcessorInformationEx on these OSes.
GitHub Repository
Для просмотра ссылки Войди или Зарегистрируйся

[/SHOWTOGROUPS]
 
Последнее редактирование:

FireWind

Свой
Регистрация
2 Дек 2005
Сообщения
1,957
Реакции
1,199
Credits
4,009
Essential Delphi New Edition, the First Chapter
©Marco Cantu
As I mentioned two weeks ago, in the occasion of Delphi's 25th anniversary I decided to go back to the roots and publish a book introducing the Delphi IDE based on content of my old Mastering Delphi volumes with additional material covering more recent changes. The ebook is fully edited for version 10.3 of Delphi.
Notice that the focus in not on developers with many years of experience with Delphi, but mostly new and less experienced users. But I'm sure that even those with more confidence and knowledge will find features here and there that they are not aware of.
At this time I've completed the initial review of the first chapter and just started the second chapter:
Chapter 1: A Form is a Window
Chapter 2: Highlights of the Delphi IDE

[SHOWTOGROUPS=4,19,20]Download: Для просмотра ссылки Войди или Зарегистрируйся

More details: Для просмотра ссылки Войди или Зарегистрируйся[/SHOWTOGROUPS]
 

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
New C++Builder YouTube video series - "Rapid C++ Development: Combining C++Builder with MSVC++"
David I - 9/3/2020
A new ten part YouTube video series, "Для просмотра ссылки Войди или Зарегистрируйся" by Rob Swindell, covers some best practices for combining C++Builder with Microsoft Visual C++. In the video series Rob resents the following chapters:
 
Последнее редактирование:

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.