Книги по Delphi / Delphi Books

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#1
Hands-On Design Patterns with Delphi
more info Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Author: Primož Gabrijelčič / February 2019


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

Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***


Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#16
Firemonkey: How to crop a photo in Delphi (Video lessons) - in PortugueseBR
Easy method and didatic for crop a image, for example, to create your "profile photo" in your app Mobile or Windows.You can change to VCL!


NOTE: You can change the subtitles for your language (google option for all languages)

One feature that leaves your mobile app with a more professional face is to allow your user to change his or her profile picture. But do not just send the new photo to replace the old image. Ideally, it can resize and crop the photo the way you want.

This feature is used in applications such as Facebook and Twitter, and allows a very nice customization of the photos!

Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#17
Coding in Delphi - Nick Hodges - 2013.pdf
More Coding in Delphi - Nick Hodges - 2015.pdf

more info Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade



Coding in Delphi
This is a book all about writing Delphi code. It's not about the VCL or database access. It's just about how to use the language in the most effective way to write clean, testable, maintainable Delphi code. It covers a variety of powerful Delphi programming features and techniques including Generics, Interfaces, Exception Handling, Anonymous Methods, Collections, RTTI, Enumerators, Attributes, Dependency Injection and Unit Testing.

More Coding in Delphi
This is a book all about writing Delphi code. Sure, there's a bit about component writing, too, but the main focus is on code. It's all about how to use the language in the most effective way to write clean, testable, maintainable Delphi code. It covers a variety of powerful Delphi programming features and techniques including Patterns, Threading, Parallel Programming, Aspect Oriented Programming, writing SOLID code and more.

All that, and a foreword by the great David Intersimone!
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#18
SHA Hash with C++Builder and Delphi
Posted by Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade, 11 MAY 2018 (Embarcadero MVP)
Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade

I've always been fascinated by encryption & compression, but my favorite is probably the Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade. A hash function is a one-way algorithm that takes an input of any size and always produces the same size output. It is one-way in that there is information loss -- you can't easily go from the output to the input again. The cryptographic hash is a more secure version of the hash function. It is most often used in signing to validate that data hasn't been modified.
Per Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade, the ideal cryptographic hash function has five main properties:
  • it is Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade so the same message always results in the same hash
  • it is quick to compute the hash value for any given message
  • it is Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade to generate a message from its hash value except by trying all possible messages
  • a small change to a message should change the hash value so extensively that the new hash value appears uncorrelated with the old hash value
  • it is Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade to find two different messages with the same hash value

The Message Digest family of cryptographic hashes used to be the main players in the area, but they were found to be insecure. Now SHA family rules as the main workhorse of modern cryptography.

The basis of hash support first appeared in the RTL around the 2009 release but in Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade (2015) we got the Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade unit, which brought the MD5, SHA-1, and Bob Jenkins hashes. Then in Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade (2015) it was expanded with Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade support. Most recently in Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade (2017) the hash functions were expanded to accept either a string or stream in addition to the original bytes input.

The SHA Family includes SHA-0, SHA-1, SHA-2, & SHA-3 family of hashes. SHA-0 is obsolete, and SHA-3 is an improvement on SHA-2. In practice I see most hashes using either SHA-1 or SHA-2. SHA-1 always produces a 160-bit (20-byte) hash (digest), while SHA-2 includes 224, 256, 384, and 512-bit outputs, making it both more secure and more flexible. SHA 256 & 512 represent 32 and 64-bit word size hash algorithms. The 224, 256, & 384 size digests are truncated versions of the 256 & 512 algorithms.

So how do you use it in C++Builder and Delphi? I'm glad you asked. Once you have included the System.Hash unit then you can use the methods of the THashSHA2 class to create the digest. I'll show you how to use GetHashString, but know there are other variations you can use too. The GetHashString takes either a string or a stream and returns a hexadecimal string of the hash.

In C++Builder your code would look like:
Код:
Edit512->Text = THashSHA2::GetHashString(
    EditMessage->Text,
    THashSHA2::TSHA2Version::SHA512);
and in Delphi your code would look like:
Код:
Edit512.Text := THashSHA2.GetHashString(
    EditMessage.Text,
    THashSHA2.TSHA2Version.SHA512).ToUpper;
