Linux RAD/GUI Development - PowerPoint PPT Presentation

About This Presentation
Title:

Linux RAD/GUI Development

Description:

Linux RAD/GUI Development. Kylix. Rapid Application Development (RAD), GUI Development for Linux from Borland. by Leland Brode ... – PowerPoint PPT presentation

Number of Views:502
Avg rating:3.0/5.0
Slides: 44
Provided by: Leland4
Category:
Tags: gui | rad | development | linux

less

Transcript and Presenter's Notes

Title: Linux RAD/GUI Development


1
Linux RAD/GUI Development
  • Kylix
  • Rapid Application Development (RAD), GUI
    Development for Linux from Borland

by Leland Brode ELB Software
elbrode2_at_attbi.com
2
Linux GUI Development
  • Presentation Outline
  • Background on GUI Development
  • Overview of Kylix
  • Demo GUI Tools
  • Demo Delphi
  • Demo Kylix

by Leland Brode ELB Software
elbrode2_at_attbi.com
3
Linux GUI Development
  • Kylix
  • RAD/GUI tool for Linux
  • Port of Delphi for Windows
  • Runs on Linux
  • Builds, compiles native Linux applications
  • Cross platform Windows/Linux

4
GUI Dev Background
  • Windows 3.0 1990
  • Generates Messages
  • Basic, COBOL, C
  • All Text
  • Visual Basic 1991
  • First GUI Dev Tool
  • Event Handlers code that runs before or after
    an Event
  • Draw window instead of code it
  • Most widely used language

Visual Basic 6 Bible - Smith Whistler, Marquis
5
GUI Dev Background
  • Other GUI Dev Tools
  • PowerBuilder
  • Visual Age
  • Digitalk, ParcPlace Smalltalk
  • Forte ( now at Sun)
  • Visual C
  • Borland C
  • Borland Delphi
  • Borland CBuilder
  • --------------------------
  • Visual Café - Java
  • JBuilder - Java

6
Linux Developement
  • GNU Linux Toolkit
  • GCC
  • Compiles C, C, Objective C, Fortran
  • Handles Front-ends for Pascal, Modula-3, Ada
  • Distributed with Linux
  • Perl, Shell scripting

7
Linux Developement
  • Qt Class Library
  • C
  • Cross Platform
  • Qt/Windows
  • Qt/X11 (Linux, Solaris, HPUX, AIX, etc)
  • Qt/Mac
  • GPL Free for non-commercial apps
  • Qt was used to build KDE
  • from Trolltech in Norway
  • www.trolltech.com

