Android in Lazarus

Total Page:16

File Type:pdf, Size:1020Kb

Android in Lazarus Custom Drawn Interface/Android Contents 1 Architecture 2 Roadmap 3 Using the Android SDK, Emulator and Phones 4 Android Programming 5 Configuring the Free Pascal Compiler for Android o 5.1 Use the ready Virtual Box Image with FPC and Lazarus o 5.2 Building the compiler yourself in Windows o 5.3 Using the pre-compiled compiler in Windows o 5.4 Building the compiler yourself in Linux o 5.5 Using the pre-compiled compiler in Linux 6 Install the Java JDK and the Android SDK and NDK 7 Compiling the example LCL Android Application 8 How to create an LCL Android Application o 8.1 Step 1 - Creating the LPI o 8.2 Step 2 - Building the library o 8.3 Step 3 - Create the Android project structure o 8.4 Step 4 - Creating the APK package . 8.4.1 Step 4 - Creating the APK package in Linux . 8.4.2 Step 4 - Creating the APK package in Windows o 8.5 Building an LCL Android application with debug info 9 Oh no! My LCL Android application doesn't work o 9.1 The Pascal executable was compiled for a wrong architecture, operating system and/or widgetset o 9.2 My Pascal application crashed. How to get a stacktrace? o 9.3 The indispensable build options o 9.4 Wrong package name 10 Free Pascal Bugs on Android Support o 10.1 FPC4Android Branches . 10.1.1 FPC4Android 2.5.1 . 10.1.2 FPC4Android 2.6.1 11 Android SDK and NDK bugs o 11.1 Android NDK for Windows broken linker o 11.2 Error while calling DX: Trouble processing: bad class file magic (cafebabe) 12 Development Notes o 12.1 The mysterious JNI Crash o 12.2 NDK Libraries available in Android 2.2 (API level 8) o 12.3 Native text drawing o 12.4 Flood of garbage collector messages when the caret is visible o 12.5 Why the caret of a TEdit keeps blinking after clicking on the form o 12.6 Android ComboBox o 12.7 Using the Native ListView Dialog o 12.8 LazDeviceAPIs Architecture LCL-CustomDrawn-Android utilizes a minimal Java application which communicates with our Pascal library and sends all events to it and also obeys commands from it. The communication is done via JNI as supported by Google. The controls are not native, instead they are all drawing using TRawImage+TLazIntfImage+TLazCanvas and events and the painting are clipped using LazRegions. The drawing itself is done in Pascal using jnigraphics to draw on a Bitmap Java object which is then drawn by the minimal Java activity on a SurfaceView. Our previous and short-lived attempt to write an LCL Interface for Android (LCL-Android) utilized a non-standard method of using native executables which communicated with a Java machine via Pipes. This method was abandoned because it was considered unsupported by Google. It is considered obsolete and people should use LCL-CustomDrawn-Android instead. This older interface was documented in Android Interface. Roadmap Part 1, until March 2012: 1. Build the set of Lazarus Custom Drawn Controls 2. Initial bindings for the Android APIs 3. Create an application to automatically generate the bindings 4. Start the new widgetset 5. Implement support for JNI 6. Merge the Lazarus Custom Drawn Controls into the LCL and use them to implement all basic controls 7. Add text support for Android 8. Implement basic window client area scrolling 9. Add mobile emulator for desktop platforms 10. Improve the mobile scrolling 11. Add text support in X11 12. Add DPI awareness and adaptation in the LCL 13. Add non-native text support via pasfreetype Part 2: April, May, June 2012: 1. TButton improve the Android visual 2. TBitBtn 3. TRadioButton finish the native look 4. Calendar dialog -> Problematic as the LCL has no calendar dialog, it just opens a normal form and puts a calendar on it, so we need a TCDCalendar widget 5. MaskEdit 6. Improve TComboBox 7. TMemo 8. TListView as a list with columns 9. TMainMenu 10. Database with sqlite 11. Barcode reading 12. Windows add-on installer 13. Using the Android SDK, Emulator and Phones Custom Drawn Interface/Using the Android SDK, Emulator and Phones Android Programming Configuring the Free Pascal Compiler for Android NOTE: The cross-compiler instructions below are probably obsolete, since support for the Android target is present in the trunk (development) version 2.7.1 of FPC. Here are up to date instructions: building a cross-compiler for Android target. Use the ready Virtual Box Image with FPC and Lazarus The fastest way to configure Free Pascal and Lazarus for Android development is simply using a pre- configured virtual machine image which already includes Mageia Linux 1, KDE, Lazarus 0.9.31, Subversion, Free Pascal for both x86-linux and arm-linux (targetting Android), the Android SDK, the Android NDK, Java, Ant, Gtk2 and all it's development packages, the GNU debugger (GDB), subversion and everything else necessary for building Android applications with Lazarus. The download like for the virtual machine image is: https://sourceforge.net/projects/p- tools/files/Lazarus_for_Android_VM_Image/snapshot_30_dez_2011/ (warning: the VirtualBox image was created using the Mac OS X default Zip utility and not all zip applications can handle it. The Mac OS X default zip application can, and PeaZip too and WinRAR too. Both 7-Zip and the Windows 7 default unzipper fail. The virtual machine image is composed by two files: “Android Devel VM.vbox” and “Android Devel VM.hdd”. Both need to be located in the same folder and also note that the source forge download is a zipped file, so it needs to be unzipped. After unzipping the VM image has 5,2GB. To use this virtual machine one should install Virtual Box and then use it to open the .vbox file. Then one can already use this Linux virtual machine to build Android applications. The process of building an application involves first opening Lazarus and building the application in Lazarus, for example the example project available on ~/Programas/lazarus/example/androidlcl/ and then going into the Linux terminal, navigating to ~/Programas/lazarus/example/androidlcl/android and issuing the command “ant debug” which will generate the APK file in ~/Programas/ lazarus/example/androidlcl/android/bin/LCLExample-debug.apk. There are two users in the virtual machine: “root” and “pascaldev” and both of them use the password “root”. Note that the virtual machine contains the Lazarus source code from when it was created, but one can also use svn update to get the latest code. Note that this involves some risks, however, as the trunk version might ocasionally contain problems. Building the compiler yourself in Windows Step 1 - Install the Android SDK and NDK Download from Google and install both the SDK and the NDK for Windows. Check your path to the binutils installed by the NDK. For example, for NDK r7 installed in C:\Programas\android-ndk-r7\ the path is C:\Programas\android-ndk-r7\toolchains\arm-linux- androideabi-4.4.3\prebuilt\windows\bin Also check your path to the libraries installed by the NDK. For example, for NDK r7 installed in C:\Programas\android-ndk-r7\ the path is C:\Programas\android-ndk-r7\platforms\android-8\arch- arm\usr Step 2 - Download FPC 2.5.1 from January 19th Create a folder to store the FPC trunk source code and checkout revision 16790 Or if you want support for database and many other nice fixes use the branch fpc4android from here: svn co https://p-tools.svn.sourceforge.net/svnroot/p-tools/fpc4android fpc4android Step 3 - Install FPC 2.4.4 An easy way to obtain a good FPC 2.4.4 is installing Lazarus 0.9.30.2. For example, let's say you install this Lazarus version in C:\Programas\lazarusfpc244 Step 4 - Create the build script and built it Create the output directory, for example: C:\Programas\fpcandroid\output Next create a file called build.bat in the fpc root folder, in our example C:\Programas\fpcandroid and copy to it: SET PATH=C:\Programas\lazarusfpc244\fpc\2.4.4\bin\i386-win32\ make crossinstall CPU_TARGET=arm OS_TARGET=linux CROSSBINDIR=C:\Programas\android- ndk-r7\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin OPT=-dFPC_ARMEL BINUTILSPREFIX=arm-linux-androideabi- INSTALL_PREFIX=C:\Programas\fpcandroid\output pause Next run this batch script and you should have FPC installed into C:\Programas\fpcandroid\output Step 5 - Copy some cross-binutils into the bin dir You now should have a FPC binary in C:\Programas\fpcandroid\output\bin\i386-win32 Now get these 3 files: C:\Programas\android-ndk-r7\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux- androideabi-as.exe C:\Programas\android-ndk-r7\toolchains\arm-linux-androideabi- 4.4.3\prebuilt\windows\bin\arm-linux-androideabi-ld.exe C:\Programas\android-ndk-r7\toolchains\arm- linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-strip.exe And copy and then rename to have: C:\Programas\fpcandroid\output\bin\i386-win32\arm-linux-as.exe C:\Programas\fpcandroid\output\bin\i386-win32\arm-linux-ld.exe C:\Programas\fpcandroid\output\bin\i386-win32\arm-linux-strip.exe Step 6 - Merge this into a Lazarus FPC setup Let's say you have the following Lazarus C:\Programas\lazarus31 with the following fpc installed inside it: C:\Programas\lazarus31\fpc\2.6.1\bin\i386-win32 and C:\Programas\lazarus31\fpc\2.6.1\units\ Now create a directory C:\Programas\lazarus31\fpc\2.5.1\units\arm-linux and copy C:\Programas\fpcandroid\output\units\arm-linux there Copy all .exe files from C:\Programas\fpcandroid\output\bin\i386-win32\ into C:\Programas\lazarus31\fpc\2.6.1\bin\i386-win32 (! copy the exe-files to FPC 2.6.1 !) Now you can already build the example project androidlcltest.lpi using the Windows-Release build mode Using the pre-compiled compiler in Windows
Recommended publications
  • The New String Unicode Type
    The new string unicode type Marco van de Voort December 3, 2010 Version: 0.06 1 Contents 0.1 Introduction . 3 0.1.1 Tiburón . 3 0.1.2 The encodings . 5 0.1.3 Economics of the encodings . 5 0.1.4 Granularity of [] . 6 0.1.4.1 Meaning 1: index means codepoints . 6 0.1.4.2 Meaning II: index means granularity of the en- coding . 6 0.1.4.3 Meaning III: index means character . 6 0.1.4.4 Granularity conclusion . 6 0.2 Requirements . 7 0.2.1 Required new functions. 8 0.2.2 The Windows W problem . 8 0.3 The proposals . 9 0.3.1 Felipe's proposal. 9 0.3.2 Marco's proposal . 10 0.3.2.1 Aliases . 10 0.3.3 Florian's proposal. 11 0.3.3.1 The biggest problem: can't declare what type to expect. 12 0.3.3.2 Existing code . 12 0.3.3.3 The granularity . 12 0.3.3.4 Performance . 13 0.3.3.5 Alternate encodings. 14 0.3.3.6 Florian's response . 14 0.3.3.7 The good points . 15 0.3.4 Yury's proposal . 15 0.3.5 The hybrid model . 15 0.3.5.1 Problems of hybrid: var . 17 2 0.1 Introduction Lately there has been some discussion about a new unicode type, mostly due to a request from the Lazarus team to support unicode in le operations (for lenames, not handling of unicode les). A few proposals were made on the fpc-pascal maillist, abd some discussion followed, but it died out, and there a lot of details of the proposals were only discussed on subthreads.
    [Show full text]
  • Book of Vaadin Vaadin 6 Book of Vaadin: Vaadin 6 Oy IT Mill Ltd Marko Grönroos Vaadin 6.1.0
    Book of Vaadin Vaadin 6 Book of Vaadin: Vaadin 6 Oy IT Mill Ltd Marko Grönroos Vaadin 6.1.0 Published: 2009-09-09 Copyright © 2000-2009 Oy IT Mill Ltd. Abstract Vaadin is a server-side AJAX web application development framework that enables developers to build high-quality user interfaces with Java. It provides a library of ready-to-use user interface components and a clean framework for creating your own components. The focus is on ease-of-use, re-usability, extensibility, and meeting the requirements of large enterprise applications. Vaadin has been used in production since 2001 and it has proven to be suitable for building demanding business applications. All rights reserved. Table of Contents Preface ............................................................................................................................ ix 1. Introduction ................................................................................................................. 1 1.1. Overview ............................................................................................................ 1 1.2. Example Application Walkthrough ........................................................................ 3 1.3. Support for the Eclipse IDE ................................................................................. 4 1.4. Goals and Philosophy ......................................................................................... 4 1.5. Background .......................................................................................................
    [Show full text]
  • Creating a Portable Pascal Codebase
    Creating a portable Pascal codebase. Marco van de Voort March 2, 2012 Current version: 0.04 Versioning I’ve had comments on my (continued) use of the name “Borland”. Let me take this oppurtunity to explain that when I say “Borlanbd” I mean Borland/Inprise/Devco/Codegear/Embarcadero, since I (still) use products that were release under all these names. A lot has happened since the original version. Kylix can be considered dead for all practical purposes nowadays, but with XE2 Borland ventures again into multi-platform land. Tiburon will have a gigantic impact on anything that handles string. The new 2.6.x series is much more Delphi compatible, and the 2.7.x series (trunk) is absorbing Unicode Delphi features. v0.01 The original (2005) version without a version number. v0.02 Updated in 2008 v0.02b minor updates in September 2009 v0.03 Additions during summer 2010 v0.04 Small updates february 2012 1 Introduction There is a lot of (Object) Pascal code available on the web, usually for Turbo Pascal and Delphi. Since Free Pascal supports both these dialects, most code should in theory be recompilable with FPC (and to a lesser degree with other compilers with the appropiate Borland mode). The main showstopper problems are a too big dependancy on dos and 16-bit functionality (TP/BP), or on the Visual part of the VCL (Delphi ). A lot of Delphi code is also too Windows dependant for use on other platforms, but this (the Windows dependance) is no real long term problem for FPC/win32.
    [Show full text]
  • Web Application for Interoperability Testing of Web Services
    Master's Degree in Informatics Engineering Thesis Final Report Web application for interoperability testing of web services Bruno Miguel Filipe Martins [email protected] Supervisor: Prof. Nuno Laranjeiro Date: January 29th, 2016 Master's Degree in Informatics Engineering Thesis Final Report Web application for interoperability testing of web services Author: Bruno Miguel Filipe Martins [email protected] Jury: Prof. Marco Vieira Prof. Carlos Bento Supervisor: Prof. Nuno Laranjeiro Date: January 29th, 2016 WitWS - Web application for interoperability testing of web services Acknowledgments I would like to start by thanking my supervisor, Professor Carlos Nuno Laranjeiro. Without his immeasurable help and guidance this thesis would have been a shadow of itself. To this day I still cannot comprehend how can someone not be completely fed up with me after three meetings a day. His resilience is admirable. To Ivano Elia, for putting up with my endless questions about his previous work. His input throughout the thesis, especially in the testing phase, was invaluable. To Paulo Martins. After a day’s work, after taking care of his own company and after looking for his own family, still having the time to provide me with some tips is nothing short of incredible. To Catarina Lopes, because a long-distance relationship is hard enough without one of the members always complaining about his day. For always having the patience to hear me out even when going through some tough times herself. For understanding that this thesis took a lot more of my time than I expected. And last but definitely not least, to my parents.
    [Show full text]
  • Bakalařská Práce Jiří Lupínek
    ZÁPADO ČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ Katedra elektromechaniky a výkonové elektroniky BAKALÁŘSKÁ PRÁCE Freeware simula ční a vizualiza ční nástroje pro GNU / Linux vedoucí práce: Ing. Martin Janda, Ph.D. 2012 autor: Lupínek Ji ří Freeware simula ční a vizualiza ční nástroje Ji ří Lupínek 2012 pro GNU/Linux Freeware simula ční a vizualiza ční nástroje Ji ří Lupínek 2012 pro GNU/Linux Freeware simula ční a vizualiza ční nástroje Ji ří Lupínek 2012 pro GNU/Linux Anotace Diplomová práce je zaměř ena na porovnávání freeware simula čních a vizualiza čních nástoj ů pro opera ční systém Linux. Práce se zabývá vyhledáním voln ě ši řitelných program ů pro simulace elektronických úloh a jejich zobrazením. Dále také demonstraci použití nasimulováním jednoduché elektrotechnicé úlohy a následným porovnáním z hlediska uživatele. Klí čová slova Linux, elektrotechnická úloha, simulace, instalace, Pascal, C++, freeware, simula ční nástroje, porovnání Freeware simula ční a vizualiza ční nástroje Ji ří Lupínek 2012 pro GNU/Linux Abstract The graduation thesis is about comparing of freeware simulation and visualization programs for operation system Linux (Ubuntu, Mandrake...). It’s about searching for freeware programs for simulation of electrotechnical tasks and their visualization. It also include a use by demonstration on simple electotechnical task and comparison from the view of the user. Key words Linux, electrotechnical task, simulation, instalation, Pascal, C++, freeware, simulation tools, comparizon Freeware simula ční a vizualiza ční nástroje Ji ří Lupínek 2012 pro GNU/Linux Prohlášení Předkládám tímto k posouzení a obhajob ě bakalá řskou práci, zpracovanou na záv ěr bakalá řského studia na Fakult ě elektrotechnické Západo české univerzity v Plzni.
    [Show full text]
  • Das X-Window-System
    X – Window Programmierung Medieninformatik – Hochschule Rhein-Main Systemprogrammierung 2010 Christine Bauers Jan Nowag Kathleen Oehring X – Window Programmierung Gliederung 1. Einführung X Window System 2. Geschichte 3. Archtikektur 4. X – Lib Programmierung 5. Toolkits 6. Verschiednes 1. Einführung in das X – Window - System 1. Einführung X – Window System ● Netzwerkprotokoll ● Client – Server – strukturiert ● Standartbaukasten zur Erstellung graphischer Benutzeroberflächen ● Windowmanager ● Netzwerktransparent Einführung → Geschichte → Architektur → X-lib Programmierung → Toolkits → Verschiedenes 2. Geschichte 2. Geschichte ● 1984 – Entwicklung von u.a. MIT ● 1987 – Version X11 ● 1988 – Gründung des nicht – kommerzielle X – Konsortiums The Open Group ● 1994 – TheOpenGroup uebernahem die Entwicklung Einführung → Geschichte → Architektur → X-lib Programmierung → Toolkits → Verschiedenes 2. Geschichte ● 1994 – Xfree86 erlangt immer größeren wird Standart der X – Implementierung ● 2003 – Xfree löst sich auf X.Org Foundation ● 2004 – Die X – Org Foundation wird gegründet ● 2005 – Die Weiterentwicklung von X.Org, X.Org -Server, ist die meistverbreitete X - Implementierung Einführung → Geschichte → Architektur → X-lib Programmierung → Toolkits → Verschiedenes 3. Architektur 3.1 Client 3.2 Server 3.3 X – Protokoll 3.4 Windowmanager 3.5 Kommunikationsmodell 3.1 Client ● Anwendungsprogramme ● Benutzt graphische Ein – und Ausgabe des Servers ● Kann auf selben Rechener laufen wie Server ● Beispiele: xclock, xcalc, xcalendar ● Spezieller Client:
    [Show full text]
  • Book of Vaadin 4Th Edition Book of Vaadin: 4Th Edition Vaadin Ltd Marko Grönroos 4Th Edition 1St Revision Edition Vaadin Framework 6.7.0
    Book of Vaadin 4th Edition Book of Vaadin: 4th Edition Vaadin Ltd Marko Grönroos 4th Edition 1st Revision Edition Vaadin Framework 6.7.0 Published: 2012-04-18 Copyright © 2000-2012 Vaadin Ltd Abstract Vaadin is a server-side AJAX web application development framework that enables developers to build high-quality user interfaces with Java. It provides a library of ready-to-use user interface components and a clean framework for creating your own components. The focus is on ease-of-use, re-usability, extensibility, and meeting the requirements of large enterprise applications. Vaadin has been used in production since 2001 and it has proven to be suitable for building demanding business applications. All rights reserved. This work is licensed under the Creative Commons CC-BY-ND License Version 2.0 [http://creativecommons.org/licenses/by-nd/2.0/legalcode]. Table of Contents Preface .......................................................................................................................... xiii I. Vaadin Core Framework .................................................................................................. 1 1. Introduction ......................................................................................................... 3 1.1. Overview .................................................................................................... 3 1.2. Example Application Walkthrough ................................................................ 5 1.3. Support for the Eclipse IDE ........................................................................
    [Show full text]
  • 封面LZF Lazarus+Zeosdbo+Firebird 开发者指南
    封面 LZF Lazarus+ZeosDBO+FireBird开发 者指 南 孙晓刚 编著 2012 年 8月第一版 2012 年10月第四版 2013 年 4月第五版 关于作者 本书作者,多年从事基于 Pascal 系开发工具的软件开发工作,对 C,PHP,Java 等均有不同程度掌握。喜欢接触新鲜事物,热爱软件开发工作。现就职于四川某 软件公司。参与或独立开发了文档管理,短信发送,商业系统等多种不同种类的 软件系统,其中有 Browser 模式,也有 Native 模式。对软件开发工作有一定的独 到见解和实际动手能力。业余时间喜欢玩游戏,陪儿子玩耍。 本书的例子都是作者亲自编写 demo 验证通过的,有不足之处还请指正。 您可以如下方式联系作者。 论坛:http://www.FPCcn.com ID: steven QQ: 1565498246 版权声明 版权所有,孙晓刚,作者保留所有权利,未经授权严禁商业使用本书部分或 全部内容。 本书部分资料来自网络,已注明出处、作者,版权归相关个人或组织所有。 本书有源码,如有需要可以联系作者。 特别建议 开源软件、开源社区对软件开发做出了不可估量的贡献,特别是很多免费的 , 造成了百花齐放的美好景象,但有的开源软件逐渐回归商业,也是不得已而为之 。 有句话说得好:“吃的是草,挤出来的是血!”。特别是商业应用,你大把赚钱, 却给开源社区、作者没有任何支持,这毕竟不是长久之计。请支持你所使用开源 社区、软件的开发者。特别是本书提到的几个组织、论坛。 序言 目前市面上没有任何一本完整的书,介绍 Lazarus,Firebird 这两个优秀的开 发工具,同时还有一个作为他们之间桥梁的开发套件 ZeosDBO,也没有任何完 整的中文开发指南,本书以这三种开发套件为主线,顺带介绍 Lazarus 的 组 件 , Firebird 的其他工具。本书也附带介绍一些算法,界面设计,优化等方面的知识。 将带领你走入软件开发实务的殿堂。 什么是 Lazarus?Lazarus 发音:拉轧勒斯。他是一个高稳定的软件集成开发环 境,使用 Object Pascal 语言,内核是 FreePascal 这个 GNU 下很成熟的编译器,他 是一个高效的 RAD 工具,特别适合有 Delphi 开发或其他 RAD 基础的用户。开 发工具越来越便宜,这是不争的事实。现在的很多开发工具都在免费,比如 Eclipse,Apache,Mysql,Tomcat 等等,Lazarus 就是和他们类似的一个开发工具,他 实现了所见所得的快速开发,并且已经有许多开发者基于她进行商业程序开发, 涵盖多个领域。目前为止,已经推出 1.0 式版本,1.1 的每日编译版本,真正稳 定,笔者使用从来没有崩溃过,在0.9.1 版本以前是不可想像的。 Firebird 的前身是开源的 Interbase,有百万用户的实际应用基础,是其他开源 数据库无法比拟的。比较新的调查表明 Firebird 的市场占有率和 Mysql 不相上下 。 Interbase 是Borland 购买的 Ashton-Tate 公司的产品,而 Ashton-Tate 公司又是买 的Groton Database Systems。说到这里不得不说说 Interbase 的作者 Jim Starkey 这个伟大的程序员(算起来应该有 60+岁数了,真的是前辈),也是 Groton Database Systems 公司的创始人,正是他独创性的开发出 Interbase 的(a)多代体系结构(从 Wiki 上查,多代体系结构是另外两位创造的理论体系,但 Interbase 或DEC 公司 是首先实现的,但当时就是
    [Show full text]
  • The Fpgui Widget Set for Free Pascal
    The fpGUI widget set for Free Pascal Michaël Van Canneyt March 31, 2008 Abstract When designing a GUI application, there is a wealth of GUI toolkits (widget sets) that one can use, with various levels of abstraction. Some are cross-platform, some are not. There are few, however, that are implemented completely in Object Pascal. fpGUI is a relatively new widget set that is implemented 100% in object pascal, and in this article we’ll have a closer look at it. 1 Introduction Writing a GUI application would be a very difficult task if one had to use the native win- dowing system of the operating system. Therefor, GUI toolkits or widget sets have been created, that hide the gory details of GUI programming. The widget sets provide com- monly a set of pre-defined widgets (buttons, edit fields, bitmaps, comboboxes, treeviews) that one sees in most programs: these widgets are easy to manipulate, and are usually highly customizable by means of some specialized calls. When creating GUI (graphical) applications in Object Pascal, one has a lot of options. Depending on the required functionality, one has the choice of many GUI toolkits: Native Windows Carbon GTK (version 1 or 2) Qt Lazarus MSEGui PasGF (formerly LPTK) fpGUI The first one will only work on Windows, unless one wishes to use WineLib on unixes. Carbon works only on Mac. Both Qt and GTK are geared towards C or C++, and require large support libraries. Lazarus uses whatever of these 4 is available, to create a native look on all platforms using a single codebase, as much as possible compatible with the VCL from Delphi.
    [Show full text]
  • Help File (.Pdf)
    PeaZip Open source, portable file and archive manager Document revision: 2021 09 07 Author: Giorgio Tani Translation: Giorgio Tani This document refers to: PeaZip 8.2.0 Licensing: Present documentation is released under GNU GFDL License; PeaZip executable implementation is released under GNU LGPL License. PeaZip official website: https://peazip.github.io , https://peazip.org , and https://peazip.sourceforge.io For more information about the licenses: GNU GFDL License, see https://www.gnu.org/licenses/fdl.txt GNU LGPL License, see https://www.gnu.org/licenses/lgpl.txt 1 Content: Basic • How to… 3 • What is PeaZip 5 • File manager 6 Advanced o Enter password 21 o Password manager 22 o Create keyfile 23 o Set advanced filters 24 o File tools 25 • Extract archives 27 • Create/convert archives 31 Expert • Save and schedule tasks 38 • PeaLauncher 40 • Settings and help system 41 Additional information • Supported formats 49 • PeaUtils 51 • Customisation and scripting 52 • Translations 54 • Notes 55 2 How to... This mini-tutorial introduces the most common operations that can be performed through PeaZip, following chapters contains a more detailed explanation. Image 1: high resolution icons, SendTo and context menu integration. The context menu is optionally cascaded, only for Windows 7 or newer systems that supports cascading menus and display icons through static registry entry, which is now recommended over COM methods. System integration can be customized running the installer or in PeaZip in Options > System integration, choosing “Custom installation”. Extract single or multiple archives • From the system o rightclick on the archive(s) and in system’s context menu click "Extract here", "Extract here (smart)" or "Extract here (in new folder)" to extract with no further interaction.
    [Show full text]
  • Open Source, Portable File and Archive Manager
    PeaZip Open source, portable file and archive manager Giorgio Tani <[email protected]> PeaZip PeaZip: Open source, portable file and archive manager by Giorgio Tani Publication date 2013-11-22 Abstract Translation: Giorgio Tani PeaZip official site: http://www.peazip.org/ Licensing: Present documentation is released under GNU GFDL License; PeaZip executable implementation is released under GNU LGPL License. For more information about the licenses: GNU GFDL License, see http://www.gnu.org/licenses/fdl.txt . GNU LGPL License, see http://www.gnu.org/licenses/lgpl.txt . PeaZip 5.2.0 ii PeaZip Table of Contents I. Basic .............................................................................................................................................................. 1 1. How to ... ............................................................................................................................................... 3 Extract single or multiple archives ........................................................................................................ 3 Extract selected content from archive .................................................................................................... 4 Browse or extract password protected archive ......................................................................................... 4 Create archives .................................................................................................................................. 4 Add content to existing archive
    [Show full text]
  • Start Programming Object Pascal
    Start programming using Object Pascal Written by: Motaz Abdel Azeem Edited by: Pat Anderson, Jason Hackney code.sd 18.June.2011 Introduction This book is written for programmers who want to learn the Object Pascal Language. It is also suitable as a first programming book for new students and non-programmers. It illustrates programming techniques in general in addition to the Object Pascal Language. The Object Pascal Language The first appearance of the Pascal Language supporting Object Oriented programming was in 1983 by Apple computer company. After that Borland supported Object Oriented programming for their famous Turbo Pascal line. Object Pascal is a general purpose hybrid (structured and object oriented programming) language. It can be used for a vast range of applications, like learning, game development, business applications, Internet applications, communication applications, tools development, and OS kernels. Delphi After the success of Turbo Pascal, Borland decided to port it to Windows and introduced component driven technology to it. Soon Delphi became the best RAD (Rapid Application Development) tool at that time. The first version of Delphi was released in 1995 with a rich set of components and packages that supported Windows and Database applications development. Free Pascal After Borland dropped support for the Turbo Pascal line, the Free Pascal team started an open source project to write a compatible compiler for Turbo Pascal from scratch, and then make it compatible with Delphi. This time the Free Pascal compiler was targeting additional platforms and operating systems like Windows, Linux, Mac, ARM, and WinCE. Version 1.0 of the Free Pascal compiler was released in July 2000.
    [Show full text]