I made a little sample app that generates all the different hashes from the text you provide. It is a FireMonkey app, so will work on all the platforms, but the hash code will work in any type of app. There are both C++ and Delphi versions included.
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#19
3D Credits Scroll with Delphi (A little fun with Delphi for today’s Star Wars day!)
by Jim McKeeth, 04/May/2018
A little fun with Delphi for today’s Star Wars day!

This is a pretty simple 3D form with a 3D layout at an angle, and then a 2D layout with text and images is animated up the 3D layout. The only code is populating the labels as the animation kicks off automatically.

Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade


Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade

change the message to share with your friends. It is FireMonkey, and while I only tested it on Windows, it should work on Android, iOS, macOS, and even Linux if you are running Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.


May the Fourth be with You!
Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#20
My code to "Counting how many links exist in a webpage or similar content" like email message
by Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade (works but....)

Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***

CONCLUSION:
- IT WORK, BUT NEED TO BE REFINED. OF COURSE!
- BUT IT IS NOT FOR EXPERT USER, JUST FOR "NOOB" TEST!
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#21
The Complete Delphi Masterclass: 3-in-1
Leverage the power of Delphi for cross-platform and mobile development on Windows, MacOS X, Android, and iOS

Delphi is one of the most popular IDE for cross-platform native app development. It helps you to focus on the real business and avoid the pain of going through amid GUI widget details or inter-platform incompatibilities. So, if you want to build native cross-platform apps with a single codebase for Microsoft Windows, Apple Mac OS X, Google Android, iOS, and Linux, then go for this Learning Path.

This comprehensive 3-in-1 course begins by getting you accustomed to the Delphi IDE and the Object Pascal language. You will then familiarize yourself with JSON format strings, XSLT transformations, Unicode encodings, and various types of streams. This learning path then moves on to more advanced topics such as developing higher-order functions and using enumerators and RTTI. You will also go through topics such as multi-threading, using the parallel programming library, and putting Delphi on a server. Finally, you will learn to improve your development skills and GUI programming with FireMonkey.
  • Get to grips with Delphi to build and deploy various cross-platform applications
  • Design, develop, and deploy real-world applications by implementing a single source codebase
  • Create server-side programs to serve RESTful web services and provide data to your mobile apps
  • Use well-defined GUI design patterns to build mobile applications that provide a great user experience
  • Write VCL applications – Windows development
  • Start making amazing apps with FireMonkey – Cross-platform development
  • Work with data sources, embedded SQL databases such as FireDAC, dbExpress
  • Build server-side data and application services with DataSnap
Content:
  • Delphi Solutions - Part 1 03:33:55
  • Delphi Solutions - Part 2 / 34 aulas - 04:31:40
  • Mastering Delphi / 37 aulas - 04:32:42
  • complete content: Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#22

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#23
hi Friends,

Did you know is possible use VCL and FMX (FireMonkey) togheter in your app?
Here my test about use of "VCL" and "FMX" objects togheter, to create one app to MS Windows!

Many want to use DLLs written in C / C ++ or another language along with their project in RAD Studio (Delphi or CBuilder), but they forget or do not know that a BPL is actually a binary library, such as a DLL, with due exceptions and differences in your call.

However, since a BPL is actually a binary Delphi / CBuilder code container, then this means you can create your own repository of objects (classes) and codes to use in your projects, in order to re-use their codes. (Remember one of the pillars of object-oriented language - Inheritance)

To use one framework within the other, in the case it may be: VCL within FMX, or FMX within VCL - you have to take a few basic steps.

You must create the objects that will be used by the other framework with a package (BPL / DCP), as RAD Studio does.
In your application project, VCL or FMX, you must inform that you will use a custom "RUNTIME PACKAGE", which is your newly created package.
Add the DCP file - not BPL file ok!
IT's NOT NECESSARY INSTALL THE PACKAGE IN YOUR IDE, JUST HAVE IT TO USE!
By default, RAD Studio saves the BPL and DCP files in your "Documents Public \ Embarcadero \ .... DCP and BPL sub-folders" - if you want, you can "copy it" for you project folder or any other place!
Just DONT FORGET where is it, ok!
After that, you simply inform in your application project, in the "USES" clause, which unit you intend to use, and which is inside your "package" that you created before.
Then you can use the objects and classes as you normally do when using the RAD Studio default packages.
Код:
My project VCL that will use my TForm FMX (FireMonkey)
-------------------------------------------------------------------------------

