Why Delphi? Mobile Apps Are Everywhere

Total Page:16

File Type:pdf, Size:1020Kb

Why Delphi? Mobile Apps Are Everywhere Expert Delphi Robust and fast cross-platform application development Paweł Głowacki BIRMINGHAM - MUMBAI Expert Delphi Copyright © 2017 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: June 2017 Production reference: 1300617 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78646-016-5 www.packtpub.com Credits Author Copy Editors Paweł Głowacki Safis Editing Muktikant Garimella Reviewer Project Coordinator Dave Nottage Vaidehi Sawant Commissioning Editor Proofreader Kunal Parikh Safis Editing Acquisition Editor Indexer Nitin Dasan Aishwarya Gangawane Content Development Editor Graphics Anurag Ghogre Abhinash Sahu Technical Editors Production Coordinator Madhunikita Sunil Chindarkar Shantanu Zagade Rutuja Vaze Foreword I have known and worked with Paweł Głowacki for more than 16 years. Paweł is one of the world-wide Delphi community leading experts. In this book, Expert Delphi, Paweł takes you on a learning journey that started in the early 1980s with Compas Pascal, Poly Pascal, and Turbo Pascal. For more than 20 years, Delphi has continued to evolve to meet the needs of developers around the world. During most of this time, Paweł has been a key team member and advocate for the continuous innovation of the compilers, frameworks, runtime library, integrated development environment, and tool chain, allowing developers to easily build applications across desktop, server, mobile, internet, and cloud platforms. With FireMonkey (FMX), developers can build on top of a modern multiplatform framework based on a rich history of objects, components, and libraries and that has included Turbo Vision, Object Windows, and the VCL. Leveraging these frameworks, libraries, and tools allows developers to create applications for a wide range of architectures, databases, and distributed computing environments. In his presentations and examples, Paweł shows you how easy it is to create a wide range of applications using SQL/NoSQL databases, XML, and JSON. Paweł also helps developers create multitier applications using the latest technologies, including REST. As a member of and a leading advocate for the large, global Delphi community and ecosystem, Paweł is uniquely qualified to show you how to become a mobile developer superhero, become a hyper-productive software engineer, and build one source code application that can be compiled to all major mobile platforms and form factors. Paweł also shows you how to build stunning 2D and 3D multidevice graphical user interfaces with the FireMonkey library, providing an outstanding user experience for your application's users. With Expert Delphi, you'll learn the best practices for writing high-quality, reliable, and maintainable code with Delphi's Object Pascal language and component architecture. After you complete Paweł's book, you'll understand how to take full advantage of mobile operating systems, frameworks, and hardware capabilities, including working with sensors and the Internet of Things. Beyond developing apps for desktops and smartphones, you'll learn how to quickly and easily integrate with cloud services and data using REST APIs and JSON. You'll also learn how to architect and deploy powerful mobile backend services. In Expert Delphi, Paweł encapsulates the knowledge gained through years as a world-class Delphi engineer, an entertaining presenter, a community leader, and a passionate advocate. With his words, step-by-step instructions, screenshots, source code snippets, examples, and links to additional sources of information, you will learn how to continuously enhance your skills and apps. Become a developer superhero and build stunning cross-platform apps with Delphi. David Intersimone "David I" Vice President of Developer Communities, Evans Data Corp. and Embarcadero Community MVP. Santa Cruz, California, USA About the Author Paweł Głowacki is Embarcadero's European Technical Lead for Developer Tools. Previously, he spent over 7 years working as a senior consultant and trainer for Delphi within Borland Education Services and CodeGear. In addition to working with Embarcadero customers across the region, he represents Embarcadero internationally as a conference and seminar speaker. About the Reviewer Dave Nottage is an independent software consultant who lives in Adelaide, South Australia. Developing software with Delphi since 1995 when Delphi 1 was first released, he has been a valued member of Embarcadero's TeamB since 2001, and an Embarcadero MVP since 2014. Dave is considered an expert in Delphi and has shared his expertise as a speaker at Delphi developer conferences, including BorCon, Delphi Live, and ADUG Symposia. He is an active member on Embarcadero forums and Stack Overflow, and his popular blog articles, which can be found at Delphi Worlds, provide solutions for common Delphi problems. His blog is followed by many developers across the globe and is considered a go-to source. Having worked on projects for major global enterprises, corporations, and governments, he is now working on his own commercial product, a set of code libraries that aids developers in cross-platform development. In his spare time, Dave enjoys playing bass guitar in a band, art exhibitions, puzzles that challenge the mind, and traveling the world. Dave can be contacted at [email protected]. www.PacktPub.com For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks. h t t p s ://w w w . p a c k t p u b . c o m /m a p t Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career. Why subscribe? Fully searchable across every book published by Packt Copy and paste, print, and bookmark content On demand and accessible via a web browser Customer Feedback Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at h t t p s ://w w w . a m a z o n . c o m /d p /1786460165. If you'd like to join our team of regular reviewers, you can e-mail us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products! For my beloved wife, Barbara, and son, Mateusz. Thank you for all your love and support. I love you! Table of Contents Preface 1 Chapter 1: Fasten Your Seat Belts 8 Delphi installation 8 Delphi versions 9 Running the Delphi installer 10 Installing custom components 14 IDE options 16 Riding the Integrated Development Environment 17 Delphi compilers and toolchains 17 Hello World app 19 Deploying to mobile devices 32 Deploying to Android 32 Deploying to iOS 36 Summary 42 Chapter 2: Mind Your Language 43 Do you speak Object Pascal? 43 Program structure 44 Console application 45 Forms applications 49 Object Pascal Phrase Book 62 Tokens 62 Constants 63 Types 64 Sets and arrays 65 Helpers 66 Generics 68 Anonymous code 72 Operator overloading 74 Custom attributes 75 Runtime Type Information 76 Summary 77 Chapter 3: Packing Up Your Toolbox 78 Parallel Programming Library 78 Parallel loops 79 Tasks 80 Futures 82 Working with files 84 JSON 90 Writing JSON 91 Reading JSON 95 XML 98 Summary 105 Chapter 4: Playing with FireMonkey 106 Drawing in code 107 Get moving with timers 114 Precise timing 116 The power of parenting 118 Shapes 118 Animations 121 Programmable effects 123 Touch me 124 Touch 125 Gestures 127 Multitouch 129 Game of Memory 131 Designing the game 131 Working with images 132 Designing a user interface 134 Aligning, anchoring, and margins 135 Layouts 136 Building the games main form 136 Storing the game's configuration 144 The game's settings form 147 Summary 149 Chapter 5: FireMonkey in 3D 150 Cross-platform 3D rendering 150 Using Context3D 152 Custom Wireframe component 157 Objects 3D 161 Moving Earth 163 Building an interactive 3D scene 167 Using 3D models 174 [ ii ] Starfield simulation 177 Mixing 3D and 2D 180 Summary 182 Chapter 6: Building User Interfaces with Style 183 Working with
Recommended publications
  • Visual Component Library VCL Autor: I
    Visual Component Library VCL Autor: I. Stepanenko Fecha: Monday 27th of September 2021 04:09:10 PM VCL (Visual Component Library) es un marco de trabajo desarrollado por Borland basado en objetos visuales que tienen como finalidad diseñarframes para las aplicaciones que se han programado para Windows y diseñada bajo el concepto de componente: propiedades, métodos y eventos. Está estructuralmente y visualmente sincronizado con Windows, pues el aspecto de las ventanas, los botones o los accesos a internet, etc. son similares. Actualmente es propiedad de CodeGear, de Embarcadero Technologies. Está escrita en Object Pascal (orientado a objetos) por lo que la VCL es una librería usada por los entornos de desarrollo Delphi y C++ Builder. Al hablar de este tipo de bibliotecas o toolkits, se hace mención implícitamente a la programación orientada a objetos, pues los componentes son clases predeterminadas, haciendo su uso más sencillo, visual y cómodo. Se diferencian dos tipos de componentes. Componentes visuales Entre los visuales se distinguen los botones, las etiquetas, las formas y demás elementos visibles. Componentes no visuales Entre los no visuales están los temporizadores, las conexiones a bases de datos y demás elementos sin interfaz gráfica. Clases más importantes Aunque no todas las clases hacen referencia a componentes concretos algunas realizan tareas de gestión interna y se utilizan como clases bases de las cuales derivan otras clases mediante la herencia. VCL es bastante profundo y complicado; no obstante, las clases que forman la parte superior jerárquica son clases abstractas y son: Artículo descargado de www.masterhacks.net | 1 Visual Component Library VCL Autor: I.
    [Show full text]
  • Rapid Application Development Software | Codegear RAD Studio
    RAD Studio 2010 Product Review Guide August 2009 Corporate Headquarters EMEA Headquarters Asia-Pacific Headquarters 100 California Street, 12th Floor York House L7. 313 La Trobe Street San Francisco, California 94111 18 York Road Melbourne VIC 3000 Maidenhead, Berkshire Australia SL6 1SF, United Kingdom RAD Studio 2010 Reviewer Guide TABLE OF CONTENTS Table of Contents ............................................................................................................................ - 1 - Introduction ...................................................................................................................................... - 3 - General Overview of RAD Studio 2010 ...................................................................................... - 3 - What is New in RAD Studio 2010 ............................................................................................... - 3 - A Word on Delphi Prism ............................................................................................................. - 6 - Prerequisites ................................................................................................................................ - 7 - Minimum System Requirements ................................................................................................. - 7 - Internationalizations .................................................................................................................... - 7 - Editions ........................................................................................................................................
    [Show full text]
  • POWEROPT. Power Engineering Optimization Techniques Educational Software Library
    Available online at www.sciencedirect.com ScienceDirect Procedia - Social and Behavioral Sciences 191 ( 2015 ) 1790 – 1795 WCES 2014 POWEROPT. Power Engineering Optimization Techniques Educational Software Library Stefan Kilyenia, Constantin Barbulescua* aPolitehnica University Timisoara, Power Systems Department, 2 Bd. V, Parvan, 300223 Timisoara, Romania Abstract The power engineering field uses classic operational research methods and the most recent ones are based on artificial intelligence to solve a large number of optimization problems. In this context, this paper presents an optimization technique dedicated to an educational software library. It focuses on solving several optimization applications from the power engineering field. The software library is designed for students involved within the electrical power engineering field, at BSc and MSc levels. © 20152014 TheThe Authors. Authors. Published Published by by Elsevier Elsevier Ltd. Ltd This. is an open access article under the CC BY-NC-ND license (Selectionhttp://creativecommons.org/licenses/by-nc-nd/4.0/ and peer-review under responsibility of). the Organizing Committee of WCES 2014. Selection and peer-review under responsibility of the Organizing Committee of WCES 2014 Keywords:optimization techniques, educational software, power engineering. 1. Introduction The power engineering domain uses both models and classic methods of operational research and the most recent ones are based on artificial intelligence for solving a large number of optimization problems. In this context, this paper presents an optimization software library for the power engineering domain, to solve several applications. The programs use classic operational research methods dedicated for linear and nonlinear optimization problem solving and those specific to graphs theory. The software library synthesizes the experience accumulated in this field at the Politehnica University of Timisoara, Power Systems Department in Romania.
    [Show full text]
  • M-Explorer User's Guide
    Table of Contents M-Explorer User’s Guide Table of Contents M-Explorer User’s Guide..............................................1 Chapter 1 Using This Guide.................................................................1-1 Introduction...................................................................................................... 1-1 Key Concepts................................................................................................... 1-2 Chapter Organization .....................................................................................................1-2 Online Help ....................................................................................................................1-2 Manual Conventions ......................................................................................................1-2 Chapter 2 Introduction to M-Explorer .................................................2-1 Introduction...................................................................................................... 2-1 Key Concepts................................................................................................... 2-2 System Component Interaction......................................................................................2-2 OPC Data Access Servers.............................................................................................2-2 M-Inspector ....................................................................................................................2-2 M-Password ...................................................................................................................2-3
    [Show full text]
  • Delphi XE2 Feature Matrix
    Delphi® XE2 The fastest way to build native applications for Windows, Mac and iOS Feature Matrix Feature Architect Ultimate Enterprise Professional Starter INTEGRATED COMPILERS Enhanced in XE2! High-performance 32-bit optimizing Delphi® native code compiler 23.0 (dcc32), including High performance x86 Assembler – 32-bit inline assembler supporting the Intel® x86 instruction set (including Intel Pentium® Pro, Pentium III, X X X X X Pentium 4, Intel MMX™, SIMD, Streaming SIMD Extensions, SSE, SSE2, SSE3, SSE 4.1, SSE 4.2, AMD SSE4A and AMD® 3DNow!® New in XE2! Delphi 64-bit compiler X X X X New in XE2! Delphi OS X compiler X X X X Delphi command line compiler (dcc32.exe) X X X X Enhanced in XE2! Create 32-bit optimized Delphi native executables that can run X X X X X on both 32 and 64-bit Windows operating systems APPLICATION PLATFORMS, INTEGRATED FRAMEWORKS, DESIGNERS, SDKS AND INSTALLERS New in XE2! FireMonkey Platform for creating 32-bit Windows applications for X X X X X Windows 7, Windows Vista and XP; Server 2003 and 2008. New in XE2! FireMonkey Platform for creating 64-bit Windows applications for X X X X Windows 7, Windows Vista and XP; Server 2003 and 2008. New in XE2! FireMonkey Platform for creating OS X 10.6 and 10.7 applications X X X X New in XE2! FireMonkey Platform for creating applications for iOS 4.2 and higher X X X X New in XE2! VCL (Visual Component Library) for rapidly building 64-bit applications X X X X for Windows 7,Windows Vista and XP; Server 2003 and 2008.
    [Show full text]
  • RAD Studio XE6 Feature Matrix
    RAD Studio XE6 The complete app development suite for Windows, Mac, iOS and Android Personality: D = Delphi® C = C++Builder® Feature Matrix H = HTML5 Builder Feature Personality Architect Ultimate Enterprise Professional INTEGRATED COMPILERS AND TOOLCHAINS High-performance 32-bit optimizing Delphi® native code compiler D X X X X (dcc32), including high performance x86 Assembler Delphi 64-bit compiler D X X X X Delphi command line toolchains for Windows (dcc32, dcc64) D X X X X Delphi OS X compiler D X X X X Delphi command line toolchains for Mac OS X (dccosx) D X X X X Introduced in XE4! Delphi iOS ARM Compiler and Delphi iOS D X X X X Compiler for iOS Simulator Introduced in XE4! Delphi command line toolchains for iOS D X X X X (dccios32, dcciosarm) Enhanced in XE5! Embarcadero C++ Compiler for Win64 (bcc64) C X X X X Enhanced in XE5! Embarcadero C++ Compiler for Win32 (bcc32) C X X X X C++ command line toolchains for Windows C X X X X C++ OS X compiler (bccosx) C X X X X C++ command line toolchains for OS X C X X X X Introduced in XE5! C++Builder iOS ARM Compiler C X X X X Introduced in XE5! C++Builder command line toolchain for iOS C X X X X (bcciosarm) New in XE6! C++Builder Android ARM Compiler C X X X X New in XE6! C++Builder command line toolchain for Android C X X X X (bccaarm) APPLICATION PLATFORMS, INTEGRATED FRAMEWORKS, DESIGNERS AND SDKS FMX Application Platform for creating 32-bit Windows applications for Windows 8 and 8.1, Windows 7, and Windows Vista; Server C D X X X X 2008 and 2012.
    [Show full text]
  • Flextest Installation Guide
    FlexTest Installation Guide Audience: Administrators profi.com AG Page 1/18 Copyright 2011-2014 profi.com AG. All rights reserved. Certain names of program products and company names used in this document might be registered trademarks or trademarks owned by other entities. Microsoft and Windows are registered trademarks of Microsoft Corporation. DotNetBar is a registered trademark of DevComponents LLC. All other trademarks or registered trademarks are property of their respective owners. profi.com AG Stresemannplatz 3 01309 Dresden phone: +49 351 44 00 80 fax: +49 351 44 00 818 eMail: [email protected] Internet: www.proficom.de Corporate structure Supervisory board chairman: Dipl.-Kfm. Friedrich Geise CEO: Dipl.-Ing. Heiko Worm Jurisdiction: Dresden Corporate ID Number: HRB 23 438 Tax Number: DE 218776955 Page 2/18 Contents 1 Introduction ............................................................................................................................ 4 2 Delivery Content ..................................................................................................................... 5 2.1 FlexTest Microsoft .Net Assemblies .................................................................................. 5 2.2 FlexTest license file ........................................................................................................... 5 2.3 FlexTest registry file .......................................................................................................... 6 2.4 Help .................................................................................................................................
    [Show full text]
  • Iwork '08 Getting Started (Manual)
    Overview of iWork Tools All three iWork applications share many of the same tools. The Toolbar and Format Bar At the top of each application window, the toolbar provides controls for common tasks. Each toolbar is described in detail in the appropriate chapter in this book. You can customize the toolbar so that it contains the tools you use most often. To customize the toolbar: m Choose View > Customize Toolbar. The toolbar at the top of each window provides controls for common tasks. The Format Bar provides additional formatting tools. The Format Bar provides quick access to commonly used tools for formatting objects. If the Format Bar isn’t visible beneath the toolbar, click View in the toolbar and choose Show Format Bar to show it. 16 Preface Welcome to iWork ’08 The Inspector Window You can format all elements of your document using the panes of the Inspector window. The Inspector panes are described in detail in the user’s guides. To open the Inspector window: m Click Inspector (a blue i) in the toolbar. Click the buttons along the top to see the different Inspector panes. You can have more than one Inspector window open at a time. To open another Inspector window: m Choose View > New Inspector, or Option-click one of the buttons at the top of the Inspector window. Preface Welcome to iWork ’08 17 To see what a control does, rest the pointer over it until its help tag appears. The Media Browser This window provides quick access to all the files in your iTunes library, your iPhoto library, your Aperture library, and your Movies folder.
    [Show full text]
  • 2D Scrolling Background in Unity When Creating a Scrolling
    2D Scrolling Background in Unity When creating a scrolling background image you will use something called a Quad and convert the Sprite into a Material. This works only if the background is designed to be scrollable. The general steps are: A. Create a new Project or use an existing project. B. Import the background sprite into the project C. Convert the Sprite into a Material D. Add a Quad 3D object and resize this object to match the background and set the Material Filtering E. Resize the Camera F. Add a Scrolling Script to the Quad 1. Download the scrolling backgrounds folder that contains some background images (see link for lecture). This will contain three images, a city background image (1230x600), a space background (1782x600) and a trees background (1100x405) 2. Start Unity and choose New to create a new Project. 3. Name the project Scrolling Background and select the 2D option. 4. Create the Project. 5. In the Assets folder create two new folders named Sprites and Scripts. 6. Drag these three background images into the sprites folder. 7. Click the scrolling city background image in the Sprites folder. The Inspector window shows the properties: You are going to change the Texture Type and the Wrap mode. 8. Set the Texture Type to Default and the Wrap Mode to Repeat. 9. Scroll down in the Inspector window and click the Apply button. 10. Repeat these steps for the other two sprites. 11. Click the Game Object menu, choose 3D, and choose Quad: You want to resize the quad object so it matches the background.
    [Show full text]
  • Preguntas + Frecuentes Sobre Embarcadero Radphp XE Danysoft | Representante Exclusivo En La Península Ibérica
    Preguntas + frecuentes sobre Embarcadero RadPHP XE Danysoft | Representante exclusivo en la península ibérica What is RadPHP XE? Embarcadero RadPHP XE revolutionizes PHP web development with a completely integrated, rapid visual development approach and component framework. RadPHP XE provides a powerful editor, debugger, visual development tools and connectivity with leading databases. The integrated reusable class library includes components for everything from UI design to building applications for Facebook. What are some of the key benefits of RadPHP XE? If you're wondering why you should consider RadPHP XE compared to another PHP editor, here are some of the key benefits. Faster development – using the drag‐and‐drop visual design capabilities of RadPHP, you can build PHP applications faster than ever before Easier to build data driven applications – RadPHP standardizes database connectivity and includes a collection of pre‐build database components that make it much simpler to build apps that connect to databases Reusability – there are millions of lines of open source PHP code available today, but how do you leverage that vast resource in your applications? RadPHP provides an easy framework for packaging any PHP or JavaScript source code into reusable visual and non‐visual components that can be visually assembled with other PHP components in the RadPHP IDE and easily programmed with familiar properties, methods, and events. Ability to create AJAX enabled web sites – AJAX is a popular method for building dynamic web 2.0 sites and RadPHP includes AJAX‐enabled components to help you on your way to building modern looking interactive web sites. Additionally, AJAX enablement is built into the core of the RadPHP component framework, so you can add AJAX capabilities to virtually any PHP code.
    [Show full text]
  • Appendix 1 the Borland Pascal Package
    Section 1. Installation 555 Appendix 1 The Borland Pascal Package Section 1. Installation When you open your carton of Borland Pascal, you may be frightened by the tens of kilos of books and mountain of disks. This Appendix will get you started on installation and use of the system to write your Pascal programs. Even if you have already installed Borland Pascal and are using it, you may find some useful tips here, so please thumb through these pages. (There is much useful information in the Borland Pascal User's Guide, which is in your package.) For starters, your computer should have a goodly chunk of free disk space in one hard disk partition. If you install the complete Borland Pascal system, that will take about 30M. The programs with this book will fill about 2M, and when you start writing programs, who knows? Before you start installation, decide which partition to use, and note how much free disk space is available. Don't push a partition to its absolute limit. Start the "Install" program by inserting Disk 1 into the A: drive and typing A:INSTALL <Enter> (By the time this book appears you will probably be able to acquire BP on CD­ ROM and install it that way.) The "Install" program gives you lots of options, and explains what it is doing as it runs. If you have adequate disk space, the easiest course is to install everything. If you want to install only what you need for using this book, when the "Install" program prompts you for what to install/omit, you can omit the Windows version, the Assembler, the Profiler, the Debugger, the Turbo Vision package, and the On-line compilers.
    [Show full text]
  • Shape Data Analysis Using Qushape
    SHAPE DATA ANALYSIS USING QUSHAPE 1. INTRODUCTION QuShape is a comprehensive user-friendly software package designed to perform fully automated analysis of SHAPE experimental data. QuShape requires no other software to fully analyze raw experimental capillary electrophoresis data. QuShape can be run in an automatic mode with default analytical procedures but contains an array of alternative algorithmic procedures and parameter controls that the user can apply if not satisfied with the default results. 2. GRAPHIC USER INTERFACE The user controls QuShape via a graphic interface. This interface includes the main Data View window, the Tool Inspector window, and the Script Inspector window. Results of every operation are plotted in the Data View window, allowing the user to monitor the quality of each data processing step. The user can vary the graphic display format via a set of control buttons. At each data processing step, the Tool Inspector window offers the user additional analytical tools that can be employed if the user is not satisfied with the results of the automatic procedure. 1 2.1. MAIN MENU AND TOOLS BAR Four groups of icons are found at the top of the QuShape screen: File-handling, Channels, Figure Options, and Split Channels. File-handling icons: These icons allow users to create or save projects. New Project – Click this icon to create a new project. Open Project – Click this icon to open an existing project. Save Project – Click this icon to save the project. Save Project As – Click this icon to save the project under a different name. Channels icons: Six differently colored label widgets relate colors of the lines in the Data View window to specific data channels (these labels refer to the two-capillary approach used to resolve the chemical probing experiment data).
    [Show full text]