https://wiki.freepascal.org/api.php?action=feedcontributions&user=Lightning&feedformat=atomLazarus wiki - User contributions [en]2024-03-29T06:38:23ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=Page_Of_Code_Sites&diff=16140Page Of Code Sites2007-01-16T12:36:02Z<p>Lightning: /* How to Write Source Code */</p>
<hr />
<div>' Major sites for Pascal, Delphi and Kylix code '<br />
<br />
* If you have some favorite sites that aren't here, please add them.<br />
<br />
== Super Sites with Components==<br />
<br />
*http://www.delphibasics.co.uk/ <br><br />
*http://www.torry.net/ <br><br />
*http://delphi.icm.edu.pl/ <br />
*http://www.inner-smile.com/delphi5.phtml <br />
*http://www.mers.com/index.html <br />
*http://www.delphi-jedi.org/ <br />
*http://delphi.about.com/ <br />
*http://www.efg2.com/ <br />
*http://pascal-central.com/ special for Mac OS<br />
<br />
Verry good sources, tools, docs:<br />
http://assarbad.net/en/stuff/ <br />
<br />
=== Delphi Free Component Index ===<br />
<br />
[http://www.bsdg.org/resources/Delphi_Free_Components.html HUGE index of free components (download a zipped version below)]<br />
[http://www.bsdg.org/resources/Delphi_Free_Components.zip Download zipped free component index]<br />
<br />
=== Other major sites ===<br />
<br />
*http://archive.devx.com/gethelp/gethelp.asp?Area=Delphi%2FPascal <<br />
*http://www.delphipages.com/ <br />
*http://www.delphi3000.com/ <br />
*http://www.delphicity.net/ <br />
*http://www.delphibasics.co.uk <br />
*http://www.chami.com/ <br />
*http://www.swissdelphicenter.ch/ <br />
*http://www.undu.com/<br />
*http://www.delphifaq.net/index.php <br />
*http://www.delphispirit.com/ <br />
*http://www.delphi32.com/ <br />
*http://www.cyber-matrix.com/delphi.html <br />
*http://www.innotts.co.uk/zephyr/linkslink.html <br />
*http://www.bsdg.org/resources/turbopower.html Listing of Turbopower's SF releases <br />
*http://www.q3.nu/trucomania/ Tips for Delphi programming (English & Spanish) <br />
*http://www.drbob42.com/delphi/index.htm Dr. Bob's Delphi Clinic <br />
*http://cc.borland.com/products.aspx?ProdID=1 Borland Code Central - Delphi<br />
*http://www.pazcal.com/modules/news/ delphi & pascal open source programming <br />
<br />
=== SWAG sites ===<br />
<br />
*http://gdsoft.com/swag/swag.html <br />
*http://www.bsdg.org/swag/index.html<br />
<br />
== Libraries ==<br />
<br />
=== GraphiX, Games, DirectX, OpenGL, OpenAL ===<br />
*http://www.delphi3d.net - OpenGL, Graphics, etc. <br />
*http://www.delphigl.com/index2.php - OpenGL, Graphics, etc. <br />
*http://www.sulaco.co.za - OpenGL, Graphics, etc. <br />
*http://www.delphigamer.com or http://pgd.netstarweb.com - PGD(Pascal Game Developement) <br />
*http://www.noeska.com - OpenGL, OpenAL, Graphics <br />
*http://www.noeska.com/doal - OpenAL <br />
*http://glscene.sourceforge.net/index.php - OpenGL library for Delphi, Kylix and Lazarus <br />
*http://www.sulaco.co.za/quake2 - The famous Quake2 game code translated to Object Pascal <br />
*http://clootie.narod.ru - DirectX for Delphi, C++Builder and FreePascal/Lazarus <br />
<br />
===database===<br />
*http://zeoslib.sourceforge.net/ native database access across different platforms, go-to http://zeos.firmos.at/ to see Zeoslib forum.<br />
*http://sourceforge.net/projects/fibl FreeIBComponents package porting for Lazarus.<br />
*http://source.online.free.fr SQLitePass components allowing connection to databases created with Kexi or SQLite Administrator.<br />
*http://www.progdigy.com/modules.php?name=UIB Database components for Firebird, Interbase and Yaffil<br />
*http://www.instantobjects.org ObjectPascal ORM (Delphy only at the moment)<br />
<br />
===Internet===<br />
*http://curl.haxx.se/libcurl/pascal/ curl is a command line tool for transferring files with URL syntax<br />
*http://www.psp.furtopia.org/cgi-bin/psp/index.psp Free Pascal Web Unit allows you to write binary CGI programs<br />
*http://synapse.ararat.cz/index.htm The SYNAPSE library aims to create a complete library of classes and functions<br />
<br />
===Report===<br />
*http://lazreport.sourceforge.net LazReport it's based on the FreeReport project. This generator it's very fast. LazReport it'nt compatible with FastReport and FreeReport<br />
*http://sourceforge.net/projects/braslib/ Braslibrary is a report and others components pack for Delphi and Lazarus. '''It´s alfa release''' and have a lot of problems, but have a greath potential (p.e. justified text)<br />
*http://reportman.sourceforge.net ReportManager (Delphi only)<br />
<br />
===OLAP===<br />
*http://sourceforge.net/projects/fxds Desicion Cube Components (Delphi only)<br />
<br />
===Log===<br />
http://log4delphi.sourceforge.net/ Log Components (Delphi only at the moment)<br />
<br />
===Parallel Computing===<br />
*http://www.win.tue.nl/~ccremers/pascalmpi/index.html Using LAM/MPI in FreePascal<br />
<br />
== Documentation ==<br />
<br />
<br />
=== Tutorial Sites ===<br />
<br />
*http://ourworld.compuserve.com/homepages/tk_boyd/Tut.htm <br />
*http://www.arrakis.es/~sigecom/SitesIngles.htm<br />
*http://www-rab.larc.nasa.gov/nmp/nmpLinks.htm Numerical Methods in Pascal<br />
<br />
=== How to Write Source Code ===<br />
<br />
Why? Because the code you write should be read with ease by others and even youself.<br />
<br />
[http://community.borland.com/article/0,1410,10280,00.html Borland tutorial] <br><br />
[http://jedicodeformat.sourceforge.net/ JEDI tutorial and tools]<br />
<br />
===Others===<br />
*http://webster.cs.ucr.edu/ - 'Assembly Language Programing' <br />
*http://www.wotsit.org/ - 'Programer's file format collection' <br />
*http://www.gnu.org/manual/manual.html/ GNU <br />
*http://www.cs.utah.edu/dept/old/texinfo/ The Gnu Info Tree<br />
*http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/ds_ToC.html<br />
<br />
<br />
== Contributors to this page ==<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=PageOfCodeSites version].<br />
<br />
Date format: mm/dd/yyyy<br />
<br />
Initial page entry [VlxAdmin] - 9/22/2003 <br><br />
Added Tutorial section [VlxAdmin] - 10/20/2003 <br><br />
Added some links and headings [VlxAdmin] - 10/27/2003 <br><br />
Added Documentation section [DarekMpage] - 4/20/2004 <br><br />
Added Graphics section [[User:Lightning | Razvan]] - 11/5/2004 <br><br />
Added coding tutorials [[User:Lightning | Razvan]] - 11/11/2004 <br><br />
Modified Graphics section [[User:Lightning | Razvan]] - 02/20/2005 <br><br />
Deleted http://www.vclcomponents.com/ Domain is expired [[User:Christian]]</div>Lightninghttps://wiki.freepascal.org/index.php?title=User:Lightning&diff=13869User:Lightning2007-01-09T16:33:03Z<p>Lightning: </p>
<hr />
<div>: Interest: Databases, Graphics, Sound, Hardware and everything that can be done with Object Pascal ;)<br />
: Country: Romania<br />
: IRC: [Lightning] on freenode #fpc #lazarus-ide<br />
<br />
----<br />
<br />
* Started with BP7 for DOS, then Windows, moved directly to D6/D7, programmed in Delphi for some years, played with Kylix1/3, currently trying to improve Lazarus and its documentation.<br />
* Some knowledge of WinAPI, VFW, OpenGL, DB Servers(SQL).<br />
* Some electronics knowlege, also programmed for hardware devices.</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=3280Glossary2005-10-13T22:48:15Z<p>Lightning: /* MAC */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===Assembler, Assembly Language=== An assembler converts human-readable symbols (that represent machine instructions) into the actual binary instructions that the computer executes. For example an assembler would translate<br />
LD a,b # move the contents of location a into location b<br />
into a binary sequence such as <code>01110010</code> which the machine can execute. Assembly language is the list of codified instructions which a programmer can write which the assembler translated into machine code. An assembler differs from a [[Glossary#Compiler|Compiler]] by being processor-specific (ie different assemblers for i386, MC68000, ARM processors etc) and by being much more low-level: it deals with very specific instructions to move data and perform detailed arithmetic. Many compilers (including [[Glossary#FreePascal|FreePascal]]) allow the programmer to embed Assembler sections within the high-level source code; such sections are, of course, only useful using the processor for which they are intended, whereas a [[Glossary#Compiler|Compiler]] can write programs which will work on a variety of different processors.<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
===BASIC===<br />
Beginner's All-purpose Symbolic Instruction Code<br />
<br />
An interpreted computer language once popular as a training tool, or as an experimental tool for programming. Being an [[Glossary#Interpreter|interpreted]] language, it was easy to make changes in your program and see the effects. It was characterised by having a line number for each statement, and the sequence of execution was determined by the order of line numbers. Extra lines could be inserted by giving them intermediate line numbers. The language lacked a proper programming structure: execution could be transferred by using GOTO line number, and it was possible to develop very undisciplined habits by the uncontrolled use of GOTOs - in many ways BASIC was the exact antithesis of Pascal with its emphasis on structured programming.<br />
<br />
BASIC has latterly fallen out of favour, partly because of its inherent defects, partly because of the introduction of languages like [[Glossary#Pascal|Pascal]] and [[Glossary#C|C]], and partly because of the huge improvement in speed of computers and performance of compilers so that proper compiled programs could rapidly be written, executed and debugged. There have been some attempts to improve upon BASIC such as Microsoft's Visual Basic (which has some rudimentary structures and doesn't use line numbers, so there is less emphasis on GOTOs) but these latter variants are almost unrecognisable as BASIC, and owe a lot to C and to several [[Glossary#Command Line Interpreter|Command Line]] or scripting languages. In fact some Visual Basic programs look very like [[Glossary#FreePascal|FreePascal]] or [[Glossary#Lazarus|Lazarus]] programs.<br />
<br />
===Bug===<br />
An error in a program which might cause catastrophic machine failure, failure of the program or simply incorrect performance or output. Derived from the days when computers were constructed with thermionic vacuum tubes, when insects could cause short-circuits between terminals producing hardware failure or unpredictable performance. Most software development teams encourage potential users to report bugs (which are then corrected in subsequent versions) and have a clearly-defined bug-reporting mechanism (for example Lazarus [http://www.lazarus.freepascal.org/mantis/main_page.php BugTracker]).<br />
<br />
==C==<br />
===C programming language=== A widely used computer programming language, particularly useful for system programming. Forms the basis for most of the [[Glossary#Linux|Linux]] operating system, and as far as we can determine, for the [[Glossary#Windows|Windows]] system. Its chief disadvantage is that it is insufficiently rigorous, and allows poor programming practices to creep in. It is also vulnerable to problems such as memory leaks. By contrast, [[Glossary#Pascal|Pascal]] imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.<br />
===C++===<br />
A variant of [[Glossary#C programming language|C]] which includes Object-Oriented Programming constructs.<br />
===C#===<br />
A still more 'advanced' version of C++, heavily supported by Microsoft. Of course, none of the C variants is nearly as good as [[Glossary#Pascal|Pascal]]!<br />
===CCR=== Code and Component Repository<br />
===Command Line Interpreter===<br />
A program present in most computer operating systems which examines an input stream, either from the keyboard (Console Mode) or from a text file (Batch Mode), [[Glossary#Interpreter|interpreting]] or parsing the text to find instructions causing execution of operating system commands or running prepared programs or other scripts of instructions.<br />
<br />
===Compiler=== A program that translates Human-readable source code, usually written in a high-level language such as [[Glossary#FreePascal|FreePascal]], [[Glossary#Delphi|Delphi]], C++, Algol, FORTRAN or ADA, into machine instructions for execution by a computer. Compilation usually involves several stages: Parsing the source code to check for syntax errors, translation of the source code to machine instructions, and linking the resultant code with libraries in order to produce the final machine-executable application.<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===Cross Compilation===<br />
The act of compiling a program on one type of computer for eventual use on another computer with a defferent processoror a different operating system. For example [[Glossary#Pascal|Pascal]] programs can be cross-compiled on a PC running Linux and executed on a PC running Windows, or programs can be compiled on a PC to run on a [[Glossary#PDA|PDA]] like the Sharp [[Glossary#Zaurus|Zaurus]]. Another typical example is the Cross-compilation of the [[Glossary#FreePascal|FreePascal]] Compiler or the [[Glossary#Lazarus|Lazarus]] IDE on one platform such as [[Glossary#Linux|Linux]] for use on another platform such as [[Glossary#Windows|Windows]] or on the [[Glossary#MAC|Mackintosh]] computer using a totally different processor.<br />
<br />
===CrossPlatform=== Usually refers to a program that can be run on several different [[Glossary#OS|OS]]s and Platforms. Examples are the [[Glossary#FreePascal|FreePascal]] compiler and [[Glossary#Lazarus|Lazarus]], the [http://www.openoffice.org OpenOfficeOrg] suite of office programs, the [http://www.mozilla.org Mozilla] family of web browsers and e-mail servers.<br />
<br />
===CVS=== [http://www.cvshome.org/ Concurrent Version System] (see also [[Glossary#SVN|SVN]]). A system for producing orderly development of a software suite despite its use by multiple authors. A repository is set up, from which intending developers can check-out documents or files, and to which they can return edited material. Usually the posting of new or updated material is under the control of one or more moderators or administrators, and strict version control is maintained.<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== An [[Glossary#OpenSource|OpenSource]] [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#Pascal|Pascal]] [[Glossary#Compiler|Compiler]] [http://www.freepascal.org FreePascal Website] wich supports TP/BP, [[Glossary#Delphi|Delphi]]/[[Glossary#Kylix|Kylix]] (Object Pascal) and Apple syntax, also it has some extra addons like C-style macros and operators/symbols, Operator Overloading, auto function overloading and other nice features, it best used with [[Glossary#Lazarus|Lazarus]].<br />
<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Environment<br />
===Interpreter===<br />
A software tool that examines an input stream of computer-language instructions (from the console or from a text-file) and converts them into machine-code instructions which are then immediately executed. This differs from a [[Glossary#Compiler|compiler]] (which converts a whole file into machine instructions and then stores the code for subsequent execution) in that instructions are interpreted line-by-line, and the conversion process has to happen every time the program is run. <br />
<br />
The [[Glossary#Command Line Interpreter|Command-Line interpreters]] in [[Glossary#Linux|Linux]], [[Glossary#Windows|Windows]], IBM systems and DEC PDP and VAX systems are good examples. Several popular programming languages are interpretive rather than compiled. The best examples are BASIC (in all its variants including Visual BASIC), PERL, Python and Java. Interpreted-language programs are generally several orders of magnitude slower than compiled-language programs because of the need to re-interpret the commands before execution every time, but they have the great advantage that changes are easily made, new code can be tested quickly, and often speed is not all that important compared with ease of development. Some languages (including various dialects of BASIC) offer the programmer an opportunity to try out a program first in interpreted mode, then when the program works correctly and no more changes are necessary, the whole program can be compiled to produce a much faster product.<br />
<br />
Some variants of Pascal (including UCSD Pascal from the University of California at San Diego) offered a peculiar combination of compiled and interpreted operation: the textual Pascal source code was first converted into an intermediate P-code, which was then passed on to a P-code Interpreter which translated and executed it.<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
[http://www.linux.org/]<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from Apple, it is famous for its high quality graphics and stability. The latest version [[Glossary#OSX|MAC OS X]] is a combination of Commercial and OpenSource libraries and applications, [[Glossary#OSX|OSX]] is currently capable of running [[Glossary#X11|X11]]. The main disadvantage is that <strike>it doesn't run on x86 CPUs and</strike> the hardware needed to run it is expensive; it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation which is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel which is usually started by the BIOS and it has various libraries which provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console (Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
===OSX===<br />
The latest version of the Macintosh [[Glossary#OS|Operating Systems]], see [[Glossary#MAC|MAC]]<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]. There is an international standard definition of the language (ISO 7185, equivalent to ANSI/IEEE770X3.97), but apart from Gnu Pascal [http://www.gnu-pascal.de/gpc/h-index.html], not many of the modern implementations conform exactly to the Standard. However, they are all essentially similar, and fairly interchangeable. FreePascal, Delphi and many other variants have [[#OO|OO]] extensions.<br />
<br />
===PDA=== Personal Digital Assistant - a pocket-sized (or Palm-sized) device on which information such as address-books, calendars and other useful information can be stored. These devices (such as the Palm-Pilot and the Compaq Pocket-PC) are becoming increasing sophisticated, and the Sharp [[Glossary#Zaurus|Zaurus]] which has a [[Glossary#Linux|Linux]] operating system is a popular vehicle for experimenters and developers. There is a [[Glossary#FreePascal|FreePascal]] cross-compiler available, which allows Pascal programs compiled on a PC to be run on the Zaurus.<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== [http://subversion.tigris.org/ Subversion] - A Versioning document control system designed to improve upon and ultimately to replace [[Glossary#CVS|CVS]]. This is the document management system currently used by both the [[Glossary#FreePascal|FreePascal]] and the [[Glossary#Lazarus|Lazarus]] projects.<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]]. It was written in C and had threading and multi process capabilities; later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today. Others folowed the example and other Operating Systems were born: FreeBSD, OpenBSD, NetBSD and many others; also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
=== WiKi === A type of website that provides documentation for a software package or similar information, and that welcomes editorial activity, additions and comments from the community. Most WiKi sites require potential users to register, and then login in order to edit the site. Documentation can be developed very quickly and flexibly.<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface. The X11 concept is quite different from the Windows GDI mainly because XFree is a program, not just a set of libraries. Because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others. For more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==<br />
=== Zaurus ===<br />
[[Glossary#PDA|PDA]] made by Sharp which uses Linux as its operating system. Its processor is the ARM for which a port of the FreePascal compiler has been made, and it is possible to cross-compile applications in FreePascal which will run on the Zaurus</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Lightning&diff=8330User talk:Lightning2005-10-12T20:55:49Z<p>Lightning: </p>
<hr />
<div>salut<br />
<br />
ai putea sa ma ajuti cu ceva tutoriale sau exemple?<br />
incerc sa trec pe lazarus, dar nu prea am gasit<br />
documentatie pe net, in afara site-urilor oficiale,<br />
decat in spaniola :)<br />
<br />
o zi buna,<br />
edu<br />
<br />
<br />
----<br />
<br />
<br />
Bine ai venit !<br />
<br />
Singurele documentatii sunt astea de pe wiki si helpul care acopera numai RTL momentan ce poate fi apelat din Lazarus cu F1, in principiu nu sunt diferente majore in utilizare fata de Delphi, majoritatea componentelor functioneaza similar, sunt unelel lucruri care le vei afla pe parcurs, iti sugerez sa te inscrii in lista de discutii si sa intri pe IRC, serverul Freenode, canalele #fpc si #lazarus-ide , vei gasi foarte rapid informatii legat de ce ai nevoie.<br />
<br />
----<br />
<br />
incerc sa adaug inregistrari intr-o tabela pe un server mssql, cea mai simpla modalitate pare sa fie prin odbc; singura problema e ca nu am gasit modalitatea de a folosi odbc-ul sub lazarus :D<br />
daca ai gasit vreun tutorial sau vreun exemplu privind odbc, as aprecia un branci in directia potrivita<br />
<br />
edu<br />
<br />
----<br />
<br />
Voi testa sa vad daca versiunea de Lazarus al lui Zeos suporta MSSQL sau macar ADO, ultima oara nu functiona cu MSSQL decat cu MySQL, PostGres si FireBird.<br />
<br />
----<br />
<br />
pana acum m-am legat la firebird si la mssql, merge surprinzator de bine :)<br />
<br />
legatura la baze de date ms access (.mdb si .mde) ar trebui sa se faca prin ado? cel putin in varianta cvs de vineri nu aparea in lista de protocoale.<br />
<br />
----<br />
<br />
Nu stiu exact cand este in plan ADO, nici nu cred ca s-au stresat prea tare cei de la Zeos tinand cont ca Lazarus este crossplatform se asteptau ca userii sa foloseasca un engine CrossPlatform, insa dupa cum probabil stii Sybase este deasemenea suportat si pana la MSSQL7 erau aceelasi produs deaoarece Sybase a lucrat impreuna cu MS la MSSQL.<br />
Poate reusim sa compilam si ADO dar va trebui putin efort, nu stiu in ce masura partea de ActiveX si COM este suportata de FPC.<br />
<br />
----<br />
<br />
- trebuie sa fac un programel de intretinere a unei alte aplicatii, care foloseste mssql sau access 97, in functie de posibilitatile clientului :D<br />
<br />
- partea de mssql e ca si rezolvata cu zeos, mai ramane legatura cu mdb-urile, care se poate face in cel mai rau caz cu ODBC (care poate acoperi si varianta cu mssql).<br />
<br />
- am verificat ce se intampla daca activez ado (in zeos.inc), si crapa la unit-ul "oledb", mai departe nu stiu ce sa ii fac :(<br />
<br />
- am dat de un unit "odbc" la adresa http://membres.lycos.fr/freepascal/, care ar trebui sa mearga, dar era mult mai usor pt mine daca zeos-ul acoperea si ado. stii pe cineva care a mai folosit freepascal si ODBC? pe IRC nu prea e miscare, iar pe google nu am mai gasit nimic altceva decat unit-ul de mai sus, in doua variante.<br />
<br />
----<br />
<br />
Hmm, nu am folosit ODBC inca cu Lazarus era ceva chiar cu el dar nu mai stiu exact, poate gasesti ceva informatii cu search chiar aici pe wiki, nu sunt un fan ODBC dar cred ca e acceptabil ca viteza cu mdb-uri.</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Lightning&diff=3107User talk:Lightning2005-09-26T07:27:57Z<p>Lightning: </p>
<hr />
<div>salut<br />
<br />
ai putea sa ma ajuti cu ceva tutoriale sau exemple?<br />
incerc sa trec pe lazarus, dar nu prea am gasit<br />
documentatie pe net, in afara site-urilor oficiale,<br />
decat in spaniola :)<br />
<br />
o zi buna,<br />
edu<br />
<br />
<br />
----<br />
<br />
<br />
Bine ai venit !<br />
<br />
Singurele documentatii sunt astea de pe wiki si helpul care acopera numai RTL momentan ce poate fi apelat din Lazarus cu F1, in principiu nu sunt diferente majore in utilizare fata de Delphi, majoritatea componentelor functioneaza similar, sunt unelel lucruri care le vei afla pe parcurs, iti sugerez sa te inscrii in lista de discutii si sa intri pe IRC, serverul Freenode, canalele #fpc si #lazarus-ide , vei gasi foarte rapid informatii legat de ce ai nevoie.<br />
<br />
----<br />
<br />
incerc sa adaug inregistrari intr-o tabela pe un server mssql, cea mai simpla modalitate pare sa fie prin odbc; singura problema e ca nu am gasit modalitatea de a folosi odbc-ul sub lazarus :D<br />
daca ai gasit vreun tutorial sau vreun exemplu privind odbc, as aprecia un branci in directia potrivita<br />
<br />
edu<br />
<br />
----<br />
<br />
Voi testa sa vad daca versiunea de Lazarus al lui Zeos suporta MSSQL sau macar ADO, ultima oara nu functiona cu MSSQL decat cu MySQL, PostGres si FireBird.<br />
<br />
----<br />
<br />
pana acum m-am legat la firebird si la mssql, merge surprinzator de bine :)<br />
<br />
legatura la baze de date ms access (.mdb si .mde) ar trebui sa se faca prin ado? cel putin in varianta cvs de vineri nu aparea in lista de protocoale.<br />
<br />
----<br />
<br />
Nu stiu exact cand este in plan ADO, nici nu cred ca s-au stresat prea tare cei de la Zeos tinand cont ca Lazarus este crossplatform se asteptau ca userii sa foloseasca un engine CrossPlatform, insa dupa cum probabil stii Sybase este deasemenea suportat si pana la MSSQL7 erau aceelasi produs deaoarece Sybase a lucrat impreuna cu MS la MSSQL.<br />
Poate reusim sa compilam si ADO dar va trebui putin efort, nu stiu in ce masura partea de ActiveX si COM este suportata de FPC.</div>Lightninghttps://wiki.freepascal.org/index.php?title=Getting_Lazarus&diff=3076Getting Lazarus2005-09-22T12:10:43Z<p>Lightning: /* Using SVN */</p>
<hr />
<div>== Via SVN ==<br />
=== Getting SVN ===<br />
You may download a SVN Client for Windows in http://tortoisesvn.tigris.org/<br />
A SVN command line client is available from the official SVN [http://subversion.tigris.org/| website] for many platforms including Linux and Windows.<br />
<br />
=== Using SVN ===<br />
To get Lazarus for the first time:<br />
<br />
Open a terminal/command prompt, change to the directory you wish the Lazarus folder to be created in and type:<br />
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
<br />
To update Lazarus sources:<br />
<br />
Open a terminal/command prompt, change to the lazarus directory and type:<br />
svn update<br />
<br />
<br />
<br />
[[user:Lightning|Lightning]]:<br />
Here is a windows batch script that takes care of checking out and updating '''Lazarus''' from '''SVN''' to a subdirectory and even basic error fixing, because i have no way of knowing where Lazarus is installed it cannot compile or copy the files to your working Lazarus instalation.<br />
Please save the script as '''getlaz.bat''' or some other name, however there is no warranty of any kind, use at your own risk, put it in a test directory first and make sure there is no subdirectory already called '''lazarus'''.<br />
<br />
@REM Script for checkout and update Lazarus from SVN<br />
@echo.<br />
<br />
@REM Check if lazarus directory exists to update or checkout first<br />
@if not exist lazarus goto CheckoutLaz<br />
@echo Updating Lazarus, please wait ...<br />
@cd lazarus<br />
svn update<br />
@if not %errorlevel% == 0 goto CleanupLaz<br />
@cd..<br />
@goto Exit<br />
<br />
:CheckoutLaz<br />
@echo Checking out Lazarus for the first time, this might take a while ...<br />
svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
@goto Exit<br />
<br />
:CleanupLaz<br />
@echo.<br />
@echo Something went wrong, trying to fix any problems if possible ...<br />
svn cleanup<br />
@if not %errorlevel% == 0 goto CleanupFailedLaz<br />
@cd..<br />
@echo.<br />
@echo Cleanup complete please run the script again.<br />
goto Exit<br />
:CleanupFailedLaz<br />
@cd..<br />
@echo.<br />
@echo Cleanup Failed ! Please check or delete/move/rename the lazarus subdirectory ...<br />
<br />
:Exit<br />
<br />
<br />
[[user:Matthijs|Matthijs]]:<br />
'''WARNING: This script is still assuming lazarus has its source in a CVS repository'''<br />
In Linux I use a script (it is not very sophisticated, but does the trick) to download the latest CVS-version for Lazarus. Before I copy it here I'll explain my system.<br />
In my home-directory I have a special cvsroot-directory. In this directory I have a script for downloading Lazarus and other interesting projects. Lazarus is installed in /usr/share/lazarus. Before building a new version from CVS I make a backup, just in case the current cvs is unstable. This is done by moving the /usr/share/lazarus directory to /usr/share/lazarus.bu<br />
To adapt the script to your system you only need to alter the constants defined at the start of the script.<br />
But without further ado, here is the script. But (big but) it is given without any guarantee. :) If things break you are on your own.<br />
<br />
#!/bin/bash<br />
<br />
#Define some directories<br />
BASEDIR=/usr/share/<br />
LAZCVSDIR=~/cvsroot/lazarus/<br />
LAZDIR=/usr/share/lazarus/<br />
LAZBACKUP=/usr/share/lazarus.bu<br />
<br />
#Remove old backup if it exists<br />
date +"%T %tStart"<br />
if [ -d $LAZBACKUP ]<br />
then <br />
date +"%T %tRemoving old backup"<br />
rm $LAZBACKUP -r<br />
else<br />
date +"%T %tNo backup to remove"<br />
fi<br />
<br />
date +"%T %tCreating copy of lazarus dir"<br />
cp -R $LAZDIR $LAZBACKUP<br />
<br />
#Getting stuff from cvs<br />
export CVSROOT=:pserver:cvs:cvs@cvs.freepascal.org:/FPC/CVS<br />
date +"%T %tLogin to cvs server"<br />
cvs login > /dev/null<br />
date +"%T %tUpdate lazarus"<br />
cvs -z3 update -dP lazarus > ~/cvs_update.log<br />
date +"%T %tLogout of cvs-server"<br />
cvs logout > /dev/null<br />
<br />
#Copying cvs-files to our laz dir.<br />
date +"%T %tcopying files"<br />
cp -Rf $LAZCVSDIR $BASEDIR --reply=yes<br />
<br />
#Make and building of lazarus<br />
date +"%T %tmake lazarus" <br />
cd $LAZDIR<br />
make > /dev/null<br />
date +"%T %tmake the packages"<br />
make idepkg > /dev/null<br />
date +"%T %tFinished"<br />
<br />
== Daily Snapshot method ==<br />
<br />
If you don't want to use svn directly, a daily snapshot of the current cvs is available from the [http://www.de.freepascal.org/lazarus/ lazarus snapshot site] or one of its mirrors.<br />
<br />
== Downloading releases ==<br />
<br />
Binary releases for various platforms are also available via the [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus Sourceforge download area].<br />
<br />
=Original contributors and changes=<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=GettingLazarus version].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Getting_Lazarus&diff=3047Getting Lazarus2005-09-22T12:06:09Z<p>Lightning: /* Using SVN */</p>
<hr />
<div>== Via SVN ==<br />
=== Getting SVN ===<br />
You may download a SVN Client for Windows in http://tortoisesvn.tigris.org/<br />
A SVN command line client is available from the official SVN [http://subversion.tigris.org/| website] for many platforms including Linux and Windows.<br />
<br />
=== Using SVN ===<br />
To get Lazarus for the first time:<br />
<br />
Open a terminal/command prompt, change to the directory you wish the Lazarus folder to be created in and type:<br />
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
<br />
To update Lazarus sources:<br />
<br />
Open a terminal/command prompt, change to the lazarus directory and type:<br />
svn update<br />
<br />
<br />
<br />
[[user:Lightning|Lightning]]:<br />
Here is a windows batch script that takes care of checking out and updating '''Lazarus''' from '''SVN''' to a subdirectory and even basic error fixing, because i have no way of knowing where Lazarus is installed it cannot compile or copy the files to your working Lazarus instalation.<br />
<br />
@REM Script for checkout and update Lazarus from SVN<br />
@echo.<br />
<br />
@REM Check if lazarus directory exists to update or checkout first<br />
@if not exist lazarus goto CheckoutLaz<br />
@echo Updating Lazarus, please wait ...<br />
@cd lazarus<br />
svn update<br />
@if not %errorlevel% == 0 goto CleanupLaz<br />
@cd..<br />
@goto Exit<br />
<br />
:CheckoutLaz<br />
@echo Checking out Lazarus for the first time, this might take a while ...<br />
svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
@goto Exit<br />
<br />
:CleanupLaz<br />
@echo.<br />
@echo Something went wrong, trying to fix any problems if possible ...<br />
svn cleanup<br />
@if not %errorlevel% == 0 goto CleanupFailedLaz<br />
@cd..<br />
@echo.<br />
@echo Cleanup complete please run the script again.<br />
goto Exit<br />
:CleanupFailedLaz<br />
@cd..<br />
@echo.<br />
@echo Cleanup Failed ! Please check or delete/move/rename the lazarus subdirectory ...<br />
<br />
:Exit<br />
<br />
<br />
[[user:Matthijs|Matthijs]]:<br />
'''WARNING: This script is still assuming lazarus has its source in a CVS repository'''<br />
In Linux I use a script (it is not very sophisticated, but does the trick) to download the latest CVS-version for Lazarus. Before I copy it here I'll explain my system.<br />
In my home-directory I have a special cvsroot-directory. In this directory I have a script for downloading Lazarus and other interesting projects. Lazarus is installed in /usr/share/lazarus. Before building a new version from CVS I make a backup, just in case the current cvs is unstable. This is done by moving the /usr/share/lazarus directory to /usr/share/lazarus.bu<br />
To adapt the script to your system you only need to alter the constants defined at the start of the script.<br />
But without further ado, here is the script. But (big but) it is given without any guarantee. :) If things break you are on your own.<br />
<br />
#!/bin/bash<br />
<br />
#Define some directories<br />
BASEDIR=/usr/share/<br />
LAZCVSDIR=~/cvsroot/lazarus/<br />
LAZDIR=/usr/share/lazarus/<br />
LAZBACKUP=/usr/share/lazarus.bu<br />
<br />
#Remove old backup if it exists<br />
date +"%T %tStart"<br />
if [ -d $LAZBACKUP ]<br />
then <br />
date +"%T %tRemoving old backup"<br />
rm $LAZBACKUP -r<br />
else<br />
date +"%T %tNo backup to remove"<br />
fi<br />
<br />
date +"%T %tCreating copy of lazarus dir"<br />
cp -R $LAZDIR $LAZBACKUP<br />
<br />
#Getting stuff from cvs<br />
export CVSROOT=:pserver:cvs:cvs@cvs.freepascal.org:/FPC/CVS<br />
date +"%T %tLogin to cvs server"<br />
cvs login > /dev/null<br />
date +"%T %tUpdate lazarus"<br />
cvs -z3 update -dP lazarus > ~/cvs_update.log<br />
date +"%T %tLogout of cvs-server"<br />
cvs logout > /dev/null<br />
<br />
#Copying cvs-files to our laz dir.<br />
date +"%T %tcopying files"<br />
cp -Rf $LAZCVSDIR $BASEDIR --reply=yes<br />
<br />
#Make and building of lazarus<br />
date +"%T %tmake lazarus" <br />
cd $LAZDIR<br />
make > /dev/null<br />
date +"%T %tmake the packages"<br />
make idepkg > /dev/null<br />
date +"%T %tFinished"<br />
<br />
== Daily Snapshot method ==<br />
<br />
If you don't want to use svn directly, a daily snapshot of the current cvs is available from the [http://www.de.freepascal.org/lazarus/ lazarus snapshot site] or one of its mirrors.<br />
<br />
== Downloading releases ==<br />
<br />
Binary releases for various platforms are also available via the [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus Sourceforge download area].<br />
<br />
=Original contributors and changes=<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=GettingLazarus version].</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Edutu&diff=3048User talk:Edutu2005-09-21T17:15:59Z<p>Lightning: </p>
<hr />
<div>Voi testa daca zeos suporta MSSQL in Lazarus sau ADO, ultima data nu functiona decat cu MySQL, PostGres si FireBird.<br />
<br />
Exista suport pentru MSSQL dar nu am MSSQL ca sa pot testa, incearca si vezi cum se comporta.<br />
<br />
o sa incerc, multumesc pt sfat. am mai gasit si libsql, sper sa ii dau de cap :D<br />
<br />
----<br />
<br />
libsql e de la MS sau ? Eu zic sa iei si [[Zeos_tutorial|Zeos]] daca merge o sa-ti placa.</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Edutu&diff=3021User talk:Edutu2005-09-19T17:04:00Z<p>Lightning: </p>
<hr />
<div>Voi testa daca zeos suporta MSSQL in Lazarus sau ADO, ultima data nu functiona decat cu MySQL, PostGres si FireBird.<br />
<br />
Exista suport pentru MSSQL dar nu am MSSQL ca sa pot testa, incearca si vezi cum se comporta.</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Edutu&diff=3015User talk:Edutu2005-09-18T12:58:26Z<p>Lightning: </p>
<hr />
<div>Voi testa daca zeos suporta MSSQL in Lazarus sau ADO, ultima data nu funtiona decat cu MySQL, PostGres si FireBird.</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Lightning&diff=3063User talk:Lightning2005-09-18T12:56:24Z<p>Lightning: </p>
<hr />
<div>salut<br />
<br />
ai putea sa ma ajuti cu ceva tutoriale sau exemple?<br />
incerc sa trec pe lazarus, dar nu prea am gasit<br />
documentatie pe net, in afara site-urilor oficiale,<br />
decat in spaniola :)<br />
<br />
o zi buna,<br />
edu<br />
<br />
<br />
----<br />
<br />
<br />
Bine ai venit !<br />
<br />
Singurele documentatii sunt astea de pe wiki si helpul care acopera numai RTL momentan ce poate fi apelat din Lazarus cu F1, in principiu nu sunt diferente majore in utilizare fata de Delphi, majoritatea componentelor functioneaza similar, sunt unelel lucruri care le vei afla pe parcurs, iti sugerez sa te inscrii in lista de discutii si sa intri pe IRC, serverul Freenode, canalele #fpc si #lazarus-ide , vei gasi foarte rapid informatii legat de ce ai nevoie.<br />
<br />
----<br />
<br />
incerc sa adaug inregistrari intr-o tabela pe un server mssql, cea mai simpla modalitate pare sa fie prin odbc; singura problema e ca nu am gasit modalitatea de a folosi odbc-ul sub lazarus :D<br />
daca ai gasit vreun tutorial sau vreun exemplu privind odbc, as aprecia un branci in directia potrivita<br />
<br />
edu<br />
<br />
----<br />
<br />
Voi testa sa vad daca versiunea de Lazarus al lui Zeos suporta MSSQL sau macar ADO, ultima oara nu functiona cu MSSQL decat cu MySQL, PostGres si FireBird.</div>Lightninghttps://wiki.freepascal.org/index.php?title=Getting_Lazarus&diff=2956Getting Lazarus2005-09-15T12:17:17Z<p>Lightning: /* Via SVN */</p>
<hr />
<div>== Via SVN ==<br />
'''<font color=red>Lazarus CVS is not used anymore, please use SVN instead.</font>'''<br />
<br />
=== Getting SVN ===<br />
You may download a SVN Client for Windows in http://tortoisesvn.tigris.org/<br />
A SVN command line client is available from the official SVN [http://subversion.tigris.org/| website] for many platforms including Linux and Windows.<br />
<br />
=== Using SVN ===<br />
To get Lazarus for the first time:<br />
<br />
Open a terminal/command prompt, change to the directory you wish the Lazarus folder to be created in and type:<br />
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
<br />
To update Lazarus sources:<br />
<br />
Open a terminal/command prompt, change to the lazarus directory and type:<br />
svn update<br />
<br />
[[user:Matthijs]]:<br />
'''WARNING: This script is still assuming lazarus has its source in a CVS repository'''<br />
In Linux I use a script (it is not very sophisticated, but does the trick) to download the latest CVS-version for Lazarus. Before I copy it here I'll explain my system.<br />
In my home-directory I have a special cvsroot-directory. In this directory I have a script for downloading Lazarus and other interesting projects. Lazarus is installed in /usr/share/lazarus. Before building a new version from CVS I make a backup, just in case the current cvs is unstable. This is done by moving the /usr/share/lazarus directory to /usr/share/lazarus.bu<br />
To adapt the script to your system you only need to alter the constants defined at the start of the script.<br />
But without further ado, here is the script. But (big but) it is given without any guarantee. :) If things break you are on your own.<br />
<br />
#!/bin/bash<br />
<br />
#Define some directories<br />
BASEDIR=/usr/share/<br />
LAZCVSDIR=~/cvsroot/lazarus/<br />
LAZDIR=/usr/share/lazarus/<br />
LAZBACKUP=/usr/share/lazarus.bu<br />
<br />
#Remove old backup if it exists<br />
date +"%T %tStart"<br />
if [ -d $LAZBACKUP ]<br />
then <br />
date +"%T %tRemoving old backup"<br />
rm $LAZBACKUP -r<br />
else<br />
date +"%T %tNo backup to remove"<br />
fi<br />
<br />
date +"%T %tCreating copy of lazarus dir"<br />
cp -R $LAZDIR $LAZBACKUP<br />
<br />
#Getting stuff from cvs<br />
export CVSROOT=:pserver:cvs:cvs@cvs.freepascal.org:/FPC/CVS<br />
date +"%T %tLogin to cvs server"<br />
cvs login > /dev/null<br />
date +"%T %tUpdate lazarus"<br />
cvs -z3 update -dP lazarus > ~/cvs_update.log<br />
date +"%T %tLogout of cvs-server"<br />
cvs logout > /dev/null<br />
<br />
#Copying cvs-files to our laz dir.<br />
date +"%T %tcopying files"<br />
cp -Rf $LAZCVSDIR $BASEDIR --reply=yes<br />
<br />
#Make and building of lazarus<br />
date +"%T %tmake lazarus" <br />
cd $LAZDIR<br />
make > /dev/null<br />
date +"%T %tmake the packages"<br />
make idepkg > /dev/null<br />
date +"%T %tFinished"<br />
<br />
== Daily Snapshot method ==<br />
<br />
If you don't want to use svn directly, a daily snapshot of the current cvs is available from the [http://www.de.freepascal.org/lazarus/ lazarus snapshot site] or one of its mirrors.<br />
<br />
== Downloading releases ==<br />
<br />
Binary releases for various platforms are also available via the [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus Sourceforge download area].<br />
<br />
=Original contributors and changes=<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=GettingLazarus version].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Getting_Lazarus&diff=2955Getting Lazarus2005-09-15T12:16:46Z<p>Lightning: /* Via SVN */</p>
<hr />
<div>== Via SVN ==<br />
'''<font color=red>Lazarus CVS is not used anymore, plase use SVN instead.</font>'''<br />
<br />
=== Getting SVN ===<br />
You may download a SVN Client for Windows in http://tortoisesvn.tigris.org/<br />
A SVN command line client is available from the official SVN [http://subversion.tigris.org/| website] for many platforms including Linux and Windows.<br />
<br />
=== Using SVN ===<br />
To get Lazarus for the first time:<br />
<br />
Open a terminal/command prompt, change to the directory you wish the Lazarus folder to be created in and type:<br />
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus<br />
<br />
To update Lazarus sources:<br />
<br />
Open a terminal/command prompt, change to the lazarus directory and type:<br />
svn update<br />
<br />
[[user:Matthijs]]:<br />
'''WARNING: This script is still assuming lazarus has its source in a CVS repository'''<br />
In Linux I use a script (it is not very sophisticated, but does the trick) to download the latest CVS-version for Lazarus. Before I copy it here I'll explain my system.<br />
In my home-directory I have a special cvsroot-directory. In this directory I have a script for downloading Lazarus and other interesting projects. Lazarus is installed in /usr/share/lazarus. Before building a new version from CVS I make a backup, just in case the current cvs is unstable. This is done by moving the /usr/share/lazarus directory to /usr/share/lazarus.bu<br />
To adapt the script to your system you only need to alter the constants defined at the start of the script.<br />
But without further ado, here is the script. But (big but) it is given without any guarantee. :) If things break you are on your own.<br />
<br />
#!/bin/bash<br />
<br />
#Define some directories<br />
BASEDIR=/usr/share/<br />
LAZCVSDIR=~/cvsroot/lazarus/<br />
LAZDIR=/usr/share/lazarus/<br />
LAZBACKUP=/usr/share/lazarus.bu<br />
<br />
#Remove old backup if it exists<br />
date +"%T %tStart"<br />
if [ -d $LAZBACKUP ]<br />
then <br />
date +"%T %tRemoving old backup"<br />
rm $LAZBACKUP -r<br />
else<br />
date +"%T %tNo backup to remove"<br />
fi<br />
<br />
date +"%T %tCreating copy of lazarus dir"<br />
cp -R $LAZDIR $LAZBACKUP<br />
<br />
#Getting stuff from cvs<br />
export CVSROOT=:pserver:cvs:cvs@cvs.freepascal.org:/FPC/CVS<br />
date +"%T %tLogin to cvs server"<br />
cvs login > /dev/null<br />
date +"%T %tUpdate lazarus"<br />
cvs -z3 update -dP lazarus > ~/cvs_update.log<br />
date +"%T %tLogout of cvs-server"<br />
cvs logout > /dev/null<br />
<br />
#Copying cvs-files to our laz dir.<br />
date +"%T %tcopying files"<br />
cp -Rf $LAZCVSDIR $BASEDIR --reply=yes<br />
<br />
#Make and building of lazarus<br />
date +"%T %tmake lazarus" <br />
cd $LAZDIR<br />
make > /dev/null<br />
date +"%T %tmake the packages"<br />
make idepkg > /dev/null<br />
date +"%T %tFinished"<br />
<br />
== Daily Snapshot method ==<br />
<br />
If you don't want to use svn directly, a daily snapshot of the current cvs is available from the [http://www.de.freepascal.org/lazarus/ lazarus snapshot site] or one of its mirrors.<br />
<br />
== Downloading releases ==<br />
<br />
Binary releases for various platforms are also available via the [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus Sourceforge download area].<br />
<br />
=Original contributors and changes=<br />
<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=GettingLazarus version].</div>Lightninghttps://wiki.freepascal.org/index.php?title=User_talk:Lightning&diff=2961User talk:Lightning2005-09-15T05:13:02Z<p>Lightning: </p>
<hr />
<div>salut<br />
<br />
ai putea sa ma ajuti cu ceva tutoriale sau exemple?<br />
incerc sa trec pe lazarus, dar nu prea am gasit<br />
documentatie pe net, in afara site-urilor oficiale,<br />
decat in spaniola :)<br />
<br />
o zi buna,<br />
edu<br />
<br />
<br />
----<br />
<br />
<br />
Bine ai venit !<br />
<br />
Singurele documentatii sunt astea de pe wiki si helpul care acopera numai RTL momentan ce poate fi apelat din Lazarus cu F1, in principiu nu sunt diferente majore in utilizare fata de Delphi, majoritatea componentelor functioneaza similar, sunt unelel lucruri care le vei afla pe parcurs, iti sugerez sa te inscrii in lista de discutii si sa intri pe IRC, serverul Freenode, canalele #fpc si #lazarus-ide , vei gasi foarte rapid informatii legat de ce ai nevoie.<br />
<br />
Trebuia sa-mi dai si numele tau de pe wiki sau un mail ceva ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=3551Zeos tutorial/pt2005-09-05T00:24:40Z<p>Lightning: /* Getting Zeos */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeosdbo_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
* For every day usage do not use checkout but instead go to the zeosdbo_rework directory and type '''cvs -z3 update -P'''<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br><br />
<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]<br />
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.<br />
<br><br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2777Zeos tutorial/pt2005-08-30T15:51:43Z<p>Lightning: /* Getting Zeos */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
* For every day usage do not use checkout but instead go to the zeosdbo_rework directory and type '''cvs -z3 update -P'''<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br><br />
<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]<br />
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.<br />
<br><br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2693Zeos tutorial/pt2005-08-30T15:49:39Z<p>Lightning: /* Getting Zeos */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br><br />
<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]<br />
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.<br />
<br><br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2692Zeos tutorial/pt2005-08-30T15:38:30Z<p>Lightning: /* Possible Bugs and Issues */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br><br />
<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]<br />
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.<br />
<br><br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed soon, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2691Zeos tutorial/pt2005-08-30T13:38:55Z<p>Lightning: </p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
Here you can find some really useful articles explaining Zeos usage and it's internals, some of them also talk about Delphi specific stuff but mostly the same techniques can be used in Lazarus too.<br><br />
<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=6 The ZeosLib DBOs 6.1.5 - With Delphi 7 and Firebird 1.5]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=4 Overview of the Zeos Database Objects Architecture]<br />
* [http://seegernet.koolhost.de/zeosforum/kb.php?mode=article&k=5 An Introduction To ZDBC API]<br />
* Also check the [http://seegernet.koolhost.de/zeosforum/downloads.php Downloads] section for real examples wich can be easily ported to Lazarus.<br />
<br><br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed this week, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2688Zeos tutorial/pt2005-08-29T11:20:35Z<p>Lightning: /* Installing the components */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Make sure you have the latest [http://www.de.freepascal.org/lazarus/ Lazarus snapshot].<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed this week, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2681Zeos tutorial/pt2005-08-29T11:16:51Z<p>Lightning: </p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''<br />
<br />
== Possible Bugs and Issues ==<br />
<br />
# I have noticed that somethimes when buliding Lazarus it cannot find some Zeos files, as a quick workaround try this:<br />
#* Use '''Components/Package Graph''' from the main menu.<br />
#* Open the '''ZComponent''' package.<br />
#* Right Click on the '''Files''' item in the list.<br />
#* Chose '''[Recompile all required]'''.<br />
#* When asked "Re-Compile this and all required packages?" answer '''[Yes]'''.<br />
#* Recompile Lazarus normally (with packages).<br><br><br />
# There is a bug in [[Glossary#Freepascal|FPC's]] [http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/ansistrcomp.html AnsiStrComp] wich causes unreliable PChar comparison, this is obvious when using a DBGrid to edit data, '''AnsiStrComp('abc', 'abcd')''' can't detect them as being different but it detects '''AnsiStrComp('abd', 'abcd')''' ignoring multiple chars from the second string. This bug was found by [[User:Jesusrmx|Jesusrmx]]. It will probably be fixed this week, see [http://www.freepascal.org/bugs/showrec.php3?ID=4325 Bug Report].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2680Zeos tutorial/pt2005-08-29T10:11:30Z<p>Lightning: /* Overview */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br><br />
<br><br />
'''<font color=navy>The Zeos team has recently made a new forum, Please visit the new forum for more information about ZeosLib and to ask/answer questions about using Zeos and report bugs. The new forum can be found here [http://forum.zeoslib.net.ms Forum for ZeosLib] or here [http://zeosforum.net.ms Zeos Forum]</font>'''<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Current_conversion_projects&diff=3054Current conversion projects2005-08-27T19:13:47Z<p>Lightning: /* ZEOS Data Objects */</p>
<hr />
<div>==Applications==<br />
'''Add an application you're converting here'''<br />
<br />
==Components==<br />
===Large Display Components===<br />
Almost finished:<br />
* TLCD99<br />
* TLCDLabel<br />
* TAnalogueclock<br />
Everthing compiles for SGraph 2.4 except the data series unit that requires the variant support that's coming with the 1.9 branch of FPC.<br />
<br />
I've also converted a small trend recorder variant of Mark Dodson's original but I'm thinking about rewriting it. If anyone is interested in any of these components, let me know. - [[User:VlxAdmin|VlxAdmin]]<br />
<br />
===Indy===<br />
[http://www.indyproject.org/ Internet Direct (Indy)] is an open source TCP/IP socket component suite comprised of popular Internet protocols. For more info see [http://indy4lazarus.sourceforge.net/ indy4lazarus].<br />
<br />
===FormStorage===<br />
[http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986 FormStorage] <br />
is a component to save all selected properties of a form in an xml file.<br />
<br />
==Libraries/headers==<br />
===dxGetText===<br />
[[dxGetText | Lazarus dxGetText]] is a conversion by [http://sourceforge.net/users/golivier/ Olivier Guilbaud] of the [http://dybdahl.dk/dxgettext/ dxGetText project]. From the dxGetTest website: "Initially, this project used a Windows port of the GNU gettext library, but has made it much further and today it is a complete reimplementation of the GNU gettext library with many enhancements".<br />
<br />
==Requested Components==<br />
===devphp===<br />
[http://sourceforge.net/projects/devphp/ devphp] is an IDE for PHP written in Delphi/Kylix. It's got a lot of nice features and would be very handy to have compiling under Lazarus. The author has run out of time to work on it so it would probably be a good candidate for conversion. [[User:VlxAdmin|Tom]]<br />
<br />
===ZEOS Data Objects===<br />
[http://sourceforge.net/projects/zeoslib ZEOS Data Objects] is a set of components for accessing directly the various dabase backends that you might need to. MySQL, Postgres and others, on Delphi it compiles directly into the .exe, only requiring that you have the appropriate DLL installed (postgres.dll, mysql.dll). <strike> It would be fabulous to get these components working under Lazarus as we can then write real database apps quickly </strike>. [[User:MartynRanyard]]<br />
<br />
'''Note:''' this functionality is being implemented in the sqldb-components. Not as good as ZEOS yet, but worth a look. [[User:Loesje]]<br />
<br />
'''Note 2:''' <font color=blue>The convertion of these components has recently been completed</font>. Take a look at [http://sourceforge.net/projects/zeoslib ZEOS Data Objects] and download ZEOSDBO_REWORK package from CVS. Also check this [[Zeos_tutorial|Tutorial]] [[user:Matthijs|Matthijs]]<br />
<br />
'''Add an application, library or component that you need here'''<br />
<br />
The Delphi IDE, but not Kylix, has a File -> Print selection which allows either the current source file or the current Form to be sent to the printer. I know there are lots of ways in both Linux and Windows to have files and screenshots printed, but it would be a convenience to be able to initiate printing direct from the IDE, with all the formatting and highlighting that you see on the screen. [[User:Kirkpatc]]<br />
<br />
Support for Paradox and Access databasing (ADO, DAO or ODBC) in at least a Win32 environment. A package named KADao implements this and is free in Delphi, maybe someone can translate this. If databasing is already implemented, maybe a way for new users to find it???[[User:Micdutoit]]<br />
<br />
A way to interface with Python would be nice. In Delphi a package PythonForDelphi does this. Can someone translate this one? [[User:Micdutoit]]<br />
<br />
<br />
[http://sourceforge.net/projects/usercontrol Usercontrol] Delphi (and Kylix) component package to user and profile management and access control. Supports ADO, DBX, IBX, BDE, IBO, FIBPlus, ZeosDBO, DBISAM, MDO, MyDAC, MySQLDAC and ASTA3. Access control auto-extract TMenu, TActionList and TActionManager items. And MODULE for UIB component.<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=CurrentProjects version]. Original by [[User:VlxAdmin | Tom Lisjac]].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Lazarus_DB_Faq&diff=3429Lazarus DB Faq2005-08-27T19:06:12Z<p>Lightning: /* Are there other components? */</p>
<hr />
<div>{{Lazarus DB Faq}}<br />
__TOC__<br />
== General ==<br />
<br />
This FAQ will be directed to database programming with Lazarus.<br />
<br />
=== Where can I find more FAQ? ===<br />
<br />
See the official website www.lazarus.freepascal.org. There is another FAQ as well. [[Lazarus Faq|Here]] you will find a copy of the FAQ from www.freepascal.org .<br />
<br />
=== Where can I find database components? ===<br />
<br />
At the moment the SQLdb components are part of the Lazarus package, you only need to install them. If you look in the [$LazarusDir]/components you will see a subdirectory SQLdb. Install the sqldblaz.lpk and you will be able to connect to MySQL, Interbase / Firebird and Postgres servers.<br />
Look [[Install Packages|here]] for help on installing packages.<br />
<br />
=== Are there other components? ===<br />
<br />
Yes. The [http://zeoslib.sourceforge.net/index.php ZEOS components] have been ported to Lazarus as well.<br />
<br>You have to download ZEOSDBO_Rework from [http://sourceforge.net/cvs/?group_id=35994 ZEOS cvs].<br />
<br>See also this tutorial for [[Zeos_tutorial|Zeos]].<br />
<br />
== IB / FB ==<br />
<br />
=== How do I connect from Linux to a Windows server ===<br />
Entering the correct path to a database on a Windows server from a Linux client is not very clear. <br />
<br />
Say you have installed firebird in F:\Program Files\firebird\. The employee.fdb example database will then be installed in the directory F:\Program Files\firebird\examples\ . The IP-adress of your computer is 192.168.2.100.<br />
<br />
Then entering the following databasename <br />
192.168.2.100:F:\Program Files\firebird\examples\employee.fdb<br />
in your IBConnection will connect to the required database.<br />
<br />
Note that you don't have to enter a value for the hostname property!<br />
<br />
== MySQL ==<br />
<br />
=== Which version of mySQL is supported? ===<br />
<br />
If you use the SQLdb components you will need the client libraries for mySQL 4.0. With this libraries you can connect to mySQL 3.2x and 4.x servers.</div>Lightninghttps://wiki.freepascal.org/index.php?title=Lazarus_Database_Overview&diff=2911Lazarus Database Overview2005-08-27T19:02:50Z<p>Lightning: /* Related Links */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting Lazarus to work with a variety of existing databases.<br />
<br />
Please expand on this section.<br />
<br />
== Lazarus and MySQL ==<br />
<br />
=== Get MySQL working in Linux or Windows ===<br />
Follow the instructions in the MySQL User Manual. Make sure that the mysqld daemon runs reliably, and that all potential users (including root, mysql, yourself and anybody else that may need it) have as many privileges as they need, from as many hosts as may be needed (including 'localhost', the local host's name, any other hosts on your network) as far as is consistent with security. It is preferable that all users including root have passwords. Test the action of the database system using the examples given in the manual, and check that all users really do have reliable access.<br />
<br />
=== Get MySQL working for FPC in text mode ===<br />
There is a directory with an example program in $(fpc<b>src</b>dir)/packages/base/mysql/. You can find the fpc source directory in Lazarus: Environment menu -> Environment Options -> Paths tab -> FPC source directory. Possible paths for the mysql directory are /usr/share/fpcsrc/packages/base/mysql/ (rpm install) or C:\lazarus\fpcsrc\packages\base\mysql\ (windows). This directory also contains the units mysql.pp, mysql_com.pp and mysql_version.pp. Before running the test script, you need to create a database called testdb: do this by logging into the mysql monitor (as root with full privileges) and issuing the following SQL statement<br />
CREATE DATABASE testdb;<br />
then make sure that all relevant users have appropriate access privileges to it<br />
GRANT ALL ON testdb TO johnny-user IDENTIFIED BY 'johnnyspassword'; <br />
There is a script called mkdb which you should now try to run:<br />
sh ./mkdb<br />
This will probably fail, as the system will not allow an anonymous user to access the database. So change the script using an editor so that the line invoking mysql reads:<br />
mysql -u root -p ${1-testdb} << EOF >/dev/null<br />
and try running it again, entering your password when prompted. With luck you might have managed to create the test database: test it (while logged in to the mysql monitor) by issuing the mysql statement <br />
select * from FPdev;<br />
You should see a table listing the ID, username and email address of some of the FPC developers.<br />
<br />
Now try to run the test program testdb.pp (this may need to be compiled, and will almost certainly fail on the first attempt!!).<br />
<br />
I found that the program could not connect to mysql for several reasons:<br />
<br />
* My system (SuSE Linux v9.0) installs mysql v4.0.15, not the version3 for which the package was designed. <br />
<br />
* The program needs to have user names and passwords to get access to the database.<br />
<br />
* The compiler needs to know where to find the mysql libraries (IF YOU HAVEN'T INSTALLED THE MYSQL DEVELOPMENT LIBRARIES, DO SO NOW!)<br />
<br />
I created a copy of testdb.pp called trydb.pp, rather than editing the original - this means that the original files still get fixed in subsequent CVS updates.<br />
I also copied the files found in the subdirectory mysql/ver40/ into the main mysql/ subdirectory, renaming them mysql_v4.pp, mysql_com_v4.pp and mysql_version_v4.pp, being sure to rename the units within each file correspondingly. I changed the uses statement in trydb.pp to <br />
uses mysql_v4<br />
and the statement in mysql_v4.pp to<br />
<br />
uses mysql_com_v4<br />
<br />
I added a line to /etc/fpc.cfg to point to my libraries:<br />
-Fl/lib;/usr/lib<br />
The following step might not be necessary if the devel-libraries are installed as the links will be created for you, but it never hurts to check.<br />
I had to find the real name of the mysqlclint library in the /usr/lib directory and in my case I had to issue the shell command:<br />
ln -s libmysqlclient.so.12.0.0 lmysqlclient<br />
to make a symbolic link allowing FPC to find the library. For good measure I also created the link<br />
ln -s libmysqlclient.so.12.0.0 mysqlclient<br />
and placed similar links in various other directories: not strictly necessary, but just in case ...!<br />
Some users might need to add the following link:<br />
ln -s libmysqlclient.so.12.0.0 libmysqlclient.so<br />
<br />
I modified trydb.pp to include user details, initially by adding host, user and password as constants:<br />
<br />
const<br />
host : Pchar= 'localhost';<br />
user : Pchar= 'myusername';<br />
passwd: Pchar = 'mypassword';<br />
<br />
I also found that I couldn't connect to mysql using the mysql_connect() call, but had to use mysql_real_connect() which has many more parameters. To complicate things further, the number of parameters seems to have changed between version3 (where there are seven) and version4 (where there are eight). Before using mysql_real_connect I had to use mysql_init() which is not found in the original mysql.pp but is found in mysql_v4.pp.<br />
<br />
So the code for connection to the database is now:<br />
<br />
{ a few extra variables}<br />
var<br />
alloc : PMYSQL;<br />
<br />
{main program fragment}<br />
<br />
begin<br />
if paramcount=1 then<br />
begin<br />
Dummy:=Paramstr(1)+#0;<br />
DataBase:=@Dummy[1];<br />
end;<br />
<br />
Writeln ('Allocating Space...');<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
Write ('Connecting to MySQL...');<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
Writeln (stderr,'Couldn''t connect to MySQL.');<br />
Writeln (stderr, 'Error was: ', mysql_error(@qmysql));<br />
halt(1);<br />
end;<br />
Writeln ('Done.');<br />
Writeln ('Connection data:');<br />
{$ifdef Unix}<br />
writeln ('Mysql_port : ',mysql_port);<br />
writeln ('Mysql_unix_port : ',mysql_unix_port);<br />
{$endif}<br />
writeln ('Host info : ',mysql_get_host_info(sock));<br />
writeln ('Server info : ',mysql_stat(sock));<br />
writeln ('Client info : ',mysql_get_client_info);<br />
<br />
Writeln ('Selecting Database ',DataBase,'...');<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
Writeln (stderr,'Couldn''t select database ',Database);<br />
Writeln (stderr,mysql_error(sock));<br />
halt (1);<br />
end;<br />
{... as original contents of testdb.pp}<br />
<br />
<br />
Now - ready to start compiling trydb.pp?<br />
fpc trydb<br />
success! Now run it:<br />
./trydb<br />
whoopee! I got the listing of the FPC developers!<br />
<br />
A few extra refinements: make the entry of user details and the mysql commands interactive, using variables rather than constants, and allow several SQL commands to be entered, until we issue the quit command: see the [[Lazarus Database Tutorial/TryDbpp|full program listing]], where user details are entered from the console, and the program goes into a loop where SQL commands are entered from the console (without the terminal semicolon) and the responses are printed out, until 'quit' is entered from the keyboard.<br />
<br />
See [[Lazarus Database Tutorial/SampleListing|Sample Console Listing]].<br />
<br />
===Connecting to MySQL from a Lazarus Application ===<br />
<br />
This tutorial shows how to connect Lazarus to the MySQL database, and execute simple queries, using only the basic Lazarus components; it uses no Data Aware components, but illustrates the principles of interfacing with the database.<br />
<br />
Create a new project in Lazarus:<br />
Project -> New Project -> Application<br />
A new automatically generated Form will appear.<br />
<br />
Enlarge the form to fill about half of the screen, then re-name the form and its caption to 'TryMySQL'.<br />
<br />
From the Standard Component tab place three Edit Boxes on the upper left side of the Form, and immediately above each box place a label. Change the names and captions to 'Host' (and HostLLabel,HostEdit), 'UserName' (and UserLabel, UserEdit) and 'Password' (with PasswdLabel and PasswdEdit). Alternatively you could use LabelledEdit components from the Additional tab.<br />
<br />
Select the Passwd Edit box and find the PasswordChar property: change this to * or some other character, so that when you type in a password the characters do not appear on your screen but are echoed by a series of *s. Make sure that the Text property of each edit box is blank.<br />
<br />
Now place another Edit box and label at the top of the right side of your form. Change the label to 'Enter SQL Command' and name it CommandEdit.<br />
<br />
Place three Buttons on the form: two on the left under the Edit boxes, and one on the right under the command box.<br />
<br />
Label the buttons on the left 'Connect to Database' (ConnectButton)and 'Exit' (ExitButton) and the one on the right 'Send Query' (QueryButton).<br />
<br />
Place a large Memo Box labelled and named 'Results' (ResultMemo) on the lower right, to fill most of the available space. Find its ScrollBars property and select ssAutoBoth so that scroll bars appear automatically if text fills the space. Make the WordWrap property True.<br />
<br />
Place a Status Bar (from the Common Controls tab) at the bottom of the Form, and make its SimpleText property 'TryMySQL'.<br />
<br />
A screenshot of the Form can be seen here: [http://lazarus-ccr.sourceforge.net/kbdata/trymysqldb.png Mysql Example Screenshot]<br />
<br />
Now we need to write some event handlers.<br />
<br />
The three Edit boxes on the left are for entry of hostname, username and password. When these have been entered satisfactorily, the Connect Button is clicked. The OnCLick event handler for this button is based on part of the text-mode FPC program above.<br />
<br />
The responses from the database cannot now be written using the Pascal write or writeln statements: rather, the replies have to be converted into strings and displayed in the Memo box. Whereas the Pascal write and writeln statements are capable of performing a lot of type conversion 'on the fly', the use of a memo box for text output necessitates the explicit conversion of data types to the correct form of string, so Pchar variables have to be converted to strings using StrPas, and integers have to be converted with IntToStr. <br />
<br />
Strings are displayed in the Memo box using<br />
<br />
procedure ShowString (S : string);<br />
(* display a string in a Memo box *)<br />
begin<br />
trymysqlForm1.ResultsMemo.Lines.Add (S)<br />
end;<br />
<br />
The ConnectButton event handler thus becomes:<br />
<br />
procedure TtrymysqlForm1.ConnectButtonClick(Sender: TObject);<br />
(* Connect to MySQL using user data from Text entry boxes on Main Form *)<br />
var strg: string;<br />
<br />
begin<br />
<br />
dummy1 := trymysqlForm1.HostEdit.text+#0;<br />
host := @dummy1[1];<br />
dummy2 := trymysqlForm1.UserEdit.text+#0;<br />
user := @dummy2[1] ;<br />
dummy3 := trymysqlForm1.PasswdEdit.text+#0;<br />
passwd := @dummy3[1] ;<br />
<br />
alloc := mysql_init(PMYSQL(@qmysql));<br />
sock := mysql_real_connect(alloc, host, user, passwd, database, 0, nil, 0);<br />
if sock=Nil then<br />
begin<br />
strg :='Couldn''t connect to MySQL.'; showstring (strg);<br />
Strg :='Error was: '+ StrPas(mysql_error(@qmysql)); showstring (strg);<br />
end<br />
else<br />
begin<br />
trymysqlForm1.statusBar1.simpletext := 'Connected to MySQL';<br />
strg := 'Now choosing database : ' + database; showstring (strg);<br />
{$ifdef Unix}<br />
strg :='Mysql_port : '+ IntToStr(mysql_port); showstring (strg);<br />
strg :='Mysql_unix_port : ' + StrPas(mysql_unix_port); showstring (strg);<br />
{$endif}<br />
Strg :='Host info : ' + StrPas(mysql_get_host_info(sock));<br />
showstring (strg);<br />
Strg :='Server info : ' + StrPas(mysql_stat(sock)); showstring (strg);<br />
Strg :='Client info : ' + Strpas(mysql_get_client_info); showstring (strg);<br />
<br />
trymysqlForm1.statusbar1.simpletext := 'Selecting Database ' + DataBase +'...';<br />
if mysql_select_db(sock,DataBase) < 0 then<br />
begin<br />
strg :='Couldn''t select database '+ Database; ShowString (strg);<br />
Strg := mysql_error(sock); ShowString (strg);<br />
end<br />
end;<br />
end;<br />
<br />
<br />
The Text Box on the right allows entry of a SQL statement, without a terminal semicolon; when you are satisfied with its content or syntax, the SendQuery button is pressed, and the query is processed, with results being written in the ResultsMemo box.<br />
<br />
The SendQuery event handler is again based on the FPC text-mode version, except that once again explicit type-conversion has to be done before strings are displayed in the box.<br />
<br />
A difference from the text-mode FPC program is that if an error condition is detected, the program does not halt and MySQL is not closed; instead, control is returned to the main form and an opportunity is given to correct the entry before the command is re-submitted. The application finally exits (with closure of MySQL) when the Exit Button is clicked.<br />
<br />
The code for SendQuery follows:<br />
<br />
procedure TtrymysqlForm1.QueryButtonClick(Sender: TObject);<br />
var<br />
dumquery, strg: string;<br />
begin<br />
dumquery := TrymysqlForm1.CommandEdit.text;<br />
dumquery := dumquery+#0;<br />
query := @dumquery[1];<br />
trymysqlForm1.statusbar1.simpletext := 'Executing query : '+ dumQuery +'...';<br />
strg := 'Executing query : ' + dumQuery; showstring (strg);<br />
if (mysql_query(sock,Query) < 0) then<br />
begin<br />
Strg :='Query failed '+ StrPas(mysql_error(sock)); showstring (strg);<br />
end<br />
else<br />
begin<br />
recbuf := mysql_store_result(sock);<br />
if RecBuf=Nil then<br />
begin<br />
Strg :='Query returned nil result.'; showstring (strg);<br />
end<br />
else<br />
begin<br />
strg :='Number of records returned : ' + IntToStr(mysql_num_rows (recbuf));<br />
Showstring (strg);<br />
Strg :='Number of fields per record : ' + IntToStr(mysql_num_fields(recbuf));<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
while (rowbuf <>nil) do<br />
begin<br />
Strg :='(Id: '+ rowbuf[0]+', Name: ' + rowbuf[1]+ ', Email : ' +<br />
rowbuf[2] +')';<br />
showstring (strg);<br />
rowbuf := mysql_fetch_row(recbuf);<br />
end;<br />
end;<br />
end;<br />
end;<br />
<br />
<br />
Save your Project, and press Run -> Run<br />
<br />
==== Download MYSQL Source Code ====<br />
A full listing of the program is available here [http://lazarus-ccr.sourceforge.net/kbdata/mysqldemo.tar.gz Sample Source Code]<br />
<br />
== Lazarus and Postgresql ==<br />
<br />
Please write me!<br />
<br />
== Lazarus and SQLite ==<br />
<br />
by Luiz Américo<br />
<br />
===Introduction===<br />
<br />
TSqliteDataset is a TDataset descendent class that accesses sqlite2.8.x databases. Below is a list of the principal advantages and disadvantages:<br />
<br />
Advantages:<br />
<br />
* Flexible: programmers can choose to use or not to use the SQL language, allowing them to work with simple table layouts or any complex layout that SQL allows<br />
* Automatic database update: no need to update the database manually with SQL statements, a single method take cares of it<br />
* Fast: it caches the data in memory, making browsing in the dataset fast<br />
* No server instalation/configuration: just ship together with sqlite dynamic library<br />
<br />
Disavantages<br />
<br />
* Requires external file (sqlite library)<br />
<br />
===Requirements===<br />
* fpc 2.0.0<br />
* Lazarus 0.9.8 or newer or a recent 0.9.7<br />
* sqlite runtime library 2.8.15 or above (get from www.sqlite.org)<br />
<br />
'''Before initiating a lazarus projects, ensure that:'''<br />
* the sqlite library is on the system PATH or in the executable directory<br />
* under Linux, put cmem as the first unit in uses clause of the main program<br />
<br />
===How To Use (Basic Usage)===<br />
<br />
Install the package found at /components/sqlite directory (see instructions in this wiki)<br />
<br />
At design time set the following properties:<br />
<br />
* FileName: path of the sqlite file [required] <br />
* TableName: name of the table used in the sql statement [required] <br />
* Sql: a SQL select statement [optional] <br />
<br />
'''Creating a Table (Dataset)'''<br />
<br />
Double click in the component icon or use the 'Create Table' item of the popup menu that appears when clicking the right mouse button.<br />
A simple self-explaining table editor will be show.<br />
<br />
Here is all field types supported by TSqliteDataset: <br />
<br />
Integer<br />
AutoInc<br />
String<br />
Memo<br />
Bool <br />
Float<br />
Word<br />
DateTime<br />
Date<br />
Time<br />
<br />
<br />
'''Retrieving the data'''<br />
<br />
After creating the table or with a previously created Table, open the dataset with Open method.<br />
If the SQL property was not set then all records from all fields will be retrieved, the same if you set the SQL to:<br />
<br />
SQL:='Select * from TABLENAME'; <br />
<br />
'''Applying changes to the underlying datafile'''<br />
<br />
To use the ApplyUpdates function, the dataset must contain at least one field that fills the requirements for a Primary Key (values must be UNIQUE and not NULL)<br />
<br />
It's possible to do that in two ways:<br />
<br />
* Set PrimaryKey property to the name of a Primary Key field<br />
* Add an AutoInc field (This is easier since the TSqliteDataSet automatically handles it as a Primary Key)<br />
<br />
If one of the two conditions is set then just call<br />
<br />
ApplyUpdates;<br />
<br />
PS1: If both conditions are set, the field corresponding to PrimaryKey is used to apply the updates.<br />
<br />
PS2: Setting PrimaryKey to a field that is not a Primary Key will lead to loss of data if ApplyUpdates is called, so ensure that the chosen field contains not Null and Unique values before using it.<br />
<br />
===Remarks===<br />
<br />
* Although it has been tested with 10000 records and worked fine, TSqliteDataset keeps all the data in memory, so remenber to retrieve only the necessary data (principally with Memo Fields).<br />
* The same datafile (Filename property) can host several tables/datasets<br />
* Several datasets (different combinations of fields) can be created using the same table simultaneously <br />
* It's possible to filter the data using WHERE statements in the sql, closing and reopening the dataset (or calling RefetchData method). But in this case, the order and number of fields must remain the same <br />
* It's also possible to use complex SQL statements using aliases, joins, views in multiple tables (remember that they must reside in the same datafile), but in this case ApplyUpdates won't work. If someone wants to use complex queries and to apply the updates to the datafile, mail me and I will give some hints how to do that<br />
* Setting filename to a sqlite2.x datafile not created by TSqliteDataset and opening it is allowed but some fields won't have the correct field type detected. These will be treated as string fields.<br />
<br />
Generic examples can be found at fpc/fcl/db/sqlite CVS directory<br />
<br />
Luiz Américo<br />
pascalive(at)bol(dot)com(dot)br<br />
<br />
== Lazarus and MSSQL ==<br />
<br />
Please write me!<br />
<br />
== Lazarus and Interbase / Firebird ==<br />
<br />
See [[Install Packages|Install Packages]]. On this page is a first small example en explanation about how to connect to an IB or FB server.<br />
<br />
== Lazarus and dBase ==<br />
<br />
[[user:Tonymaro|Tony Maro]]<br />
<br />
You might also want to visit the beginnings of the [[Lazarus Tdbf Tutorial|TDbf Tutorial page]]<br />
<br />
FPC includes a simple database component that is similar in function to the Delphi TTable component called "TDbf" ([http://tdbf.sourceforge.net/ TDbf Website]) that supports a very basic subset of features for dBase files. It is not installed by default, so you will first need to install the Lazarus package from the "lazarus/components/tdbf" directory and rebuild your Lazarus IDE. It will then appear next to the TDatasource in your component palette.<br />
<br />
The TDbf component has an advantage over other database components in that it doesn't require any sort of runtime database engine, however it's not the best option for large database applications.<br />
<br />
It's very easy to use. Simply, put, drop a TDbf on your form, set the runtime path to the directory that your database files will be in, set the table name, and link it to your TDatasource component.<br />
<br />
Real functionality requires a bit more effort, however. If a table doesn't already exist, you'll need to create it programmatically, unless there's a compatible table designer I'm not familiar with.<br />
<br />
Attempting to open a non-existant table will generate an error. Tables can be created programmatically through the component after the runtime path and table name are set.<br />
<br />
For instance, to create a table called "dvds" to store your dvd collection you would drop it on your form, set the runtime path, and set the table name to "dvds". The resulting file will be called "dvds.dbf".<br />
<br />
In your code, insert the following:<br />
<br />
Dbf1.FilePathFull = '/path/to/my/database';<br />
Dbf1.TableName = 'dvds';<br />
With Dbf1.FieldDefs do begin<br />
Add('Name', ftString, 80, True);<br />
Add('Description', ftMemo, 0, False);<br />
Add('Rating', ftString, 5, False);<br />
end;<br />
Dbf1.CreateTable;<br />
<br />
When this code is run, your DVD collection table will be created. After that, all data aware components linked through the TDatasource to this component will allow easy access to the data. <br />
<br />
Adding indexes is a little different from your typical TTable. It must be done after the database is open. It's also the same method you use to rebuild the indexes. For instance:<br />
<br />
Dbf1.Exclusive := True;<br />
Dbf1.Open;<br />
Dbf1.AddIndex('dvdsname','Name',[ixPrimary, ixUnique, ixCaseInsensitive]);<br />
Dbf1.AddIndex('rating.ndx', 'Rating', [ixCaseInsensitive]);<br />
Dbf1.Close;<br />
<br />
The first (primary) index will be a file called "dvdsname.mdx" and the second will be a file named "rating.ndx" so in a multiple table database you must be careful not to use the same file name again.<br />
<br />
I will try to add a more detailed example at a later date, but hopefully this will get those old Delphi programmers up and running with databases in Lazarus!<br />
<br />
== Translations of this Page ==<br />
* [[Lazarus Database Tutorial/es|Spanish]] by Eduardo Lopez<br />
* [[Lazarus Database Tutorial/nl| Dutch]]<br />
<br />
== Related Links ==<br />
[[Databases|Creating Databases Applications with Lazarus using the DB-unit]]<br><br />
[[MySQLDatabases|Creating a database application using MySQL]]<br><br />
[[Zeos_tutorial|Creating a database application using the Zeos components]]<br />
<br />
==Contributors and Changes==<br />
This page has been converted from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusDatabase version].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2679Zeos tutorial/pt2005-08-27T18:51:00Z<p>Lightning: /* Make your first Zeos application */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (<font color=red>do not mistake with ZReadOnlyQuery</font>).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2670Zeos tutorial/pt2005-08-27T18:42:00Z<p>Lightning: /* Installing the components */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
* Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
* Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
** - ZParseSql.lpk<br />
** - ZPlain.lpk<br />
** - ZDbc.lpk<br />
<br />
* Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
* You are asked to recompile Lazarus.<br />
* Answer '''[Yes]''' this time.<br />
* Wait until compilation ends, Lazarus should restart itself after that.<br />
* If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (do not mistake with ZReadOnlyQuery).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2669Zeos tutorial/pt2005-08-27T18:38:09Z<p>Lightning: /* Getting Zeos */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib'''.<br />
* If you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br>'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework'''<br />
* You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
- ZParseSql.lpk<br />
- ZPlain.lpk<br />
- ZDbc.lpk<br />
<br />
Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
You are asked to recompile Lazarus.<br />
Answer '''[Yes]''' this time.<br />
Wait until compilation ends, Lazarus should restart itself after that.<br />
If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (do not mistake with ZReadOnlyQuery).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2668Zeos tutorial/pt2005-08-27T18:35:07Z<p>Lightning: /* Getting Zeos */</p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib''', if you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type:<br />
'''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework''' <br />
You should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
- ZParseSql.lpk<br />
- ZPlain.lpk<br />
- ZDbc.lpk<br />
<br />
Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
You are asked to recompile Lazarus.<br />
Answer '''[Yes]''' this time.<br />
Wait until compilation ends, Lazarus should restart itself after that.<br />
If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (do not mistake with ZReadOnlyQuery).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Zeos_tutorial/pt&diff=2667Zeos tutorial/pt2005-08-27T18:32:32Z<p>Lightning: </p>
<hr />
<div>== Overview ==<br />
<br />
This tutorial is about getting, installing and using [http://www.zeoslib.net Zeoslib] with [[Glossary#Lazarus|Lazarus]] and [[Glossary#FreePascal|FPC]].<br />
<br />
== Getting Zeos ==<br />
<br />
Zeos has recently been ported to [[Glossary#Lazarus|Lazarus]] and there are no releases yet that officially support it but you can easily get it from CVS if you follow these steps:<br />
<br />
* Get a CVS client [http://www.wincvs.org/ CvsGui(WinCvs, MacCvs, gCvs)], [http://www.tortoisecvs.org/ TortoiseCvs(Windows Only)] or [http://www.cvsnt.org/ CvsNT(Console Version)]<br />
<br />
* Set the system path to include your cvs client (if necessary) depending on what client you chose or configure your GUI client to use this '''CVSROOT -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib''', if you have configured your system path open a terminal/console/dosbox and go to the directory where you store your cvs and type '''cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zeoslib checkout zeoslib_rework''' you should see some progress, after all files have been downloaded go to the '''zeosdbo_rework''' directory and have a look at what it contains.<br />
<br />
== Installing the components ==<br />
<br />
This is a tricky part so you should have a little patience and read this part carefully.<br />
<br />
Start one instance of Lazarus.<br />
<br />
# Use '''Components/Open Package File(.lpk)''' from the main menu.<br />
# Go to '''zeosdbo_rework\packages\lazarus\''' and open '''ZCore.lpk'''<br />
# Press '''[Compile]''' (and wait ...)<br />
# Press '''[Install]'''<br />
# A message will appear informing you that this is a runtime package wich cannot be installed.<br />
# Press '''[Ignore]'''<br />
# You are asked if you want to recompile Lazarus. <br />
# Answer '''[No]''' <br />
# Close the instalation form.<br />
<br />
Repeat steps 1 to 9 for the folowing packages (Open them instead of Zcore.lpk):<br />
- ZParseSql.lpk<br />
- ZPlain.lpk<br />
- ZDbc.lpk<br />
<br />
Now repeat steps 1 to 6 for the package ZComponent.lpk<br />
You are asked to recompile Lazarus.<br />
Answer '''[Yes]''' this time.<br />
Wait until compilation ends, Lazarus should restart itself after that.<br />
If all is ok you should now be able to see the '''[Zeos Access]''' tab in the Component Palette.<br />
<br />
== Make your first Zeos application ==<br />
<br />
* Drop a '''ZConnection'''.<br />
** Set your User, Password, Host, Port and Protocol (and any other params if needed).<br />
** Set Connected to True.<br />
<br />
* Drop a '''ZQuery''' (do not mistake with ZReadOnlyQuery).<br />
** Set the Connection to your active ZConnection.<br />
** Set the Sql property to something like '''SELECT * FROM MyTable'''<br />
** Set Active to True.<br />
<br />
* Drop a '''DataSource''' from the '''[Data Access]''' tab.<br />
** Set the DataSet to your active ZQuery.<br />
<br />
* Drop a '''DBGrid''' from the '''[Data Controls]''' tab.<br />
** Set the Datasource to your DataSource.<br />
** If all is ok you should now be able to see the records from your table.<br />
<br />
== More information about working with Zeos ==<br />
<br />
'''Please complete me :)'''</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=2806Glossary2005-08-27T17:03:20Z<p>Lightning: /* FreePascal */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===Assembler, Assembly Language=== An assembler converts human-readable symbols (that represent machine instructions) into the actual binary instructions that the computer executes. For example an assembler would translate<br />
LD a,b # move the contents of location a into location b<br />
into a binary sequence such as <code>01110010</code> which the machine can execute. Assembly language is the list of codified instructions which a programmer can write which the assembler translated into machine code. An assembler differs from a [[Glossary#Compiler|Compiler]] by being processor-specific (ie different assemblers for i386, MC68000, ARM processors etc) and by being much more low-level: it deals with very specific instructions to move data and perform detailed arithmetic. Many compilers (including [[Glossary#FreePascal|FreePascal]]) allow the programmer to embed Assembler sections within the high-level source code; such sections are, of course, only useful using the processor for which they are intended, whereas a [[Glossary#Compiler|Compiler]] can write programs which will work on a variety of different processors.<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
===Bug===<br />
An error in a program which might cause catastrophic machine failure, failure of the program or simply incorrect performance or output. Derived from the days when computers were constructed with thermionic vacuum tubes, when insects could cause short-circuits between terminals producing hardware failure or unpredictable performance. Most software development teams encourage potential users to report bugs (which are then corrected in subsequent versions) and have a clearly-defined bug-reporting mechanism (for example Lazarus [http://www.lazarus.freepascal.org/mantis/main_page.php BugTracker]).<br />
<br />
==C==<br />
===C programming language=== A widely used computer programming language, particularly useful for system programming. Forms the basis for most of the [[Glossary#Linux|Linux]] operating system, and as far as we can determine, for the [[Glossary#Windows|Windows]] system. Its chief disadvantage is that it is insufficiently rigorous, and allows poor programming practices to creep in. It is also vulnerable to problems such as memory leaks. By contrast, [[Glossary#Pascal|Pascal]] imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.<br />
===C++===<br />
A variant of [[Glossary#C programming language|C]] which includes Object-Oriented Programming constructs.<br />
===C#===<br />
A still more 'advanced' version of C++, heavily supported by Microsoft. Of course, none of the C variants is nearly as good as [[Glossary#Pascal|Pascal]]!<br />
===CCR=== Code and Component Repository<br />
===Command Line Interpreter===<br />
A program present in most computer operating systems which examines an input stream, either from the keyboard (Console Mode) or from a text file (Batch Mode), [[Glossary#Interpreter|interpreting]] or parsing the text to find instructions causing execution of operating system commands or running prepared programs or other scripts of instructions.<br />
<br />
===Compiler=== A program that translates Human-readable source code, usually written in a high-level language such as [[Glossary#FreePascal|FreePascal]], [[Glossary#Delphi|Delphi]], C++, Algol, FORTRAN or ADA, into machine instructions for execution by a computer. Compilation usually involves several stages: Parsing the source code to check for syntax errors, translation of the source code to machine instructions, and linking the resultant code with libraries in order to produce the final machine-executable application.<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===Cross Compilation===<br />
The act of compiling a program on one type of computer for eventual use on another computer with a defferent processoror a different operating system. For example [[Glossary#Pascal|Pascal]] programs can be cross-compiled on a PC running Linux and executed on a PC running Windows, or programs can be compiled on a PC to run on a [[Glossary#PDA|PDA]] like the Sharp [[Glossary#Zaurus|Zaurus]]. Another typical example is the Cross-compilation of the [[Glossary#FreePascal|FreePascal]] Compiler or the [[Glossary#Lazarus|Lazarus]] IDE on one platform such as [[Glossary#Linux|Linux]] for use on another platform such as [[Glossary#Windows|Windows]] or on the [[Glossary#MAC|Mackintosh]] computer using a totally different processor.<br />
<br />
===CrossPlatform=== Usually refers to a program that can be run on several different [[Glossary#OS|OS]]s and Platforms. Examples are the [[Glossary#FreePascal|FreePascal]] compiler and [[Glossary#Lazarus|Lazarus]], the [http://www.openoffice.org OpenOfficeOrg] suite of office programs, the [http://www.mozilla.org Mozilla] family of web browsers and e-mail servers.<br />
<br />
===CVS=== [http://www.cvshome.org/ Concurrent Version System] (see also [[Glossary#SVN|SVN]]). A system for producing orderly development of a software suite despite its use by multiple authors. A repository is set up, from which intending developers can check-out documents or files, and to which they can return edited material. Usually the posting of new or updated material is under the control of one or more moderators or administrators, and strict version control is maintained.<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== An [[Glossary#OpenSource|OpenSource]] [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#Pascal|Pascal]] [[Glossary#Compiler|Compiler]] [http://www.freepascal.org FreePascal Website] wich supports TP/BP, [[Glossary#Delphi|Delphi]]/[[Glossary#Kylix|Kylix]] (Object Pascal) and Apple syntax, also it has some extra addons like C-style macros and operators/symbols, Operator Overloading, auto function overloading and other nice features, it best used with [[Glossary#Lazarus|Lazarus]].<br />
<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Environment<br />
===Interpreter===<br />
A software tool that examines an input stream of computer-language instructions (from the console or from a text-file) and converts them into machine-code instructions which are then immediately executed. This differs from a [[Glossary#Compiler|compiler]] (which converts a whole file into machine instructions and then stores the code for subsequent execution) in that instructions are interpreted line-by-line, and the conversion process has to happen every time the program is run. <br />
<br />
The [[Glossary#Command Line Interpreter|Command-Line interpreters]] in [[Glossary#Linux|Linux]], [[Glossary#Windows|Windows]], IBM systems and DEC PDP and VAX systems are good examples. Several popular programming languages are interpretive rather than compiled. The best examples are BASIC (in all its variants including Visual BASIC), PERL, Python and Java. Interpreted-language programs are generally several orders of magnitude slower than compiled-language programs because of the need to re-interpret the commands before execution every time, but they have the great advantage that changes are easily made, new code can be tested quickly, and often speed is not all that important compared with ease of development. Some languages (including various dialects of BASIC) offer the programmer an opportunity to try out a program first in interpreted mode, then when the program works correctly and no more changes are necessary, the whole program can be compiled to produce a much faster product.<br />
<br />
Some variants of Pascal (including UCSD Pascal from the University of California at San Diego) offered a peculiar combination of compiled and interpreted operation: the textual Pascal source code was first connected into an intermediate P-code, which was then passed on to a P-code Interpreter which translated and executed it.<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
[http://www.linux.org/]<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from Apple, it is famous for its high quality graphics and stability. The latest version [[Glossary#OSX|MAC OS X]] is a combination of Commercial and OpenSource libraries and applications, [[Glossary#OSX|OSX]] is currently capable of running [[Glossary#X11|X11]]. The main disadvantage is that it doesn't run on x86 CPUs and the hardware needed to run it is expensive; it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation which is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel which is usually started by the BIOS and it has various libraries which provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
===OSX===<br />
The latest version of the Macintosh [[Glossary#OS|Operating Systems]], see [[Glossary#MAC|MAC]]<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
===PDA=== Personal Digital Assistant - a pocket-sized (or Palm-sized) device on which information such as address-books, calendars and other useful information can be stored. These devices (such as the Palm-Pilot and the Compaq Pocket-PC) are becoming increasing sophisticated, and the Sharp [[Glossary#Zaurus|Zaurus]] which has a [[Glossary#Linux|Linux]] operating system is a popular vehicle for experimenters and developers. There is a [[Glossary#FreePascal|FreePascal]] cross-compiler available, which allows Pascal programs compiled on a PC to be run on the Zaurus.<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== [http://subversion.tigris.org/ Subversion] - A Versioning document control system designed to improve upon and ultimately to replace [[Glossary#CVS|CVS]]. This is the document management system currently used by both the [[Glossary#FreePascal|FreePascal]] and the [[Glossary#Lazarus|Lazarus]] projects.<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
=== WiKi === A type of website that provides documentation for a software package or similar information, and that welcomes editorial activity, additions and comments from the community. Most WiKi sites require potential users to register, and then login in order to edit the site. Documentation can be developed very quickly and flexibly.<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface. The X11 concept is quite different from the Windows GDI mainly because XFree is a program, not just a set of libraries. Because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others. For more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==<br />
=== Zaurus ===<br />
[[Glossary#PDA|PDA]] made by Sharp which uses Linux as its operating system. Its processor is the ARM for which a port of the FreePascal compiler has been made, and it is possible to cross-compile applications in FreePascal which will run on the Zaurus</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=2666Glossary2005-08-27T17:01:31Z<p>Lightning: /* MAC */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===Assembler, Assembly Language=== An assembler converts human-readable symbols (that represent machine instructions) into the actual binary instructions that the computer executes. For example an assembler would translate<br />
LD a,b # move the contents of location a into location b<br />
into a binary sequence such as <code>01110010</code> which the machine can execute. Assembly language is the list of codified instructions which a programmer can write which the assembler translated into machine code. An assembler differs from a [[Glossary#Compiler|Compiler]] by being processor-specific (ie different assemblers for i386, MC68000, ARM processors etc) and by being much more low-level: it deals with very specific instructions to move data and perform detailed arithmetic. Many compilers (including [[Glossary#FreePascal|FreePascal]]) allow the programmer to embed Assembler sections within the high-level source code; such sections are, of course, only useful using the processor for which they are intended, whereas a [[Glossary#Compiler|Compiler]] can write programs which will work on a variety of different processors.<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
===Bug===<br />
An error in a program which might cause catastrophic machine failure, failure of the program or simply incorrect performance or output. Derived from the days when computers were constructed with thermionic vacuum tubes, when insects could cause short-circuits between terminals producing hardware failure or unpredictable performance. Most software development teams encourage potential users to report bugs (which are then corrected in subsequent versions) and have a clearly-defined bug-reporting mechanism (for example Lazarus [http://www.lazarus.freepascal.org/mantis/main_page.php BugTracker]).<br />
<br />
==C==<br />
===C programming language=== A widely used computer programming language, particularly useful for system programming. Forms the basis for most of the [[Glossary#Linux|Linux]] operating system, and as far as we can determine, for the [[Glossary#Windows|Windows]] system. Its chief disadvantage is that it is insufficiently rigorous, and allows poor programming practices to creep in. It is also vulnerable to problems such as memory leaks. By contrast, [[Glossary#Pascal|Pascal]] imposes a much more rigorous discipline on the programmer and encourages good programming habits and practices.<br />
===C++===<br />
A variant of [[Glossary#C programming language|C]] which includes Object-Oriented Programming constructs.<br />
===C#===<br />
A still more 'advanced' version of C++, heavily supported by Microsoft. Of course, none of the C variants is nearly as good as [[Glossary#Pascal|Pascal]]!<br />
===CCR=== Code and Component Repository<br />
===Command Line Interpreter===<br />
A program present in most computer operating systems which examines an input stream, either from the keyboard (Console Mode) or from a text file (Batch Mode), [[Glossary#Interpreter|interpreting]] or parsing the text to find instructions causing execution of operating system commands or running prepared programs or other scripts of instructions.<br />
<br />
===Compiler=== A program that translates Human-readable source code, usually written in a high-level language such as [[Glossary#FreePascal|FreePascal]], [[Glossary#Delphi|Delphi]], C++, Algol, FORTRAN or ADA, into machine instructions for execution by a computer. Compilation usually involves several stages: Parsing the source code to check for syntax errors, translation of the source code to machine instructions, and linking the resultant code with libraries in order to produce the final machine-executable application.<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===Cross Compilation===<br />
The act of compiling a program on one type of computer for eventual use on another computer with a defferent processoror a different operating system. For example [[Glossary#Pascal|Pascal]] programs can be cross-compiled on a PC running Linux and executed on a PC running Windows, or programs can be compiled on a PC to run on a [[Glossary#PDA|PDA]] like the Sharp [[Glossary#Zaurus|Zaurus]]. Another typical example is the Cross-compilation of the [[Glossary#FreePascal|FreePascal]] Compiler or the [[Glossary#Lazarus|Lazarus]] IDE on one platform such as [[Glossary#Linux|Linux]] for use on another platform such as [[Glossary#Windows|Windows]] or on the [[Glossary#MAC|Mackintosh]] computer using a totally different processor.<br />
<br />
===CrossPlatform=== Usually refers to a program that can be run on several different [[Glossary#OS|OS]]s and Platforms. Examples are the [[Glossary#FreePascal|FreePascal]] compiler and [[Glossary#Lazarus|Lazarus]], the [http://www.openoffice.org OpenOfficeOrg] suite of office programs, the [http://www.mozilla.org Mozilla] family of web browsers and e-mail servers.<br />
<br />
===CVS=== [http://www.cvshome.org/ Concurrent Version System] (see also [[Glossary#SVN|SVN]]). A system for producing orderly development of a software suite despite its use by multiple authors. A repository is set up, from which intending developers can check-out documents or files, and to which they can return edited material. Usually the posting of new or updated material is under the control of one or more moderators or administrators, and strict version control is maintained.<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== A [[Glossary#Pascal|Pascal]] Compiler [http://www.freepascal.org FreePascal Website]<br />
<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Environment<br />
===Interpreter===<br />
A software tool that examines an input stream of computer-language instructions (from the console or from a text-file) and converts them into machine-code instructions which are then immediately executed. This differs from a [[Glossary#Compiler|compiler]] (which converts a whole file into machine instructions and then stores the code for subsequent execution) in that instructions are interpreted line-by-line, and the conversion process has to happen every time the program is run. <br />
<br />
The [[Glossary#Command Line Interpreter|Command-Line interpreters]] in [[Glossary#Linux|Linux]], [[Glossary#Windows|Windows]], IBM systems and DEC PDP and VAX systems are good examples. Several popular programming languages are interpretive rather than compiled. The best examples are BASIC (in all its variants including Visual BASIC), PERL, Python and Java. Interpreted-language programs are generally several orders of magnitude slower than compiled-language programs because of the need to re-interpret the commands before execution every time, but they have the great advantage that changes are easily made, new code can be tested quickly, and often speed is not all that important compared with ease of development. Some languages (including various dialects of BASIC) offer the programmer an opportunity to try out a program first in interpreted mode, then when the program works correctly and no more changes are necessary, the whole program can be compiled to produce a much faster product.<br />
<br />
Some variants of Pascal (including UCSD Pascal from the University of California at San Diego) offered a peculiar combination of compiled and interpreted operation: the textual Pascal source code was first connected into an intermediate P-code, which was then passed on to a P-code Interpreter which translated and executed it.<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
[http://www.linux.org/]<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from [http://www.apple.com/ Apple], it is famous for its high quality graphics and stability. The latest version [[Glossary#OSX|MAC OS X]] is a combination of Commercial and OpenSource libraries and applications, [[Glossary#OSX|OSX]] is currently capable of running [[Glossary#X11|X11]]. The main disadvantage is that <strike>it doesn't run on x86 CPUs</strike> and the hardware needed to run it is expensive; it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation which is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel which is usually started by the BIOS and it has various libraries which provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
===OSX===<br />
The latest version of the Macintosh [[Glossary#OS|Operating Systems]], see [[Glossary#MAC|MAC]]<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
===PDA=== Personal Digital Assistant - a pocket-sized (or Palm-sized) device on which information such as address-books, calendars and other useful information can be stored. These devices (such as the Palm-Pilot and the Compaq Pocket-PC) are becoming increasing sophisticated, and the Sharp [[Glossary#Zaurus|Zaurus]] which has a [[Glossary#Linux|Linux]] operating system is a popular vehicle for experimenters and developers. There is a [[Glossary#FreePascal|FreePascal]] cross-compiler available, which allows Pascal programs compiled on a PC to be run on the Zaurus.<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== [http://subversion.tigris.org/ Subversion] - A Versioning document control system designed to improve upon and ultimately to replace [[Glossary#CVS|CVS]]. This is the document management system currently used by both the [[Glossary#FreePascal|FreePascal]] and the [[Glossary#Lazarus|Lazarus]] projects.<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
=== WiKi === A type of website that provides documentation for a software package or similar information, and that welcomes editorial activity, additions and comments from the community. Most WiKi sites require potential users to register, and then login in order to edit the site. Documentation can be developed very quickly and flexibly.<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface. The X11 concept is quite different from the Windows GDI mainly because XFree is a program, not just a set of libraries. Because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others. For more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==<br />
=== Zaurus ===<br />
[[Glossary#PDA|PDA]] made by Sharp which uses Linux as its operating system. Its processor is the ARM for which a port of the FreePascal compiler has been made, and it is possible to cross-compile applications in FreePascal which will run on the Zaurus</div>Lightninghttps://wiki.freepascal.org/index.php?title=Databases&diff=3034Databases2005-08-27T15:38:41Z<p>Lightning: /* Table 1 */</p>
<hr />
<div>Work in progress..<br />
=Introduction=<br />
<br />
This page is about creating databases applications with Lazarus using the DB-unit. In the DB unit all the basic functionality for working with databases is implemented, but to be usefull they need components which are dependent on the database you want to use.<br />
<br />
The first part gives a short introduction on the several database-dependent components and how to install them, the second part is a short course in working with the DB-unit and the last part gives specific information about several supported databases.<br />
<br />
=First Part: General information about supported databases=<br />
<br />
==Introduction==<br />
<br />
The databases you can use with Lazarus, (actually with FPC, but that's not so important for the rest of the story) can be divided into two categories: The databases which are completely 'internal' and are written in Freepascal, and the 'external' databases to which connections are made with client-libraries. To use these client-libraries the appropiate bindings must be available. Most client-libraries come only with bindings for C, but FPC provides several packages with the pascal-bindings for database-clients. The supported databases are listed in table 1. (fpc 1.9.7 and above)<br />
<br />
===Table 1===<br />
{| BORDER="1" CELLSPACING="0"<br />
!STYLE="background:#ffdead;"|'''Database'''<br />
!STYLE="background:#ffdead;"|'''Package name'''<br />
!STYLE="background:#ffdead;"|'''Need Client Lib?'''<br />
!STYLE="background:#ffdead;"|'''Supported versions'''<br />
!STYLE="background:#ffdead;"|'''Supported platforms'''<br />
|----<br />
|'''DBase'''||[[Lazarus_Tdbf_Tutorial | tDbf]]||No|| III+, IV, VII || All<br />
|----<br />
|'''FoxPro'''||[[Lazarus_Tdbf_Tutorial | tDbf]]||No|| - || All<br />
|----<br />
|'''In memory'''||memds||No|| - || All<br />
|----<br />
|'''Textfiles'''||sdf||No|| - || All<br />
|----<br />
|[http://www.borland.com/us/products/interbase/index.html '''Interbase''']||IBase||Yes||4 - 6|| i386: Linux, Win32<br />
|----<br />
|[http://www.firebirdsql.org/ '''Firebird''']||IBase||Yes||1 - 1.5|| i386: Linux, Win32<br />
|----<br />
|[http://www.postgresql.org/ '''PostgreSQL''']||postgres||Yes|| 6.6 - 8 || i386: Linux, Win32<br />
|----<br />
|[http://www.oracle.com/ '''Oracle''']||Oracle||Yes|| - || - <br />
|----<br />
|[http://www.mysql.com/ '''MySQL''']||MySQL||Yes|| 3 - 4.0 || i386: Linux, Win32<br />
|----<br />
|[http://www.sqlite.org/ '''SQLite''']||SQLite||Yes|| - || -<br />
|----<br />
|'''ODBC'''||ODBC||Yes|| - || i386: Win32<br />
|}<br />
<br />
== The bindings to the database-clients ==<br />
<br />
If you want to use one of the databases-client libraries, those libraries has to be installed. Not only on the computer where you're programming on, but also on the computes where the application must run at. Note that some databases (in particular MySQL) only work if the bindings which are compiled in the application are from the same version as those of the installed libraries. How to install those libraries (.so files on *nix systems, and .dll's on windows) you can find on the website of the database-developers. The binding units can be found in the packages/base directory in the fpc-sources. They basically consist of the client-api calls like mysql_connect_database, which are completely different for each database. It is possible to write database applications using these units, but it is most often far more work and bug-sensitive then using the DB-unit Lazarus components.<br />
<br />
Most of these bindings-packages are hard-linked to the client-libraries. This means that if the application is compiled with one of these units in it, the whole application can not be linked if the client libraries are not available on the workstation. This means that if you do not have installed - by example - MySQL on your computer, and you are using the mysql4.pp unit in your program. The program woud not link. If you succeed to compile the program on a computer with has MySQL installed, it still won't even start on any other workstation without the appropiate MySQL-libraries.<br />
<br />
To avoid such problems some of the packages are also able to link dynamical to the libraries. Before any calls to those libraries can be made, the unit has to be 'initialised'. This initialisation failes if the database-client isn't installed on the coputer. If the program is ready using the client-library, the unit has to be 'released'.<br />
<br />
== The database-components in Lazarus ==<br />
<br />
= Second part: Using the components in the DB unit =<br />
<br />
This section gives a short tutorial which holds for all the databases based on the db unit. Before you can use the db-unit, a database-component has to be installed. As an example tDbf is used, but every TDataset descendent could be used.<br />
<br />
'''Step one:'''<br />
Create a new Lazarus aplication<br />
<br />
'''Step two:'''<br />
Drop a [[Lazarus_Tdbf_Tutorial | tDBF component]] on your form. (Or any other TDataset descendent, offcourse) This TDataset-(descendent) is to access the data in a table or query. <br />
<br />
'''Step three:'''<br />
Drop a tDBF and a TDatasource component on your form. (Or any other TDataset descendent, offcourse) The TDataset is to access the data in a table or query, the TDatasource is the 'link' between the TDataset and the visible components on the form, like a TDBEdit. Link the dataset and the datasource to each other by setting the 'Dataset' property of the TDatasource to the TDataset. (In this case: Dbf1)<br />
<br />
<br />
<br />
<br />
--[[User:Loesje|Loesje]] 14:39, 10 Feb 2005 (PST)</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=7972SysRec2005-08-27T10:28:38Z<p>Lightning: /* Description */</p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy] or use the internal '''CapGrabFrame''' wich captures one frame as a '''TBitmap''' from the clipboard so you can process/save it later.<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=2663SysRec2005-08-27T10:25:37Z<p>Lightning: /* Description */</p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy] or use the internal ''''CapGrabFrame''' wich captures one frame as a '''TBitmap''' from the clipboard so you can process/save it later.<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].</div>Lightninghttps://wiki.freepascal.org/index.php?title=Databases&diff=2664Databases2005-08-18T11:51:45Z<p>Lightning: /* Table 1 */</p>
<hr />
<div>Work in progress..<br />
=Introduction=<br />
<br />
This page is about creating databases applications with Lazarus using the DB-unit. In the DB unit all the basic functionality for working with databases is implemented, but to be usefull they need components which are dependent on the database you want to use.<br />
<br />
The first part gives a short introduction on the several database-dependent components and how to install them, the second part is a short course in working with the DB-unit and the last part gives specific information about several supported databases.<br />
<br />
=First Part: General information about supported databases=<br />
<br />
==Introduction==<br />
<br />
The databases you can use with Lazarus, (actually with FPC, but that's not so important for the rest of the story) can be divided into two categories: The databases which are completely 'internal' and are written in Freepascal, and the 'external' databases to which connections are made with client-libraries. To use these client-libraries the appropiate bindings must be available. Most client-libraries come only with bindings for C, but FPC provides several packages with the pascal-bindings for database-clients. The supported databases are listed in table 1. (fpc 1.9.7 and above)<br />
<br />
===Table 1===<br />
{| BORDER="1" CELLSPACING="0"<br />
!STYLE="background:#ffdead;"|'''Database'''<br />
!STYLE="background:#ffdead;"|'''Package name'''<br />
!STYLE="background:#ffdead;"|'''Need Client Lib?'''<br />
!STYLE="background:#ffdead;"|'''Supported versions'''<br />
!STYLE="background:#ffdead;"|'''Supported platforms'''<br />
|----<br />
|'''DBase'''||[[Lazarus_Tdbf_Tutorial | tDbf]]||No|| III+, IV, VII || All<br />
|----<br />
|'''FoxPro'''||[[Lazarus_Tdbf_Tutorial | tDbf]]||No|| - || All<br />
|----<br />
|'''In memory'''||memds||No|| - || All<br />
|----<br />
|'''Textfiles'''||sdf||No|| - || All<br />
|----<br />
|[http://www.borland.com/us/products/interbase/index.html '''Interbase''']||IBase||Yes||4 - 6|| i386: Linux, Win32<br />
|----<br />
|[http://firebird.sourceforge.net/ '''Firebird''']||IBase||Yes||1 - 1.5|| i386: Linux, Win32<br />
|----<br />
|[http://www.postgresql.org/ '''PostgreSQL''']||postgres||Yes|| 6.6 - 8 || i386: Linux, Win32<br />
|----<br />
|[http://www.oracle.com/ '''Oracle''']||Oracle||Yes|| - || - <br />
|----<br />
|[http://www.mysql.com/ '''MySQL''']||MySQL||Yes|| 3 - 4.0 || i386: Linux, Win32<br />
|----<br />
|[http://www.sqlite.org/ '''SQLite''']||SQLite||Yes|| - || -<br />
|----<br />
|'''ODBC'''||ODBC||Yes|| - || i386: Win32<br />
|}<br />
<br />
== The bindings to the database-clients ==<br />
<br />
If you want to use one of the databases-client libraries, those libraries has to be installed. Not only on the computer where you're programming on, but also on the computes where the application must run at. Note that some databases (in particular MySQL) only work if the bindings which are compiled in the application are from the same version as those of the installed libraries. How to install those libraries (.so files on *nix systems, and .dll's on windows) you can find on the website of the database-developers. The binding units can be found in the packages/base directory in the fpc-sources. They basically consist of the client-api calls like mysql_connect_database, which are completely different for each database. It is possible to write database applications using these units, but it is most often far more work and bug-sensitive then using the DB-unit Lazarus components.<br />
<br />
Most of these bindings-packages are hard-linked to the client-libraries. This means that if the application is compiled with one of these units in it, the whole application can not be linked if the client libraries are not available on the workstation. This means that if you do not have installed - by example - MySQL on your computer, and you are using the mysql4.pp unit in your program. The program woud not link. If you succeed to compile the program on a computer with has MySQL installed, it still won't even start on any other workstation without the appropiate MySQL-libraries.<br />
<br />
To avoid such problems some of the packages are also able to link dynamical to the libraries. Before any calls to those libraries can be made, the unit has to be 'initialised'. This initialisation failes if the database-client isn't installed on the coputer. If the program is ready using the client-library, the unit has to be 'released'.<br />
<br />
== The database-components in Lazarus ==<br />
<br />
= Second part: Using the components in the DB unit =<br />
<br />
This section gives a short tutorial which holds for all the databases based on the db unit. Before you can use the db-unit, a database-component has to be installed. As an example tDbf is used, but every TDataset descendent could be used.<br />
<br />
'''Step one:'''<br />
Create a new Lazarus aplication<br />
<br />
'''Step two:'''<br />
Drop a [[Lazarus_Tdbf_Tutorial | tDBF component]] on your form. (Or any other TDataset descendent, offcourse) This TDataset-(descendent) is to access the data in a table or query. <br />
<br />
'''Step three:'''<br />
Drop a tDBF and a TDatasource component on your form. (Or any other TDataset descendent, offcourse) The TDataset is to access the data in a table or query, the TDatasource is the 'link' between the TDataset and the visible components on the form, like a TDBEdit. Link the dataset and the datasource to each other by setting the 'Dataset' property of the TDatasource to the TDataset. (In this case: Dbf1)<br />
<br />
<br />
<br />
<br />
--[[User:Loesje|Loesje]] 14:39, 10 Feb 2005 (PST)</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=2662SysRec2005-06-11T07:36:00Z<p>Lightning: /* Description */</p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=1533SysRec2005-03-18T15:08:55Z<p>Lightning: </p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].<br />
Test<br />
To be continued ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=618SysRec2005-03-17T13:56:06Z<p>Lightning: /* License */</p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].<br />
<br />
To be continued ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=589SysRec2005-03-17T13:53:52Z<p>Lightning: </p>
<hr />
<div>===About===<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
<br />
===License===<br />
This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
===Author===<br />
[[User:Lightning|Razvan Adrian Bogdan]]<br />
<br />
===Download===<br />
The application can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].<br />
<br />
===Usage===<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
===Description===<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].<br />
<br />
To be continued ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=Components_and_Code_examples&diff=737Components and Code examples2005-03-17T13:45:15Z<p>Lightning: /* Example programs */</p>
<hr />
<div>==Lazarus-CCR Released Components==<br />
* [[EpikTimer]] - Precision timer component written specifically for Lazarus.<br />
* [[FpSystools]] - Conversion of TurboPower's Systools for Kylix package to Lazarus/FPC<br />
<br />
==Packages for FPC/Lazarus (not hosted here)==<br />
* Starting with version 32, Lucas Gebauer's outstanding [http://www.ararat.cz/synapse/ Synapse] TCP/IP library is now compatible with Free Pascal and Lazarus. Lucas has also just released version 12 of his Synaser serial port communications suite that also runs under Free Pascal.<br />
* [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] 119 components Indy for FPC/Lazarus.<br />
<br />
==Example programs==<br />
* [[SysRec]] - Video Capturing and Recording application, you can download it [http://sourceforge.net/project/showfiles.php?group_id=92177 here].<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=CodeAndComponents version].<br />
* Page created, initial content - T. Lisjac 9/22/2003 [[User:VlxAdmin]]<br />
* Moved Synapse package info to here from the [[Main Page]] - [[User:VlxAdmin]] 10/1/2003</div>Lightninghttps://wiki.freepascal.org/index.php?title=Components_and_Code_examples&diff=587Components and Code examples2005-03-17T13:41:41Z<p>Lightning: /* Example programs */</p>
<hr />
<div>==Lazarus-CCR Released Components==<br />
* [[EpikTimer]] - Precision timer component written specifically for Lazarus.<br />
* [[FpSystools]] - Conversion of TurboPower's Systools for Kylix package to Lazarus/FPC<br />
<br />
==Packages for FPC/Lazarus (not hosted here)==<br />
* Starting with version 32, Lucas Gebauer's outstanding [http://www.ararat.cz/synapse/ Synapse] TCP/IP library is now compatible with Free Pascal and Lazarus. Lucas has also just released version 12 of his Synaser serial port communications suite that also runs under Free Pascal.<br />
* [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] 119 components Indy for FPC/Lazarus.<br />
<br />
==Example programs==<br />
* [[SysRec]] - Video Capturing and Recording application, you can download it [http://sourceforge.net/project/showfiles.php?group_id=92177&package_id=98986 here].<br />
<br />
==Original contributors and changes==<br />
This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=CodeAndComponents version].<br />
* Page created, initial content - T. Lisjac 9/22/2003 [[User:VlxAdmin]]<br />
* Moved Synapse package info to here from the [[Main Page]] - [[User:VlxAdmin]] 10/1/2003</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=579Glossary2005-03-16T16:35:38Z<p>Lightning: /* MAC */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
==C==<br />
===CCR=== Code and Component Repository<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===CrossPlatform=== Usually refers to a program that runs on different [[Glossary#OS|OS]]s and Platforms<br />
===CVS=== Concurrent Versions System [http://www.cvshome.org/ CVS Homepage] see also [[Glossary#SVN|SVN]]<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== A Pascal Compiler [http://www.freepascal.org FreePascal Website]<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Enviroment<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from Apple, it is famous for it's high quality graphics and stability, the latest version [[Glossary#OSX|MAC OS X]] is a combination of Commercial and OpenSource libraries and applications, [[Glossary#OSX|OSX]] is currently capable of running [[Glossary#X11|X11]], the main disadvantage is that it doesn't run on x86 CPUs and the hardware needed to run it is expensive, it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation wich is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel wich is usually started by the BIOS and it has various libraries wich provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
===OSX===<br />
The latest version of the Macintosh [[Glossary#OS|Operating Systems]], see [[Glossary#MAC|MAC]]<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== Subversion - A Versioning control system [http://subversion.tigris.org/ Subversion Home Page]<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface, the X11 concept quite different from the Windows GDI mainly because XFree is a program not just a set of libraries, because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others, for more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=574Glossary2005-03-16T16:33:49Z<p>Lightning: /* O */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
==C==<br />
===CCR=== Code and Component Repository<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===CrossPlatform=== Usually refers to a program that runs on different [[Glossary#OS|OS]]s and Platforms<br />
===CVS=== Concurrent Versions System [http://www.cvshome.org/ CVS Homepage] see also [[Glossary#SVN|SVN]]<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== A Pascal Compiler [http://www.freepascal.org FreePascal Website]<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Enviroment<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from Apple, it is famous for it's high quality graphics and stability, the latest version MAC OS X is a combination of Commercial and OpenSource libraries and applications, OSX is currently capable of running [[Glossary#X11|X11]], the main disadvantage is that it doesn't run on x86 CPUs and the hardware needed to run it is expensive, it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation wich is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel wich is usually started by the BIOS and it has various libraries wich provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
===OSX===<br />
The latest version of the Macintosh [[Glossary#OS|Operating Systems]], see [[Glossary#MAC|MAC]]<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== Subversion - A Versioning control system [http://subversion.tigris.org/ Subversion Home Page]<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface, the X11 concept quite different from the Windows GDI mainly because XFree is a program not just a set of libraries, because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others, for more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=573Glossary2005-03-16T16:28:03Z<p>Lightning: /* M */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
==C==<br />
===CCR=== Code and Component Repository<br />
===Component=== A small piece of code, typically consisting of a data definition or a small number of methods, which defines and describes a particular action or series of actions in a Pascal application. Components are typically grouped together functionally into libraries such as the [[Glossary#FCL|FCL]], [[Glossary#LCL|LCL]] or [[Glossary#RTL|RTL]], so that they can be re-used in many programming applications<br />
===CrossPlatform=== Usually refers to a program that runs on different [[Glossary#OS|OS]]s and Platforms<br />
===CVS=== Concurrent Versions System [http://www.cvshome.org/ CVS Homepage] see also [[Glossary#SVN|SVN]]<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#Pascal|Pascal-based]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
The main collection of components used by [[Glossary#FreePascal|FreePascal]]. See also [[Glossary#RTL|RTL]]<br />
<br />
===FreePascal=== A Pascal Compiler [http://www.freepascal.org FreePascal Website]<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Enviroment<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
===MAC===<br />
Usually refers to the Macintosh [[Glossary#OS|Operating System]] from Apple, it is famous for it's high quality graphics and stability, the latest version MAC OS X is a combination of Commercial and OpenSource libraries and applications, OSX is currently capable of running [[Glossary#X11|X11]], the main disadvantage is that it doesn't run on x86 CPUs and the hardware needed to run it is expensive, it is however one of the most popular Operating Systems today.<br />
MAC can also refer to the MAC workstation wich is the hardware needed to run the Operating System.<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel wich is usually started by the BIOS and it has various libraries wich provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
The library of components in [[Glossary#FreePascal|FreePascal]] which are used at run-time to translate instructions from programs according to the operating system and computer architecture of the current platform. See also [[Glossary#FCL|FCL]]<br />
<br />
==S==<br />
===SVN=== Subversion - A Versioning control system [http://subversion.tigris.org/ Subversion Home Page]<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] which is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X which is famous for its graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name which is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name. The unit also has 2 main sections '''interface''' and '''implementation''' which are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc). All the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause. The [[Glossary#Uses|uses]] clause can appear either in the interface or implementation section: the code in the implementation section is "private" and can only be accessed by the same unit unless it is redefined in the interface section which is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''': these are executed automatically when the main program starts and stops using this unit, as their names suggest.<br />
<br />
===Uses=== <br />
Clause in an Object Pascal program: a line near the top of the file or [[Glossary#Unit|Unit]] (in either the interface or the implementation) which defines which other files need to be accessed to find [[Glossary#Components|components]] used in the program.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for its user friendly interface but infamous for its vulnerability to malicious attackers.<br />
"Windows" also refers to rectangular areas on a computer screen which contain the textual and graphical material associated with a particular process or application. A window may form part of a program or system other than Microsoft's offering, for example there can be X-windows (see [[Glossary#X11|X11]]) or simple text-windows used by inherently text-based systems.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface, the X11 concept quite different from the Windows GDI mainly because XFree is a program not just a set of libraries, because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others, for more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==</div>Lightninghttps://wiki.freepascal.org/index.php?title=Site_Feedback&diff=3636Site Feedback2005-03-16T15:32:50Z<p>Lightning: </p>
<hr />
<div>On this page you can add general site feed back.<br />
<br />
If your comments are about one page, you can also use the corresponding talk page for your feedback.<br />
<br />
<br><br />
----<br />
<br />
<br><br />
* Add some kind of chapters/tree/index on the main page, searching for various documents is harder without it.<br />
* You could add a few links on the main Lazarus website to various sections in the Lazarus-CCR('''C'''omponent and '''C'''ode '''R'''epository) like '''Components''', '''Examples''', '''Online Docs''', '''Tutorials'''.<br />
** The '''Components''' section should contain various components that are not used for "normal" programming or have similar behaviour to existing IDE components, maybe also platform specific components that can not be implemented in a CrossPlaform fashion.<br />
**The '''Examples''' section should contain as many useful examples as possible, many people report that examples made them appreciate the "power" of other RAD tools like Delphi/Kylix, C++Builder, JBuilder and even Visual Basic, so i think examples will also help the Lazarus project too in becomeing the most widely used tool by OpenSource and Commercial software developers.<br />
** The '''Online Docs''' section should contain FCL, LCL, IDE, Compiler, Classes organisation and description, various popular API calls, even some OS specific calls.<br />
**The '''Tutorials''' section is one of the most important parts for productivity, it should cover various aspects of programming ranging from Console, GUI, Database, Component Design, IDE/Compiler Enhancing to Hardware I/O and even Multimedia, 3D Graphics, Audio, Game Design.<br />
<br />
* The IDE could also have some links in the '''Help''' menu.</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=588SysRec2005-03-16T15:20:55Z<p>Lightning: /* Source Description */</p>
<hr />
<div>==Description==<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
==Usage==<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
==Source Description==<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* [[Glossary#VFW|VFW]] is one of the simplest parts of the [[Glossary#Windows|Windows]] [[Glossary#API|API]], this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver, for newer devices this is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Capture window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].<br />
<br />
To be continued ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=SysRec&diff=567SysRec2005-03-16T15:09:09Z<p>Lightning: /* Source Description */</p>
<hr />
<div>==Description==<br />
* The application currently supports all Windows Operating Systems using the [[Glossary#VFW|VFW]] [[Glossary#API|API]] available on all 32 bit [[Glossary#Windows|Windows]].<br />
* Supports Preview and Overlay modes with any capture device such as Cameras and TV Tuners, though it has been designed for use with a WebCam.<br />
* Allows silent movie capturing with any resolution and color depth, you can also chose a codec to record smaller files and a function has been added to allow grabbing single images, adding audio recording should not be a problem.<br />
* A caller application has been added to demonstrate message based Inter Process Comunication.<br />
* This application is designed with [[Glossary#Lazarus|Lazarus]] but a few files and directives have been added to allow compilation in [[Glossary#Delphi|Delphi]]<br />
* The application uses the [http://www.delphi-jedi.org Delphi-JEDI] [[Glossary#VFW|VFW]] unit licensed under MPL, however you need some small modifications if you want to download it again, search for "FPC" in the current unit to see them. You can download the unit [ftp://delphi-jedi.org/api/vfw.zip here].<br />
* This application can be used under Lazarus modified LGPL and MPL, this allows making commercial projects that use this code but NO WARANTY, you are the only responsable if this code doesn't work or causes any problems to your computer.<br />
<br />
==Usage==<br />
To use the application simply open the .lpi files from your File Browser or using the Open Project option from the Lazarus IDE the press Run, the Main form should display and if you have a Capture Driver installed you should be able to see some images, in the Status Bar you will see if your device supports Overlay or just Software Preview, in Overlay mode the application use less CPU and with more dynamic rendering.<br />
<br><br />
You should also see some buttons: Source, Format, Quality, Connect, Record/Stop.<br />
<br><br />
The first 3 buttons open various dialogs wich are dependant on your configuration. <br />
<br><br />
The Source button allows selecting and configuring a video source wich is capable of using a WDM driver.<br />
<br><br />
The Format button allows selecting the resolution and number of colors for the captured images.<br />
<br><br />
The Quality button allows selecting and configuring a codec, this is dependant on your installed codecs.<br />
<br><br />
The Connect button is a workaround for a Windows bug wich does not detect Overlay/Preview modes properly when changing the video source using Select.<br />
<br><br />
The Record button switches from Record to Stop when clicked and starts recording, the files are saved in the same directory and have the start and stop time in their name and the .avi extension.<br />
<br><br />
==Source Description==<br />
'''If any of the links do not work ask MS why did they move the website again and why is it so sloooow :)'''<br><br><br />
How does it work ?<br><br />
* Well VFW is onw of the simplest parts of the Windows API, this application simply creates a special window using [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp capCreateCaptureWindow], you can call various functions using the handle resulted by creating this window.<br />
* After creating the window you have to connect it to a valid driver wich on newer drivers is the default WDM driver, use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp capDriverConnect] to connect the Cature window to a capture driver.<br />
* You will have to find if the driver supports hardware acceleration or '''Overlay''', this is done by [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivergetcaps.asp capDriverGetCaps], use the '''fHasOverlay''' member of the [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdrivercaps_str.asp TCapDriverCaps] structure.<br />
* Next you have to decide if you want live preview from the capture device, to activate it use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capoverlay.asp capOverlay] or [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreview.asp capPreview] depending on your driver capabilities, if you have overlay then set [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewrate.asp capPreviewRate] to 0 otherwise set it to a resonable value, you might also want the image to be stretched to the window size, to do this use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_cappreviewscale.asp capPreviewScale], to stop the preview use '''capOverlay''' or '''capPreview''' (depending on '''fHasOverlay''' member) and pass '''false''' as the second parameter.<br />
* To record you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesetcapturefile.asp capFileSetCaptureFile], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturesequence.asp capCaptureSequence] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capfilesaveas.asp capFileSaveAs] if you did not use '''capFileSetCaptureFile''', to stop recording you should use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcapturestop.asp capCaptureStop].<br />
* To get a single frame use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capgrabframenostop.asp capGrabFrameNoStop] and [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capeditcopy.asp capEditCopy].<br />
* You will have to also disconnect the driver, to do so use [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp capDriverDisconnect].<br />
* Before you close the program you also need to free the window with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/destroywindow.asp DestroyWindow]<br />
* How to use a hook and process messages from various system windows or dynamic messages obtained with [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/registerwindowmessage.asp RegisterWindowMessage].<br />
<br />
To be continued ...</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=552Glossary2005-03-16T10:03:03Z<p>Lightning: /* Windows */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
==C==<br />
===CCR=== Code and Component Repository<br />
===CrossPlatform=== Usually refers to a program that runs on different [[Glossary#OS|OS]]'s and Platform's<br />
===CVS=== Concurrent Versions System [http://www.cvshome.org/ CVS Homepage] see also [[Glossary#SVN|SVN]]<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
===FreePascal=== A Pascal Compiler [http://www.freepascal.org FreePascal Website]<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Enviroment<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel wich is usually started by the BIOS and it has various libraries wich provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
<br />
==S==<br />
===SVN=== Subversion - A Versioning control system [http://subversion.tigris.org/ Subversion Home Page]<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] wich is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X wich is famous for it's graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name wich is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name, the unit also has 2 main sections '''interface''' and '''implementation''' wich are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc), all the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause, the uses clause can appear either in the interface or implementation section, the code in the implementation section is "private" and can only be accesed by the same unit or if it is redefined in the interface section wich is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''' and are executed automatically when the main program starts and stops using this unit as their name suggests.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, famous for it's user friendly interface.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface, the X11 concept quite different from the Windows GDI mainly because XFree is a program not just a set of libraries, because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others, for more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==</div>Lightninghttps://wiki.freepascal.org/index.php?title=Glossary&diff=551Glossary2005-03-16T10:02:17Z<p>Lightning: /* Windows */</p>
<hr />
<div>This page will never be complete. I encourage you to continue adding things to it that:<br />
* Relate to this site<br />
* Relate to Freepascal<br />
* Relate to Lazarus<br />
<br />
__NOTOC__<br />
{| border="0" align="center" class="toccolours"<br />
|-<br />
! align="center" | {{MediaWiki:Toc}}<br />
|-<br />
| align="center" |<br />
[[##|#]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]]__NOTOC__<br />
|-<br />
|}<br />
<br />
==#==<br />
==A==<br />
===API=== Application Program Interface<br />
<br />
==B==<br />
==C==<br />
===CCR=== Code and Component Repository<br />
===CrossPlatform=== Usually refers to a program that runs on different [[Glossary#OS|OS]]'s and Platform's<br />
===CVS=== Concurrent Versions System [http://www.cvshome.org/ CVS Homepage] see also [[Glossary#SVN|SVN]]<br />
<br />
==D==<br />
===Delphi=== An excellent commercial [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] for Windows made by [http://www.borland.com/ Borland]<br />
===diff=== A [[#GNU|GNU]] program used to show the differences between two files, or even two directories. [http://www.gnu.org/software/diffutils/diffutils.html Homepage]<br />
<br />
==E==<br />
==F==<br />
===FCL=== Free Component Library<br />
===FreePascal=== A Pascal Compiler [http://www.freepascal.org FreePascal Website]<br />
==G==<br />
===GDB=== [[Glossary#GNU|GNU]] Debugger [http://www.gnu.org/software/gdb/gdb.html GDB homepage]<br />
===Gimp=== [[Glossary#GNU|GNU]] Image Manipulation Program [http://www.gimp.org/ Homepage]<br />
===GNU=== From GNU's [http://www.gnu.org/ Website]: GNU is a recursive acronym for “GNU's Not UNIX”; it is pronounced “guh-noo.”<br />
===Gtk=== [[Glossary#Gimp|Gimp]] Tool Kit [http://www.gtk.org/ Home Page] "GTK+ is a multi-platform toolkit for creating graphical user interfaces"<br />
<br />
===GUI=== Graphical User Interface<br />
<br />
==H==<br />
==I==<br />
===IDE=== Integrated Development Enviroment<br />
<br />
==J==<br />
==K==<br />
===Kylix=== [[#Delphi|Delphi]] like [[#RAD|Rad]] Tool for Linux made by Borland. It is compatible with Delphi, and uses QT / CLX.<br />
<br />
==L==<br />
===Lazarus=== A [[Glossary#CrossPlatform|CrossPlatform]] [[Glossary#RAD|RAD]] [[Glossary#IDE|IDE]] made with [[Glossary#FreePascal|FreePascal]]<br />
<br />
===LCL=== [[Glossary#Lazarus|Lazarus]] Component Library<br />
<br />
===Linux===<br />
An [[Glossary#OpenSource|OpenSource]] [[Glossary#OS|Operating System]] based on the [[Glossary#Unix|Unix]] ideology, today it is one of the most popular Operating Systems.<br />
<br />
==M==<br />
<br />
==N==<br />
==O==<br />
===OO=== Object Oriented<br />
Extension to a procedural language which enables the creation and manipulation of complicated Objects. <br />
While Standard Pascal maintains a Record structure, in which various different data types such as integers, reals, arrays and pointers can co-exist in a pre-defined way, an object-oriented language like FreePascal allows the structure also to contain Methods (procedures and functions) for the manipulation of the data elements within the structure.<br />
<br />
===OS=== <br />
The Operating System is a program called a Kernel wich is usually started by the BIOS and it has various libraries wich provide an interface with the computer hardware, the Kernel can also be considered an abstraction layer between the applications and the electronics part, the Operating Systems can be Console(Text Mode) or Graphical, most modern Operating Systems support threading and are multitasking allowing multiple programs to run at the same time.<br />
<br />
==P==<br />
===Pascal=== Pascal is a procedural programming language invented by Niklaus Wirth [http://en.wikipedia.org/wiki/Pascal_programming_language]; FreePascal, Delphi and many other variants have [[#OO|OO]] extensions<br />
<br />
==Q==<br />
==R==<br />
===RAD=== Rapid Application Development<br />
<br />
===RTL=== Runtime Library<br />
<br />
==S==<br />
===SVN=== Subversion - A Versioning control system [http://subversion.tigris.org/ Subversion Home Page]<br />
<br />
==T==<br />
==U==<br />
===Unix===<br />
One of the first [[Glossary#OS|Operating Systems]] it was written in C and had threading and multi process capabilities, later Linus Torvalds and other programmers made an OpenSource clone of Unix called [[Glossary#Linux|Linux]] wich is one of the most popular Operating Systems today, others folowed the example and other Operating Systems were born, FreeBSD, OpenBSD, NetBSD and many others, also Apple introduced OpenSource parts of various Unix clones and made MAC OS X wich is famous for it's graphical features and stability.<br />
<br />
===Unit=== <br />
A Pascal source file is also called a unit and usually has .pas, .pp or .p extension.<br />
The Pascal unit has an internal name wich is usually the first line of the unit "'''unit''' MyUnit;", where MyUnit is the internal name, the unit also has 2 main sections '''interface''' and '''implementation''' wich are similar in C/C++ terminology to the header (.h, .hpp, .hh) file and the body file (.c, .cpp, .cc), all the code in the interface section can be accessed by other units or '''program''' files that "use" this unit, this is done by the '''uses''' clause, the uses clause can appear either in the interface or implementation section, the code in the implementation section is "private" and can only be accesed by the same unit or if it is redefined in the interface section wich is the case for "global" procedures and functions.<br><br />
The Pascal unit can also contain 2 more sections, '''initialization''' and '''finalization''' and are executed automatically when the main program starts and stops using this unit as their name suggests.<br />
<br />
==V==<br />
===VFW=== Video For Windows<br />
===V4L=== Video For Linux<br />
<br />
==W==<br />
<br />
=== Windows === An [[Glossary#OS|Operating System]] from Microsoft, probably the most widely used Operating System today, it is famous for it's user friendly interface.<br />
<br />
==X==<br />
===X11=== Also called XFree or simply X is a [[Glossary#Unix|Unix]] graphical interface, the X11 concept quite different from the Windows GDI mainly because XFree is a program not just a set of libraries, because X11 is more hardware oriented and doesn't have a full set of widgets yet, some programmers developed more advanced widgets like GTK and QT and various Window Managers and Desktop Environments like GNOME, KDE, XPde, XFCE, IceWM, WindowMaker and many others, for more information about X11 please visit the [http://www.xfree86.org XFree website].<br />
<br />
==Y==<br />
==Z==</div>Lightning