unit uVCLFormMain;

interface

uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils,
  System.Variants,
  System.Classes,
  Vcl.Graphics,
  Vcl.Controls,
  Vcl.Forms,
  Vcl.Dialogs,
  Vcl.StdCtrls,
  Vcl.Menus,
  //
  uFMXForm_inVCLproject  // in my package with my objects FMX
  //
    ;

type
  TVCLFormMain = class(TForm)
    Label1: TLabel;
    MainMenu1: TMainMenu;
    Files1: TMenuItem;
    About1: TMenuItem;
    CallFMXform1: TMenuItem;
    N1: TMenuItem;
    Exit1: TMenuItem;
    procedure CallFMXform1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  VCLFormMain: TVCLFormMain;

implementation

{$R *.dfm}

procedure TVCLFormMain.CallFMXform1Click(Sender: TObject);
var
  lFMXForm_inVCLprj: TfrmFMXForm_inVCLproject;
begin
  lFMXForm_inVCLprj := TfrmFMXForm_inVCLproject.Create(nil);
  try
    lFMXForm_inVCLprj.ShowModal;
  finally
    Self.SetFocus;
    //
    lFMXForm_inVCLprj.DisposeOf;
    lFMXForm_inVCLprj := nil;
  end;
end;

procedure TVCLFormMain.Exit1Click(Sender: TObject);
begin
  Close;
end;

end.


my TForm FireMonkey (FMX) used in my VCL project
-------------------------------------------------------------------------------

unit uFMXForm_inVCLproject;

interface

uses
  System.SysUtils,
  System.Types,
  System.UITypes,
  System.Classes,
  System.Variants,
  FMX.Types,
  FMX.Controls,
  FMX.Forms,
  FMX.Graphics,
  FMX.Dialogs,
  FMX.Layouts,
  FMX.StdCtrls,
  FMX.Controls.Presentation;

type
  TfrmFMXForm_inVCLproject = class(TForm)
    AniIndicator1: TAniIndicator;
    Layout1: TLayout;
    Label1: TLabel;
    StyleBook1: TStyleBook;
    ToolBar1: TToolBar;
    sbtnClickMe: TSpeedButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure sbtnClickMeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmFMXForm_inVCLproject: TfrmFMXForm_inVCLproject;

implementation

{$R *.fmx}

procedure TfrmFMXForm_inVCLproject.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  AniIndicator1.Enabled := False;
end;

procedure TfrmFMXForm_inVCLproject.FormCreate(Sender: TObject);
begin
  Position := TFormPosition.ScreenCenter;
end;

procedure TfrmFMXForm_inVCLproject.FormShow(Sender: TObject);
begin
  AniIndicator1.Enabled := False;
  AniIndicator1.Enabled := True;
end;

procedure TfrmFMXForm_inVCLproject.sbtnClickMeClick(Sender: TObject);
begin
  ShowMessage('Hello FMX project');
end;

end.


my project FireMonkey (FMX) that will use my TForm VCL
-------------------------------------------------------------------------------

unit uFMXFormMain;

interface

uses
  System.SysUtils,
  System.Types,
  System.UITypes,
  System.Classes,
  System.Variants,
  FMX.Types,
  FMX.Controls,
  FMX.Forms,
  FMX.Graphics,
  FMX.Dialogs,
  FMX.Controls.Presentation,
  FMX.StdCtrls,
  FMX.Layouts,
  //
  uVCLForm_inFMXproject  // in my package with my objects VCL
  //
    ;

type
  TFMXFormMain = class(TForm)
    Layout1: TLayout;
    ToolBar1: TToolBar;
    sbtnCallVCLForm: TSpeedButton;
    sbtnCloseApp: TSpeedButton;
    Label1: TLabel;
    StyleBook1: TStyleBook;
    procedure FormCreate(Sender: TObject);
    procedure sbtnCallVCLFormClick(Sender: TObject);
    procedure sbtnCloseAppClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FMXFormMain: TFMXFormMain;

implementation

{$R *.fmx}