8
Linux Development
  • Qt Class Libray
  • Qwidget base class
  • Event Handlers
  • mousePressEvent (QMouseEvent )
  • mouseMove Event (
  • mousePressEvent (
  • enterEvent (
  • Class QMouseEvent public Qevent
  • public
  • int x()
  • int y()
  • int button()
  • int state()

Linux Programming Unleashed Kurt Wall - SAMS
9
Linux Development
  • Open Source IDEs
  • KDevelop www.kdevelop.org
  • KDE Studio www.thekompany.com/projects/kdestudio
  • Code Crusader www.newplanetsoftware.com
  • VDK Builder vdkbuilder.sourceforge.net
  • Source-Navigator sources.redhat.com/sourcenav

C/C Users Journal, March 2001 www.cuj.com
10
Delphi Background
  • Borlands Delphi
  • Pascal, plus
  • Borlands implementation of OO in Pascal, plus
  • GUI IDE, plus
  • Visual Component Library (VCL)
  • - encapsulates Windows controls

11
Delphi
  • Pascal
  • Pascal dev by Niklas Wirth (Swiss, 1970)
  • Versions U of C San Diego, Borland
  • Borlands Turbo Pascal 1.0 - ?
  • Turbo Pascal 3.0 for DOS - 1985
  • Object Extensions to Pascal 5.5 - ?
  • Turbo Pascal for Windows - 1991
  • Delphi - OO Pascal 1995
  • polymorphism, inheritance, encapsulation
  • http//www.engin.umd.umich.edu/CIS/course.des/cis4
    00/index.html
  • http//www.emsps.com/oldtools/borpasv.htm

12
Delphi
  • GUI Integrated Development Environment
  • Based on Visual Basic model

13
Delphi
  • IDE
  • project manager
  • keeps track of all source files for a project
  • code editor
  • code completion
  • GUI form designer
  • integrated debugger
  • watch variables
  • change variables
  • breakpoints
  • step through code

14
Kylix
  • Port of Delphi to Linux
  • OO Pascal
  • Delphi IDE
  • native Linux compiler
  • Class Library - CLX
  • Object wrappers for Qt widgets
  • Borland chose Qt over GTK
  • Delphis VCL re-engineered to CLX

15
Kylix
  • Class Libraries
  • CLX is to Kylix
  • VCL is to Delphi, CBuilder
  • MFC is to Visual C
  • Qt is to KDE
  • GTK is to GNOME
  • CLX runs on Linux and Windows

16
Delphi
  • VCL Class Library
  • Object wrappers for Windows Controls
  • TObject
  • TControl __
  • TForm TButton

17
Kylix
  • CLX Class Library
  • Object wrappers for Qt Widgets
  • TObject
  • TControl __
  • TForm Tbutton
  • CLX also in Delphi 6, and CBldr for cross
    platform

18
Kylix
  • Pascal Language
  • Source File Unit
  • Units -gt compile, link -gt executable
  • code - .pas file
  • form - .dfm file
  • ( each form has a .pas file )

19
Kylix
  • Pascal Language
  • Data types
  • Integer 2147483648 to 2147483647
  • Cardinal 0 to 4,294,967,785
  • Byte 0 to 255
  • Double floating point
  • Currency
  • Arrays
  • MyArray array0..10 of Integer // fixed
  • MyArray array of Integer // dynamic
  • SetLength(MyArray, length) // allocates memory
    for dynamic array
  • MyArraylength-1 1,024 // assignment

20
Kylix
  • Pascal Language
  • String dynamic
  • Concat, Copy, Delete, Insert, Length, Pos,
    SetLength
  • Pointers
  • Exceptions
  • Try-except (same as try-catch in java, c)
  • File IO
  • function returns value
  • procedure no return value

21
Kylix
  • Pascal Language - function
  • function Factorial(Number Cardinal) Int64
  • var
  • N Cardinal
  • begin
  • Result 1
  • for N 2 to Number do
  • Result Result N
  • end

22
Kylix
  • Pascal Language class definition
  • type
  • TAccount class
  • private
  • fNumber Cardinal
  • fBalance Currency
  • public
  • procedure WithDraw(Amount Currency)
  • end
  • TSavingsAccount class (TAccount)
  • private
  • fReturnCheck Boolean
  • end
  • TCertificateof Deposit class(TSavingsAccount)
  • private
  • fTerm Cardinal
  • end

23
Kylix
  • Pascal Language use classes
  • var
  • CD1, CD2 TAccount
  • begin
  • CD1 TCertificateofDeposit.Create
  • CD2 TCertificateofDeposit.Create
  • CD1.WithDraw(100.00)
  • CD1.Free
  • CD2.Free
  • end

24
Kylix
  • Pascal Language Records and Arrays
  • type
  • PersonType record
  • LastName String10
  • FirstName String10
  • EmployeeNumber Integer
  • end Persontype
  • MyArrayType array 1..5 of PersonType
  • var
  • PersonArray MyArrayType
  • begin
  • PersonArray1.FirstName Donald
  • PersonArray1.LastName Duck

25
Kylix
  • Pascal Language Components and Arrays
  • var
  • ButtonArray array of TButton
  • i, Num integer
  • begin
  • Num 0
  • for i 0 to Self.ComponentCount 1 do
    // Self same as this in C
  • if Self.Componentsi is TButton then
  • begin
  • Inc(Num)
  • SetLength(ButtonArray, Num)
  • ButtonArrayNum-1 TButton(Componentsi)
  • end
  • end

26
Kylix
  • Pascal Language Comparison
  • Pascal
  • var
  • i Integer
  • begin
  • i 1
  • C
  • int i
  • i 1
  • Perl
  • my i
  • i 1

27
Kylix
  • Pascal Language Comparison

Pascal var i Integer name String20 begin if i 1 then begin name Leland i i 1 end end C int i char name20 if(i 1) strcpy(name, Leland) i i 1 Perl my i my name if(i 1) name Leland i i 1
28
Kylix
  • Pascal Language Comparison
  • Pascal
  • while i lt 100 do Inc(i)
  • C
  • while (i lt 100) i
  • Perl
  • while (i lt 100) i

29
Kylix
  • Pascal Language Comparison
  • Pascal
  • for i 0 to 100 do begin
  • if i 50 then Break
  • end
  • C
  • for( i 0 i lt 100 i)
  • if( i 50) break
  • Perl
  • for( i 0 i lt 100 i)
  • if( i 50) last

30
Kylix
  • Qt
  • access to all Qt Widget public Events and
    Properties
  • Libc
  • access to all libc functions

31
Kylix
  • GUI Applications
  • Database Applications
  • Console Applications
  • Web Server Applications

32
Kylix
  • Linux Multiprocessing apps
  • separate memory, communicate via file system
  • Linux Multithreading apps
  • same memory, share resources
  • TThread base class

33
Kylix
  • GUI Applications - (CLX TForm class)
  • Form1.Canvas.Brush.Color clRed
  • or RGB(255, 0, 0)
  • Form1.Canvas.Rectangle(10, 10, 100, 100)
  • Form1.Canvas.Pen.color clBlack
  • Form1.Canvas.Pen.Width 2
  • Form1.Canvas.MoveTo(0, 20) // draw line
  • Form1.Canvas.LineTo(60, 20) // draw line
  • Form1.Canvas.Font.Name Arial
  • Form1.Canvas.Font.Size 24
  • Form1.Canvas.TextOut(30,1, Hello World) //
    write text

34
Kylix
  • Database Applications
  • db TClientDataSet
  • db.FileName /xxx/nnn/yyy
  • db.Open
  • db.Locate(EmpNum, 124433, )
  • mystring db.FieldValuesLastName

35
Kylix
  • Database Applications
  • db TSQLDataSet
  • db.CommandText select from .
  • db.Open

36
Kylix
  • Database Applications
  • data aware controls
  • automatically fill in data value from database
  • automatically update data value to database
  • controls can be Active while building form

37
Kylix
  • Web Applications
  • - raw CGI
  • or
  • - TWebApplication
  • TCGIApplication

38
Kylix
  • Kylix Versions
  • Kylix 1, 2, 3 (I am using 2)
  • Kylix 1, 2 Delphi (Pascal)
  • Kylix 3 add C Builder (C)
  • Kylix Enterprise - Web, Middleware objects,
    Database objects
  • Kylix Professional - Database objects
  • Kylix Open Edition Build open source apps
    licensed under GNU General Public License

39
Kylix
  • Technical Requirements Kylix 2
  • Pentium 400 Mhz ( I am using 366 Mhz)
  • 128MB RAM ( I am using 192MB)
  • 175MB disk space
  • Red Hat 6.2 or higher (I am using 7.2, Kernel
    2.4.7)
  • SuSE 7.0 or higher

40
Kylix
  • Kylix Download
  • http//www.borland.com/products/downloads/download
    _kylix.html
  • Kylix 3 currently available
  • Kylix 2 ??

41
Kylix
  • FreeCLX Project
  • Open Source CLX Class Library
  • available at SourceForge.net
  • includes BaseCLX, VisualCLX, and DataCLX classes
    (brings full functionality to Kylix Open Edition
    ?)
  • lack of detailed information on FreeCLX

42
Kylix
  • Bibliography
  • Visual Basic Bible, Smith, Whistler, Marquis
  • Delphi in a Nutshell, Ray Lischer, OReilly
  • Linux Programming Unleashed, Kurt Wall, SAMS
  • Object Pascal Language Guide, Borland Delphi 3
    Documentation
  • Teach Yourself Delphi in 21 Days, Osier,
    Grobman, Batson, SAMS
  • Kylix The Professional Developers Guide and
    Reference, Jon Shemitz, Apress
  • Mastering Kylix 2, Cantu Barbini, SYBEX
  • Borland Kylix Developers Guide, Calvert,
    Calvert, Kaster, Swart, SAMS
  • In the Trenches, by Dale Fuller, LINUX
    Magazine, January 2002
  • Product Review of Kylix 2, LINUX Magazine, May
    2002
  • Kylix vs. gcc Development http//community.borla
    nd.com/article/0,1410,28555,00.html
  • Technical Overview of the Kylix Compiler
    http//community.borland.com/article/0,1410,28561,
    00.html
  • Apache Development with Kylix
    http//community.borland.com/article/0,1410,28556,
    00.html
  • Kylix and Qt, excerpts form Kylix newsgroup
    http//community.borland.com/article/0,1410,21850,
    00.html
  • Kylix newsgroup borland.public.kylix,non-techni
    cal

43
Kylix
  • product demo
Write a Comment
User Comments (0)
About PowerShow.com