procedure TFMXFormMain.FormCreate(Sender: TObject);
begin
  Position := TFormPosition.ScreenCenter;
end;

procedure TFMXFormMain.sbtnCallVCLFormClick(Sender: TObject);
var
  lVCLForm_inFMXprj: TfrmVCLForm_inFMXproject; // my TForm VCL
begin
  lVCLForm_inFMXprj := TfrmVCLForm_inFMXproject.Create(nil);
  try
    lVCLForm_inFMXprj.ShowModal;
  finally
    Self.Active := True;
    //
    lVCLForm_inFMXprj.DisposeOf;
    lVCLForm_inFMXprj := nil;
  end;
end;

procedure TFMXFormMain.sbtnCloseAppClick(Sender: TObject);
begin
  Close;
end;

end.
-------------------------------------------------------------------------------

my TForm VCL used in my project FireMonkey (FMX)
-------------------------------------------------------------------------------

unit uVCLForm_inFMXproject;

interface

uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils,
  System.Variants,
  System.Classes,
  Vcl.Graphics,
  Vcl.Controls,
  Vcl.Forms,
  Vcl.Dialogs,
  Vcl.StdCtrls,
  Vcl.ExtCtrls,
  Vcl.ComCtrls,
  Vcl.ToolWin,
  Vcl.Menus,
  System.ImageList,
  Vcl.ImgList,
  System.Actions,
  Vcl.ActnList,
  Vcl.StdActns,
  Vcl.Themes;

type
  TfrmVCLForm_inFMXproject = class(TForm)
    Label1: TLabel;
    Panel1: TPanel;
    Animate1: TAnimate;
    ToolBar1: TToolBar;
    Button1: TButton;
    Button2: TButton;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ComboBox1: TComboBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmVCLForm_inFMXproject: TfrmVCLForm_inFMXproject;

implementation

{$R *.dfm}

const
  lPathStyles = 'C:\Users\Public\Documents\Embarcadero\Studio\20.0\Styles';

procedure TfrmVCLForm_inFMXproject.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello VCL project');
end;

procedure TfrmVCLForm_inFMXproject.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmVCLForm_inFMXproject.ComboBox1Change(Sender: TObject);
begin
  if (ComboBox1.Items.Count > 0) then
    TStyleManager.SetStyle(ComboBox1.Text);
end;

procedure TfrmVCLForm_inFMXproject.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Animate1.Active := False;
end;

procedure TfrmVCLForm_inFMXproject.FormCreate(Sender: TObject);
var
  lStyleName: string;
begin
  Position := TPosition.poScreenCenter;
  //
  for lStyleName in TStyleManager.StyleNames do
    ComboBox1.Items.Add(lStyleName);
  //
  if (ComboBox1.Items.Count > 0) then
    ComboBox1.ItemIndex := 0;
end;

procedure TfrmVCLForm_inFMXproject.FormShow(Sender: TObject);
begin
  Animate1.Active := False;
  Animate1.Active := True;
end;

initialization

finalization

end.
Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade

Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***


hug
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#24
here my examples of:
- Creating Columns by code in StringGrid in VCL and FireMonkey (FMX)
- VCL project


Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#25
here my examples of:
- Creating Columns by code in StringGrid in VCL and FireMonkey (FMX)
- FMX project

Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#26
my project test, VCL / FMX using LiveBinding to link my Class TPersons with my StringGird

thanks to Thulio Bittencourt MVP Embarcadero Brasil

using POO code and manual instructions to link my TPersons class to the component StringGrid


Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***


hug
 

Материал может быть удален по просьбе правообладателя

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#27
my example for add Tag in TreeNode from TreeView and delete any item indicated by Tag

  • Like imitating a TAG property from components, using a OBJECT (in true, a Type RECORD with a field) - so easy!
  • Then, stay more easy find any TreeNode with a specific value on new "Tag" attribute
Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade
Скрытое содержимое. Вам нужно Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade или Ссылка скрыта / Hidden link | Почему? | Why? | Повышение/Upgrade.
***Скрытое содержимое***
 

Материал может быть удален по просьбе правообладателя
Последнее редактирование:

emailx45

Модератор
5 Май 2008
616
971
118
here and there
wedelphi.com
#28
Забыли свой пароль?