https://wiki.freepascal.org/api.php?action=feedcontributions&user=Smace&feedformat=atomLazarus wiki - User contributions [en]2024-03-29T07:37:23ZUser contributionsMediaWiki 1.35.6https://wiki.freepascal.org/index.php?title=Grids_Reference_Page&diff=33525Grids Reference Page2009-01-29T12:39:18Z<p>Smace: /* Example: How to add a buttom editor */</p>
<hr />
<div>{{Grids Reference Page}}<br />
<br />
== Objective ==<br />
This text will try to show the user some aspects of the grids components in Lazarus. Also is intended to serve as a guide for users who never used grids before (as experienced users generally only need a reference for new functionality).<br />
So this text will try to reach the following objectives:<br />
# To introduce the grids components to people with little or not previous Delphi contact.<br />
# To document the differences with respect to Delphi grids components.<br />
# To document the new functionality in Lazarus grids.<br />
# Create reference and examples for the components.<br />
<br />
== Overview ==<br />
A grid is a component that provides a mean for display data in tabular format. The most obvious characteristic of grids is that they are composed of cells forming rows and columns.<br />
<br />
The type of information that can be shown in a grid is very ample and mainly depends on what the user wants to show. Generally this information consists of text, colors, images or a combination of those three. <br />
<br />
Given the great variety of information that can be represented, a series of grids exits whose purpose is to facilitate the user in showing specific kinds of information.<br />
<br />
== Inheritence Tree ==<br />
<pre><br />
[TCustomControl] <br />
| <br />
| <br />
TCustomGrid <br />
| <br />
+-------------+------------+ <br />
| | <br />
TCustomDrawGrid TCustomDbGrid<br />
| | <br />
+--------+--------+ | <br />
| | TDbGrid <br />
TDrawGrid TCustomStringGrid <br />
| <br />
| <br />
TStringGrid <br />
</pre><br />
<br />
== A Starting Example ==<br />
As one of the objectives of this page is to help people with little or no previous Lazarus knowledge let's do a quick starting example of grids in action. Why not, let's make a traditional "hello world" example using the TStringGrid Component.<br />
#Create a new application. <br />
#*From the main menu select: project->New Project<br />
#*In the Create New Project dialog press the "Create Button"<br />
#*A new empty form will be shown.<br />
#Place a grid on the form<br />
#*From the component palette select the "additional" tab<br />
#*Click over the TStringGrid icon []<br />
#*Click over the form, near to the top left corner. A new empty grid appears.<br />
#Place a button on the form<br />
#*From the component palette select the "Standard" tab<br />
#*Click over the TButton icon []<br />
#*Click over a empty area of the form. A new button appears.<br />
#Doubleclick the button from the step 3, and write down the following code in the click button handler: <br />
#*Stringgrid1.Cells[1,1] := 'Hi World!';<br />
#Run the program by clicking the play icon []<br />
#*by pressing the button1, the hello world text should appear in cell column 1, row 1.<br />
<br />
== Differences between Lazarus and Delphi grids ==<br />
The current grids components present several differences with respect to Delphi grids. This is mainly because the Lazarus grids were created from scratch primarily without trying to make them fully compatible. <br />
<br />
At a later stage, compatibility with Delphi's grids became a desired objective and the grids started to conform more closely to the Delphi grid's interface, but even then this was done without a strong effort to make every single property or method match its Delphi counterpart.<br />
Also, because the grid's internals are very different, some things are not possible or need to be done in a different way in the Lazarus' grids.<br />
As the grids have evolved, greater compatibility has been achieved and this is desirable. <br />
=== Differences ===<br />
Here the known differences will be listed, in no special order.<br />
*Cell Editors <br />
*Designtime Behaviour<br />
*Cell Drawing has some differences, see customizing grid section.<br />
<br />
=== New Functionality ===<br />
*Columns<br />
*Events<br />
*Grid Editor<br />
=== Adjustments for improving Delphi grids compatibility ===<br />
Here is a list of properties and adjustments that can be made in order to make Lazarus grids look or behave similar to Delphi grids. These adjustments are based in a newly created grid. Entries tagged with [Code] need to be set in code, [Design] entries can be changed at design time.<br />
<br />
*[Design] TitleStyle := tsStandard;<br />
*[Design] DefaultRowHeight := 24; <br />
*[Code] EditorBorderStyle := bsNone; // this might work only on windows.<br />
*[Code] UseXORFeatures := true;<br />
*[Code] AllowOutBoundEvents := False; {r10992 or later}<br />
*[Code] FastEditing := False; (supported in dbgrid. StringGrid req. r10992 or later) <br />
*[Design] AutoAdvance := aaNone;<br />
<br />
== Grids Reference ==<br />
=== Information ===<br />
The starting point for reference about TCustomGrid, TDrawGrid, TCustomDrawGrid, TCustomStringGrid and TStringGrid is the [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference] <br />
<br />
For TCustomDBGrid and TDBgrid it is the <br />
[http://lazarus-ccr.sourceforge.net/docs/lcl/dbgrids/index.html unit DBGrids.pas reference]<br />
<br />
Until recently there has not been much content in these links, due partly to the lack of a tool that allows easily maintenance of its content: but such tool has been constructed and the gaps are being filled.<br />
<br />
In general, any Delphi reference about the grids should help us to use Lazarus grids (but don't forget that there are several differences between Delphi and Lazarus grids that we have documented); with this in mind and as a temporary place for reference information, this place will be used to document things that don't work the same as in Delphi, as well as any new functionality.<br />
<br />
TODO: the rest of this section will disappear; its content will be moved to [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference]<br />
<br />
=== TCustomGrid ===<br />
See the full [[doc:lcl/grids/tcustomgrid.html|TCustomGrid Reference]]<br />
==== property OnBeforeSelection: TOnSelectEvent ====<br />
==== property OnCompareCells: TOnCompareCells ====<br />
==== property OnPrepareCanvas: TOnPrepareCanvasEvent ====<br />
==== property OnDrawCell: TOnDrawCell ====<br />
==== property OnEditButtonClick: TNotifyEvent ====<br />
==== property OnSelection: TOnSelectEvent ====<br />
==== property OnSelectEditor: TSelectEditorEvent ====<br />
==== property OnTopLeftChanged: TNotifyEvent ====<br />
==== procedure AutoAdjustColumns; ====<br />
==== procedure BeginUpdate; ====<br />
==== procedure Clear; ====<br />
==== procedure DeleteColRow(IsColumn: Boolean; index: Integer); ====<br />
==== function EditorByStyle(Style: TColumnButtonStyle): TWinControl; ====<br />
==== procedure EndUpdate(UO: TUpdateOption); overload; ====<br />
==== procedure EndUpdate(FullUpdate: Boolean); overload; ====<br />
==== procedure EndUpdate; overload; ====<br />
==== procedure ExchangeColRow(IsColumn: Boolean; index, WithIndex:Integer); ====<br />
==== function IscellSelected(aCol,aRow: Integer): Boolean; ====<br />
==== function IscellVisible(aCol, aRow: Integer): Boolean; ====<br />
==== procedure LoadFromFile(FileName: string); ====<br />
==== function MouseToCell(Mouse: TPoint): TPoint; overload; ====<br />
==== function MouseToLogcell(Mouse: TPoint): TPoint; ====<br />
==== function MouseToGridZone(X,Y: Integer): TGridZone; ====<br />
==== function CellToGridZone(aCol,aRow: Integer): TGridZone; ====<br />
==== procedure MoveColRow(IsColumn: Boolean; FromIndex, ToIndex: Integer); ====<br />
==== procedure SaveToFile(FileName: string); ====<br />
==== procedure SortColRow(IsColumn: Boolean; index:Integer); overload; ====<br />
==== procedure SortColRow(IsColumn: Boolean; index,FromIndex,ToIndex: Integer); overload; ====<br />
==== property AllowOutboundEvents:boolean; ====<br />
protected in TCustomGrid, public in TCustomDrawGrid and descendants.<br />
Normally when user do click on a point over empty space after cells (for example if grid has three rows but user clicks on imaginary fourth row) the current focused cell will move to the nearest cell to clicked point, we call this an outbound event, default value is true as this has been grid's behaviour since begining. This property was added to simulate Delphi behaviour where outbound events are not available, to enable delphi compatibility set this property to false.<br />
<br />
=== TCustomStringGrid ===<br />
TCustomStringGrid serves as the base for TStringGrid. It can be used for derived TStringGrid components that want to hide published properties. See [[new intermediate grids]] for more information.<br />
<br />
The following properties or methods are public and are also available to TStringGrid.<br />
<br />
See the full [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tcustomstringgrid.html TCustomStringGrid Reference]<br />
==== procedure AutoSizeColumn(aCol: Integer); ====<br />
This procedure sets the column width to the size of the widest text it finds in all rows for the column aCol. Tip: see the goDblClickAutoSize option to allow columns to be automatically resized when doubleClicking the column border.<br />
<br />
==== procedure AutoSizeColumns; ====<br />
Automatically resizes all columns by adjusting them to fit in the longest text in each column. This is a quick method of applying AutoSizeColumn() for every column in the grid.<br />
==== procedure Clean; overload; ====<br />
Cleans all cells in the grid, fixed or not.<br />
==== procedure Clean(CleanOptions: TGridZoneSet); overload; ====<br />
Cleans all cells in the grid subject to the given CleanOptions. See [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tgridzoneset.html TGridZoneSet] for more information. Some examples:<br />
*Clean all cells: grid.Clean([]); (the same as grid.clean)<br />
*Clean all non fixed cells: grid.Clean([gzNormal]);<br />
*Clean all cells but don't touch grid column headers: Grid.Clean([gzNormal, gzFixedRows]);<br />
<br />
==== procedure Clean(StartCol,StartRow,EndCol,EndRow: integer; CleanOptions:TGridZoneSet); overload; ====<br />
does the same as Clean(CleanOptions:TGridZoneSet) but restricted to the given StartCol,StartRow,EndCol and EndRow. Examples:<br />
*Clean column index 4 to 6 but don't touch grid column headers: many variations, Grid.Clean(4,Grid.FixedRows,6,Grid.RowCount-1,[]); Grid.Clean(4,0,6,Grid,RowCount-1, [gzNormal]); etc.<br />
==== procedure Clean(aRect: TRect; CleanOptions: TGridZoneSet); overload; ====<br />
The same as Clean(StartCol,StartRow,EndCol,EndRow, CleanOptions), just taking a TRect instead of individual cell coordinates. Useful to clean the selection: grid.Clean(Grid.Selection,[]);<br />
==== property Cols[index: Integer]: TStrings read GetCols write SetCols; ====<br />
Get/set a list of strings from/to the given grid's column index starting from row index 0 to RowCount-1. <br />
===== Examples =====<br />
*Set Example: Set the content of the third column in the grid from a ListBox:<br />
Grid.Cols[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's column index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Cols[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the column content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grids content or layout. <br />
<br />
See the Get Example.<br />
<br />
==== property Rows[index: Integer]: TStrings read GetRows write SetRows; ====<br />
Get/set a list of strings from/to the given grid's row index starting from column index 0 to column ColCount-1. <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the row content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grid's content or layout. <br />
<br />
===== Examples =====<br />
*Set Example: Set the content of the third row in the grid from a ListBox:<br />
Grid.Rows[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's row index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Rows[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
*An Example that doesn't work, and its Fix: Retrieved string list is read only<br />
// this will not work and will cause memory leak<br />
// because returned StringList is not being freed<br />
Grid.Rows[1].CommaText := '1,2,3,4,5';<br />
Grid.Rows[2].Text := 'a'+#13#10+'s'+#13#10+'d'+#13#10+'f'+#13#10+'g'; <br />
<br />
// fixing the first case<br />
Lst:=TStringList.Create;<br />
Lst.CommaText := '1,2,3,4,5';<br />
Grid.Rows[1] := Lst;<br />
Lst.Free;<br />
<br />
==== property UseXORFeatures; ====<br />
Boolean property, default value: False;<br />
<br />
This property controls how the dotted focus rectangle appears in the grid. When True, the rectangle is painted using the XOR raster operation. This allow us to see the focus rectangle no matter what the cells' background color is. When False, the user can control the color of the dotted focus rectangle using the [[FocusColor property]]<br />
<br />
It also controls the look of the column/row resizing. When True, a line shows visually the size that the the column or row will have if the user ends the operation. When False, the column or row resizing takes effect just as the user drags the mouse.<br />
<br />
== Grids Howto ==<br />
=== Customizing grids ===<br />
Grid are components derived from the [http://lazarus-ccr.sourceforge.net/docs/lcl/controls/tcustomcontrol.html TCustomControl] class, and don't have a native widget associated with them which means that grids are not restricted by the look of current interface theme. This can be both an advantage and a disadvantage: usually programmers want to create a uniform-look application. The good news is that Lazarus grids are flexible enough to get something from both worlds; programmers can easily make grids look similar to other native controls, or they can customize the grid to the finest detail so they can obtain almost the same look in any platform or widget interface (that is, with the exception of scrollbars, because their look is still determined by the current theme).<br />
<br />
=== Properties and Events for customizing grids ===<br />
Some properties can affect the way the grid looks by acting when the cell is about to be painted in PrepareCanvas/OnPrepareCanvas by changing default canvas properties like brush color or font. Following is a list of such properties:<br />
*'''AlternateColor.''' With this the user can change the background color appears on alternated rows. This is to allow easy reading off of grid rows data.<br />
*'''Color.''' This sets the primary color used to draw non fixed cells background.<br />
*'''FixedColor.''' This is the color used to draw fixed cells background.<br />
*'''Flat.''' this eliminates the 3d look of fixed cells.<br><br />
*'''TitleFont.''' Font used to draw the text in fixed cells.<br><br />
*'''TitleStyle.''' This property changes the 3D look of fixed cells, there are 3 settings:<br />
**''tsLazarus.'' This is the default look<br />
**''tsNative.'' This tries to set a look that is in concordance with current widgetset theme.<br />
**''tsStandard.'' This style is a more contrasted look, like delphi grids.<br />
*'''AltColorStartNormal.''' boolean, if true alternate color is always in the second row after fixed rows, the first row after fixed rows will be always color, if false default color is set to the first row as if there were no fixed rows.<br />
*'''BorderColor.''' This sets the grid's border color used when Flat:=True and BorderStyle:=bsSingle;<br />
*'''EditorBorderStyle.''' If set to bsNone under windows the cell editors will not have the border, like in delphi, set to bsSingle by default because the border can be theme specific in some widgetsets and to allow a uniform look.<br><br />
*'''FocusColor.''' The color used to draw the current focused cell if UseXORFeatures is not set, by default this is clRed.<br />
*'''FocusRectVisible.''' turns on/off the drawing of focused cell.<br />
*'''GridLineColor.''' color of grid lines in non fixed area.<br />
*'''GridLineStyle.''' Pen style used to draw lines in non fixed area, possible choices are: ''psSolid'', ''psDash'', ''psDot'', ''psDashDot'', ''psDashDotDot'', ''psinsideFrame'', ''psPattern'',''psClear''. default is ''psSolid''.<br />
*'''SelectedColor.''' Color used to draw cell background on selected cells.<br />
*'''UseXORFeatures.''' If set, focus rect is drawn using XOR mode so it should make visible the focus rect in combination with any cell color ackground. It also affects the moving columns look.<br />
*'''DefaultDrawing.''' boolean. Normally the grids prepare the grid canvas using some properties according to the kind of cell is being painted. If user write an OnDrawCell event handler, DefaultDrawing if set also paints the cell background, if user is drawing fully the cell is better turn off this property so painting is not duplicated. In a StringGrid if DefaultDrawing is set it draws the text in each cell.<br />
*'''AutoAdvance.''' where the cell cursor will go when pressing enter or tab/shift tab, or after editing.<br />
*'''ExtendedColSizing.''' If true user can resize columns not just at the headers but along the columns height.<br />
Other properties that also affect the grids look.<br />
<br />
'''Options'''. Options property is a set with some elements to enable diverse functionality but some are related directly with grid's look. This options can be set at designtime or runtime.<br />
*'''goFixedVertLine, goFixedHorzLine''' it draws a vertical or horizontal line respectively delimiting cells or columns in fixed area, active by default.<br />
*'''goVertLine, goHorzLine''' the same as previous, but for normal browseable area. A grid can be made to simulate a listbox by unsetting both of this elements.<br />
*'''goDrawFocusSelected''' if this element is enabled a selection background is painted in focused cell in addition to focused dotted rectangle (note this doesn't work yet when goRowSelect option is set, in such case row is always painted as if goDrawFocusSelected is set)<br />
*'''goRowSelect''' select the full row instead of individual cells<br />
*'''goFixedRowNumbering''' if set, grid will do numbering of rows in first fixed column<br />
*'''goHeaderHotTracking''' if set, the grid will try to show a different look when the mouse cursor is overing any fixed cell. In order for this to work, desired cell zone needs to be enabled with property HeaderHotZones. Try combining this option with property TitleStyle:=tsNative to get themed hot tracking look.<br />
*'''goHeaderPushedLook''' if set, this element enables a pushed look when clicking any fixed cell. The zone of "pushable" cells is enabled using HeaderPusedZones property.<br />
<br />
(write more)<br />
<br />
=== Description of grid's drawing process ===<br />
Like other custom controls, the grid is drawn using the paint method. In general terms the grid is drawn by painting all rows, and each row by painting its individual cells. <br />
<br />
The process is as follow:<br />
*First the visible cells area is determined: each row is tested to see if it intersects the canvas clipping region; if it's ok, then the visible area is painted by drawing columns of each row. <br />
*The column and row values are used to identify the cell that is about to be painted and again each column is tested for intersection with the clippling region; if everything is ok, some additional properties like the cell's rectangular extent and visual state are passed as arguments to the DrawCell method.<br />
*As the drawing process is running, the visual state of each cell is adjusted according to grid options and position within grid. The visual state is retained in a varible of type TGridDrawState which is a set with following elements:<br />
**''gdSelected'' The cell will have a selected look.<br />
**''gdFocused'' The cell will have a focused look.<br />
**''gdFixed'' Cell have to be painted with fixed cell look.<br />
**''gdHot'' the mouse is over this cell, so paint it with hot tracking look<br />
**''gdPushed'' the cell is being clicked, paint it with pushed look <br />
*'''DrawCell.''' The DrawCell method is virtual and may be overriden in descendant grids to do custom drawing. The information passed to DrawCell helps to identify the particular cell is being painted, the physical area ocuppied in screen and its visible status. See DrawCell reference for details. For each cell the following occurs:<br />
*'''PrepareCanvas.''' In this method, if the DefaultDrawing property is set, the grid canvas is setup with default properties for brush and font based on current visual state. For several design and runtime properties, the text alignment is set to match programmer selection in custom columns if they exists. If DefaultDrawing is false, brush color is set to clWindow and Font color to clWindowText, the text alignment is set with grids defaultTextStyle property value.<br />
*'''OnPrepareCanvas.''' If the programmer wrote an event handler for OnPrepareCanvas event, it is called at this point. This event can be used for doing simple customization like changing cell's background color, font's properties like color, fontface and style, Text layout like different combinations of left, center, top, bottom, right alignment, etc. Any change made to the canvas in this event would be lost, because the next cell drawing will reset canvas again to a default state. So it's safe doing changes only for particular cell or cells and forget about it for the rest. Using this event sometimes helps to avoid using the OnDrawCell grid event, where users would be forced to duplicate the grid's drawing code. Todo: samples of what can be made and what to leave for OnDrawCell?...<br />
*'''OnDrawCell.''' Next if no handler for OnDrawCell event was specified, the grid calls the DefaultDrawCell method which simply paints the cell background using the current canvas brush color and style. If the OnDrawCell handler exists, the grid first paints the cell background but only if DefaultDrawing property was set, then it calls OnDrawCell event to do custom cell painting. Usually programmers want to do custom drawing only for particular cells, but standard drawing for others; in this case, they can restrict custom operation to certain cell or cells by looking into ACol, ARow and AState arguments, and for other cells simply call DefaultDrawCell method and let the grid to take care of it.<br />
*'''Text.''' At this point (only for TStringGrid) if DefaultDrawing property is true, the cell's text content is painted.<br />
*'''Grid lines'''. The last step for each cell is to paint the grid lines: if grid options goVertLine, goHorzLine, goFixedVertLine and goFixedHorzLine are specified the cell grid is drawn at this point. Grids with only rows or only cols can be obtained by changing these options. If the programmer elected to have a "themed" look it is done at this point also (see property TitleStyle).<br />
*'''FocusRect.''' When all columns of current row have been painted it is time to draw the focus rectangle for the current selected cell or for the whole row if goRowSelect option is set.<br />
<br />
===Grid's cell selection===<br />
The location of a grid's current (focused) cell (or row) can be changed using keyboard, mouse or through code. In order to change cell focus successfully to another position, we must test the target position to see if it is allowed to receive cell focus. When using keyboard, the property AutoAdvance performs part of the process by finding what should be the next focused cell. When using mouse clicks or moving by code, focus will not move from the current cell unless the target cell is permitted to receive focus.<br />
<br />
The grid calls function SelectCell to see if a cell is focusable: if this function returns true, then the target cell identified with arguments aCol and aRow is focusable (the current implementation of TCustomGrid simply returns true). TCustomDrawGrid and hence TDrawGrid and TStringGrid override this method to check first if cell is any wider than 0; normally you don't want a 0 width cell selected so a cell with this characteristics is skipped automatically in the process of finding a suitable cell. The other thing the overriden method SelectCell does is to call the user configurable event OnSelectCell: this event receives the cell coordinates as arguments and always returns a default result value of true.<br />
<br />
Once a cell is known to be focusable and we are sure a movement will take place, first the method BeforeMoveSelection is called; this in turns triggers the OnBeforeSelection event. This method's arguments are the coordinates for the new focused cell, at this point any visible editor is hidden too. The "before" word means that selection is not yet changed and current focused coordinates can be accessed with grid.Col and grid.Row properties. <br />
<br />
After that, the internal focused cell coordinates are changed and then method MoveSelection is called; this method's purpose is to trigger the OnSelection event if set (this is a notification that the focused cell has, by this time, already changed and cell coordinates are now available through grid.row and grid.col properties).<br />
<br />
Note that is not good to use OnSelectCell event to detect cell focus changes, as this event will be triggered several times even for the same cell in the process of finding a suitable cell. Is better to use OnBeforeSelection or OnSelection events for this purpose.<br />
<br />
===Several differences with Delphi have been identified===<br />
*In Lazarus TCustomGrid.DrawCell method is not abstract and its default implementation does basic cell background filling.<br />
*In Delphi, the cell's text is drawn before entering the OnDrawCell event (see [http://www.freepascal.org/mantis/view.php?id=9619 bug report #9619]).<br />
*SelectCell and OnSelectCell behaviour is probably different - can't really comment on the differences. In Lazarus they are used in functionality like AutoAdvance which as far as I know doesn't exist in Delphi.<br />
<br />
=== When above customizaton is not enough, derived grids ===<br />
Derived grids usually have to override following methods:<br><br />
DrawAllRows: Draws all visible rows.<br><br />
DrawRow: Draw All Cells in a Row.<br><br />
DrawRow draws all cells in the row by first checking if cell is within clipping region, and only draws the cell if it is.<br><br />
DrawCell:<br><br />
DrawCellGrid:<br><br />
DrawCellText:<br><br />
DrawFocusRect:<br><br />
(write me).<br><br />
<br />
=== Operations ===<br />
==== Focusing a cell ====<br />
<br />
Focusing a cell in TStringGrid is easy. Note that counting starts from zero not 1. So to focus row 10, column 9, do:<br />
<br />
<pre><br />
StringGrid1.row := 9;<br />
StringGrid1.col := 8;<br />
</pre><br />
<br />
==== Save and Retrieve Grid Content ====<br />
<br />
The '''SaveToFile''' procedure allows you save the TStringGrid format, attributes & values to a XML file.<br />
Previously you must set the SaveOptios property as follow:<br />
<br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
The '''LoadFromFile''' procedure allows you to load into a StringGrid instance, attributes, formats & values, from a <br />
'''XML''' file.<br />
First, you must set some of this options of the SaveOptions property (on your TStringGrid instance) [[SaveOptions]] <br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
----<br />
<br />
'''Example:'''<br />
# First, go to menu "File -> New -> Application";<br />
# Put an empty TStringGrid;<br />
# Put a TButton and TOpenDialog;<br />
# Add the event OnCreate for the Form;<br />
# Add the event OnClick for the Button.<br />
<delphi><br />
unit Unit1; <br />
<br />
{$mode objfpc}{$H+}<br />
<br />
interface<br />
<br />
uses<br />
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids,<br />
Buttons, StdCtrls, XMLCfg;<br />
<br />
type<br />
<br />
{ TForm1 }<br />
TForm1 = class(TForm)<br />
StringGrid1: TStringGrid;<br />
Button1: TButton;<br />
OpenDialog1: TOpenDialog;<br />
procedure Button1Click(Sender: TObject);<br />
procedure Form1Create(Sender: TObject);<br />
private<br />
{ private declarations }<br />
public<br />
{ public declarations }<br />
end; <br />
<br />
var<br />
Form1: TForm1; <br />
<br />
implementation<br />
<br />
{ TForm1 }<br />
<br />
procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
//sets the SaveOptions at creation time of the form <br />
stringgrid1.SaveOptions := [soDesign,soPosition,soAttributes,soContent];<br />
end;<br />
<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
//Ask if thew Execute method of the OpenDialog was launched <br />
//when this occurs, the user selects an XML file to Load<br />
//wich name was stored in the FileName prop.<br />
<br />
if opendialog1.Execute then<br />
Begin<br />
//Clear the grid <br />
StringGrid1.Clear;<br />
//Load the XML<br />
StringGrid1.LoadFromFile(OpenDialog1.FileName);<br />
//Refresh the Grid<br />
StringGrid1.Refresh;<br />
End;<br />
end;<br />
<br />
initialization<br />
{$I unit1.lrs}<br />
<br />
end.<br />
</delphi><br />
----<br />
'''The sample xml file:'''<br />
(Copy the text below into a txt file. Don't forget put the xml header :-))<br />
<xml><br />
<?xml version="1.0"?><br />
<CONFIG><br />
<grid version="3"><br />
<saveoptions create="True" position="True" content="True"/><br />
<design columncount="2" rowcount="5" fixedcols="1" fixedrows="1" defaultcolwidth="64" defaultRowHeight="20"><br />
<options><br />
<goFixedVertLine value="True"/><br />
<goFixedHorzLine value="True"/><br />
<goVertLine value="True"/><br />
<goHorzLine value="True"/><br />
<goRangeSelect value="True"/><br />
<goDrawFocusSelected value="False"/><br />
<goRowSizing value="False"/><br />
<goColSizing value="False"/><br />
<goRowMoving value="False"/><br />
<goColMoving value="False"/><br />
<goEditing value="False"/><br />
<goTabs value="False"/><br />
<goRowSelect value="False"/><br />
<goAlwaysShowEditor value="False"/><br />
<goThumbTracking value="False"/><br />
<goColSpanning value="False"/><br />
<goRelaxedRowSelect value="False"/><br />
<goDblClickAutoSize value="False"/><br />
<goSmoothScroll value="True"/><br />
</options><br />
</design><br />
<position topleftcol="1" topleftrow="1" col="1" row="1"><br />
<selection left="1" top="1" right="1" bottom="1"/><br />
</position><br />
<content><br />
<cells cellcount="10"><br />
<cell1 column="0" row="0" text="Title Col1"/><br />
<cell2 column="0" row="1" text="value(1.1)"/><br />
<cell3 column="0" row="2" text="value(2.1)"/><br />
<cell4 column="0" row="3" text="value(3.1)"/><br />
<cell5 column="0" row="4" text="value(4.1)"/><br />
<cell6 column="1" row="0" text="Title Col2"/><br />
<cell7 column="1" row="1" text="value(1.2)"/><br />
<cell8 column="1" row="2" text="value(2.2)"/><br />
<cell9 column="1" row="3" text="value(3.2)"/><br />
<cell10 column="1" row="4" text="value(4.2)"/><br />
</cells><br />
</content><br />
</grid><br />
</CONFIG><br />
</xml><br />
----<br />
--[[User:Raditz|Raditz]] 21:06, 11 Jan 2006 (CET) from '''ARGENTINA'''<br />
<br />
=== Grid Cell Editors ===<br />
<br />
The grid uses cell editors to change the content of cells. <br />
<br />
For a specialized grid like TStringGrid, the editor is the usual single line text editor control, but sometimes it's desirable to have other means to enter information. For example, to call the open file dialog to find the location of a file so the user doesn't have to type the full path manually; if the text in the cell represents a date, it would be more friendly if we could popup a calendar so we can choose a specific date easily. <br />
<br />
Sometimes the information the user should enter in a cell is restricted to a limited list of words; in this case typing the information directly might introduce errors and validating routines might need to be implemented. We can avoid this by using a cell editor that presents the user with a list containing only the legal values. <br />
<br />
This is also the case for generic grids like TDrawGrid where the user needs some kind of structure to hold the data that will be shown in the grid. In this situation, the information that is entered in the cell editor updates the internal structure to reflect the changes in the grid.<br />
<br />
==== Builtin cell editors ====<br />
<br />
The grids.pas unit already includes some of the most used cell editors ready for use in grids. It is also possible to create new cell editors (custom cell editors) if the built-in editors are not appropiate for a specific task.<br />
<br />
The builtin cell editors are Button, Edit, and Picklist.<br />
<br />
==== Using cell editors ====<br />
<br />
Users can specify what editor will be used for a cell using one of two methods.<br />
<br />
#'''Using a custom column and selecting the ButtonStyle property of the column'''. In this method the user can select the style of the editor that will be shown. Available values are: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn.<br />
#'''Using OnSelectEditor grid event'''. Here the user specifies in the Editor parameter which editor to use for a cell identified for column aCol and row ARow in a TCustomDrawGrid derived grid or TColumn in TCustomDBGrid. For this purpose there is a useful public function of grids, EditorByStyle() that takes as parameter one of the following values: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn. This method takes precedence over the first one using custom columns. A Custom cell editor can be specified here. This event is also the place to setup the editor with values specific to the cell, row or column.<br />
<br />
==== Description of editor styles ====<br />
<br />
The following is a description of the editor styles. They are enumerated values of type TColumnButtonStyle and so they are prefixed by 'cbs'. This type was used to remain compatible with Delphi's DBGrid.<br />
<br />
*'''cbsAuto'''<br />
:This is the default editor style for TCustomGrid derived grids. The actual editor class that will be used to edit the cell content depends on several factors. For TCustomGrids it uses a TStringCellEditor class derived from TCustomMaskEdit. This editor is specialized to edit single line strings. It is then used in TStringGrid and TDrawGrid by default. When using Custom Columns, if the programmer filled the Column's PickList property, this behaves as if cbsPickList editor style was set. For a TCustomDBGrid that has a field of type boolean, it behaves as if cbsCheckBoxColumn editor style was specified. This is the recommended value for Custom Cell Editors. TODO: related OnEditingDone.<br />
*'''cbsEllipsis'''<br />
:This editor style is the most generic one. When used, a button appears in the editing cell and programmers could use the OnEditButtonClick grid event to detect when the user has pressed the button and take any action programmed for such a cell. For example a programmer could use this editor style to pop up a calendar dialog to allow the user easily to select a specific date. Other possibilities could be to show a file open dialog to find files, a calculator so user can enter the numeric result of calcs, etc. <br />
<br />
:OnEditButtonClick is just a notification, to find out in which cell a button has been clicked by taking a look at the grid.Row and grid.Col properties.<br />
<br />
:A DBGrid has specific properties to retrieve the active column or field and because this event occurs in the active record, it could update the information in the active field.<br />
<br />
:This editor style is implemented using TButtonCellEditor, a direct descendant of TButton.<br />
*'''cbsNone'''<br />
:This editor style instructs the grid not to use any editor for a specific cell or column; it behaves then, as if the grid were readonly for such a cell or column.<br />
*'''cbsPickList'''<br />
:Used to present the user with a list of values that can be entered. This editor style is implemented using TPickListCellEditor, a component derived from TCustomComboBox. The list of values that are shown is filled in one of two ways depending on the method used to select the editor style.<br />
:#When using custom columns, programmers can enter a list of values using the column's PickList property. [FOR BEGINNERS: TODO: exact procedure to edit the list]<br />
:#In OnSelectEditor, programmers get the TPickListCellEditor instance using the function EditorByStyle(cbsPickList). An example would be: <br />
var Lst:TPickListCellEditor; <br />
begin [...] <br />
Lst:=TPickListCellEditor(EditorByStyle(cbsPickList)); <br />
Lst.clear; <br />
Lst.Items.add('One'); <br />
Lst.items.add('Two'); <br />
Editor:=Lst; <br />
end;<br />
:The value in a TStringGrid grid will automatically reflect the value selected. If necessary the programmer could detect the moment the value is selected by writing an event handler for the grid's OnPickListSelect event, so additional steps can be taken (for example, to process the new value). TODO: related OnEditingDone.<br />
*'''cbsCheckboxColumn'''<br />
:This editor style is at the moment only available in TDBGrid. It can be useful when field contents associated with the column are restricted to a pair of values, for example, yes-no, true-false, on-off, 1-0, etc. Instead of forcing the user to type the values for this kind of field in a StringCellEditor or to choose one from a list, cbsCheckboxColumn is used to modify the field content of a column by using a checkbox representation that the user can toggle by using a mouse click or pressing the SPACE key.<br />
<br />
:If a columns' ButtonStyle property is set to cbsAuto and DBGrid detects that the field associated with the column is a boolean field, then the grid uses this editor style automatically. This automatic selection can be disabled or enabled using DBGrid's OptionsExtra property; setting dgeCheckboxColumn element to false disables this feature.<br />
<br />
:The values that are used to recognize the checked or unchecked states are set in a column's properties ValueChecked and ValueUnchecked.<br />
<br />
:At any moment, the field value can be in one to three states: Unchecked, Checked or Grayed. Internally these states are identified by the following values of type TDBGridCheckBoxState: gcbpUnChecked, gcbpChecked and gcbpGrayed.<br />
<br />
:This editor style doesn't use real TCheckbox components to handle user interaction: the visual representation is given by three builtin bitmap images that corresponds to the possible states of checkbox. The used bitmaps can be customized by writing a handler for DBGrid event OnUserCheckboxBitmap; the handler of this event gets the state of the checkbox in the parameter CheckedState of type TDBGridCheckboxState and a bitmap parameter that the programmer could use to specify custom bitmaps.<br />
<br />
====Example: How to set a custom cell editor====<br />
<br />
See lazarus/examples/gridcelleditor/gridcelleditor.lpi<br />
<br />
====Example: How to add a buttom editor====<br />
<br />
// Showing Editor button...<br />
procedure TForm1.StringGrid1SelectEditor(Sender: TObject; aCol, aRow: Integer; var Editor: TWinControl);<br />
var<br />
Lst:TButtonCellEditor;<br />
begin<br />
if (aCol = 1) or (aCol = 2) then<br />
if StringGrid1.Cells[1,aRow] = '' then // Let's show editor only if Collumn1 is empty.<br />
begin<br />
Lst:=TButtonCellEditor(StringGrid1.EditorByStyle(cbsEllipsis));<br />
Editor:=Lst;<br />
end;<br />
end;<br />
<br />
// Triggering Action ...<br />
procedure TForm1.StringGrid1EditButtonClick(Sender: TObject);<br />
begin<br />
if StringGrid1.Col = 1 then Showmessage('collumn 1 editor clicked');<br />
if StringGrid1.Col = 2 then Showmessage('collumn 2 editor clicked');<br />
end;<br />
<br />
====Example: How to align collumm text in StringGrids====<br />
<br />
procedure TForm1.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer; aState: TGridDrawState);<br />
var<br />
MyTextStyle: TTextStyle;<br />
begin<br />
if (Col=2) or (Col=3) then<br />
begin<br />
MyTextStyle := StringGrid1.Canvas.TextStyle;<br />
if Col=2 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taRightJustify else <br />
if Col=3 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taCenter;<br />
StringGrid1.Canvas.TextStyle := MyTextStyle;<br />
end;<br />
end;<br />
<br />
== Todo ==<br />
*TInplaceEditor Support<br />
=== known problems ===<br />
29-marzo-2005:<br />
*mouse autoedit<br />
** linux: clicking a selected cell doesn't trigger the autoedit function (the editor lost focus inmmediatelly)<br />
** windows: it should work only if the grid has the focus, if not it should focus and a second click should autoedit (cannot detect if the grid was previously focused or not)<br />
*ColumnWidths: linux, windows: dbgrid start with default column widths instead of calculated ones (it's disabled because early canvas creation causes strange effects if the parent is a notebook page)<br />
*Resizing Columns: linux, windows. Resizing a column should not hide the editor (specially in dbgrid if we are inserting)<br />
*MouseWheel:<br />
**linux: mousewheel doesn't work as it should, (seems it's calling the default mousewheel handler)<br />
**windows: patch was sent.<br />
*Double painting: Apparently dbgrid paints the cell background twice (once with fillrect and once in textRect)<br />
*AutoFillColumns: sometimes the clientwidth is evaluated incorrectly (sometimes there are phantom scrollbars)</div>Smacehttps://wiki.freepascal.org/index.php?title=Grids_Reference_Page&diff=33524Grids Reference Page2009-01-29T12:38:57Z<p>Smace: /* Example: How to add buttom editor */</p>
<hr />
<div>{{Grids Reference Page}}<br />
<br />
== Objective ==<br />
This text will try to show the user some aspects of the grids components in Lazarus. Also is intended to serve as a guide for users who never used grids before (as experienced users generally only need a reference for new functionality).<br />
So this text will try to reach the following objectives:<br />
# To introduce the grids components to people with little or not previous Delphi contact.<br />
# To document the differences with respect to Delphi grids components.<br />
# To document the new functionality in Lazarus grids.<br />
# Create reference and examples for the components.<br />
<br />
== Overview ==<br />
A grid is a component that provides a mean for display data in tabular format. The most obvious characteristic of grids is that they are composed of cells forming rows and columns.<br />
<br />
The type of information that can be shown in a grid is very ample and mainly depends on what the user wants to show. Generally this information consists of text, colors, images or a combination of those three. <br />
<br />
Given the great variety of information that can be represented, a series of grids exits whose purpose is to facilitate the user in showing specific kinds of information.<br />
<br />
== Inheritence Tree ==<br />
<pre><br />
[TCustomControl] <br />
| <br />
| <br />
TCustomGrid <br />
| <br />
+-------------+------------+ <br />
| | <br />
TCustomDrawGrid TCustomDbGrid<br />
| | <br />
+--------+--------+ | <br />
| | TDbGrid <br />
TDrawGrid TCustomStringGrid <br />
| <br />
| <br />
TStringGrid <br />
</pre><br />
<br />
== A Starting Example ==<br />
As one of the objectives of this page is to help people with little or no previous Lazarus knowledge let's do a quick starting example of grids in action. Why not, let's make a traditional "hello world" example using the TStringGrid Component.<br />
#Create a new application. <br />
#*From the main menu select: project->New Project<br />
#*In the Create New Project dialog press the "Create Button"<br />
#*A new empty form will be shown.<br />
#Place a grid on the form<br />
#*From the component palette select the "additional" tab<br />
#*Click over the TStringGrid icon []<br />
#*Click over the form, near to the top left corner. A new empty grid appears.<br />
#Place a button on the form<br />
#*From the component palette select the "Standard" tab<br />
#*Click over the TButton icon []<br />
#*Click over a empty area of the form. A new button appears.<br />
#Doubleclick the button from the step 3, and write down the following code in the click button handler: <br />
#*Stringgrid1.Cells[1,1] := 'Hi World!';<br />
#Run the program by clicking the play icon []<br />
#*by pressing the button1, the hello world text should appear in cell column 1, row 1.<br />
<br />
== Differences between Lazarus and Delphi grids ==<br />
The current grids components present several differences with respect to Delphi grids. This is mainly because the Lazarus grids were created from scratch primarily without trying to make them fully compatible. <br />
<br />
At a later stage, compatibility with Delphi's grids became a desired objective and the grids started to conform more closely to the Delphi grid's interface, but even then this was done without a strong effort to make every single property or method match its Delphi counterpart.<br />
Also, because the grid's internals are very different, some things are not possible or need to be done in a different way in the Lazarus' grids.<br />
As the grids have evolved, greater compatibility has been achieved and this is desirable. <br />
=== Differences ===<br />
Here the known differences will be listed, in no special order.<br />
*Cell Editors <br />
*Designtime Behaviour<br />
*Cell Drawing has some differences, see customizing grid section.<br />
<br />
=== New Functionality ===<br />
*Columns<br />
*Events<br />
*Grid Editor<br />
=== Adjustments for improving Delphi grids compatibility ===<br />
Here is a list of properties and adjustments that can be made in order to make Lazarus grids look or behave similar to Delphi grids. These adjustments are based in a newly created grid. Entries tagged with [Code] need to be set in code, [Design] entries can be changed at design time.<br />
<br />
*[Design] TitleStyle := tsStandard;<br />
*[Design] DefaultRowHeight := 24; <br />
*[Code] EditorBorderStyle := bsNone; // this might work only on windows.<br />
*[Code] UseXORFeatures := true;<br />
*[Code] AllowOutBoundEvents := False; {r10992 or later}<br />
*[Code] FastEditing := False; (supported in dbgrid. StringGrid req. r10992 or later) <br />
*[Design] AutoAdvance := aaNone;<br />
<br />
== Grids Reference ==<br />
=== Information ===<br />
The starting point for reference about TCustomGrid, TDrawGrid, TCustomDrawGrid, TCustomStringGrid and TStringGrid is the [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference] <br />
<br />
For TCustomDBGrid and TDBgrid it is the <br />
[http://lazarus-ccr.sourceforge.net/docs/lcl/dbgrids/index.html unit DBGrids.pas reference]<br />
<br />
Until recently there has not been much content in these links, due partly to the lack of a tool that allows easily maintenance of its content: but such tool has been constructed and the gaps are being filled.<br />
<br />
In general, any Delphi reference about the grids should help us to use Lazarus grids (but don't forget that there are several differences between Delphi and Lazarus grids that we have documented); with this in mind and as a temporary place for reference information, this place will be used to document things that don't work the same as in Delphi, as well as any new functionality.<br />
<br />
TODO: the rest of this section will disappear; its content will be moved to [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference]<br />
<br />
=== TCustomGrid ===<br />
See the full [[doc:lcl/grids/tcustomgrid.html|TCustomGrid Reference]]<br />
==== property OnBeforeSelection: TOnSelectEvent ====<br />
==== property OnCompareCells: TOnCompareCells ====<br />
==== property OnPrepareCanvas: TOnPrepareCanvasEvent ====<br />
==== property OnDrawCell: TOnDrawCell ====<br />
==== property OnEditButtonClick: TNotifyEvent ====<br />
==== property OnSelection: TOnSelectEvent ====<br />
==== property OnSelectEditor: TSelectEditorEvent ====<br />
==== property OnTopLeftChanged: TNotifyEvent ====<br />
==== procedure AutoAdjustColumns; ====<br />
==== procedure BeginUpdate; ====<br />
==== procedure Clear; ====<br />
==== procedure DeleteColRow(IsColumn: Boolean; index: Integer); ====<br />
==== function EditorByStyle(Style: TColumnButtonStyle): TWinControl; ====<br />
==== procedure EndUpdate(UO: TUpdateOption); overload; ====<br />
==== procedure EndUpdate(FullUpdate: Boolean); overload; ====<br />
==== procedure EndUpdate; overload; ====<br />
==== procedure ExchangeColRow(IsColumn: Boolean; index, WithIndex:Integer); ====<br />
==== function IscellSelected(aCol,aRow: Integer): Boolean; ====<br />
==== function IscellVisible(aCol, aRow: Integer): Boolean; ====<br />
==== procedure LoadFromFile(FileName: string); ====<br />
==== function MouseToCell(Mouse: TPoint): TPoint; overload; ====<br />
==== function MouseToLogcell(Mouse: TPoint): TPoint; ====<br />
==== function MouseToGridZone(X,Y: Integer): TGridZone; ====<br />
==== function CellToGridZone(aCol,aRow: Integer): TGridZone; ====<br />
==== procedure MoveColRow(IsColumn: Boolean; FromIndex, ToIndex: Integer); ====<br />
==== procedure SaveToFile(FileName: string); ====<br />
==== procedure SortColRow(IsColumn: Boolean; index:Integer); overload; ====<br />
==== procedure SortColRow(IsColumn: Boolean; index,FromIndex,ToIndex: Integer); overload; ====<br />
==== property AllowOutboundEvents:boolean; ====<br />
protected in TCustomGrid, public in TCustomDrawGrid and descendants.<br />
Normally when user do click on a point over empty space after cells (for example if grid has three rows but user clicks on imaginary fourth row) the current focused cell will move to the nearest cell to clicked point, we call this an outbound event, default value is true as this has been grid's behaviour since begining. This property was added to simulate Delphi behaviour where outbound events are not available, to enable delphi compatibility set this property to false.<br />
<br />
=== TCustomStringGrid ===<br />
TCustomStringGrid serves as the base for TStringGrid. It can be used for derived TStringGrid components that want to hide published properties. See [[new intermediate grids]] for more information.<br />
<br />
The following properties or methods are public and are also available to TStringGrid.<br />
<br />
See the full [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tcustomstringgrid.html TCustomStringGrid Reference]<br />
==== procedure AutoSizeColumn(aCol: Integer); ====<br />
This procedure sets the column width to the size of the widest text it finds in all rows for the column aCol. Tip: see the goDblClickAutoSize option to allow columns to be automatically resized when doubleClicking the column border.<br />
<br />
==== procedure AutoSizeColumns; ====<br />
Automatically resizes all columns by adjusting them to fit in the longest text in each column. This is a quick method of applying AutoSizeColumn() for every column in the grid.<br />
==== procedure Clean; overload; ====<br />
Cleans all cells in the grid, fixed or not.<br />
==== procedure Clean(CleanOptions: TGridZoneSet); overload; ====<br />
Cleans all cells in the grid subject to the given CleanOptions. See [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tgridzoneset.html TGridZoneSet] for more information. Some examples:<br />
*Clean all cells: grid.Clean([]); (the same as grid.clean)<br />
*Clean all non fixed cells: grid.Clean([gzNormal]);<br />
*Clean all cells but don't touch grid column headers: Grid.Clean([gzNormal, gzFixedRows]);<br />
<br />
==== procedure Clean(StartCol,StartRow,EndCol,EndRow: integer; CleanOptions:TGridZoneSet); overload; ====<br />
does the same as Clean(CleanOptions:TGridZoneSet) but restricted to the given StartCol,StartRow,EndCol and EndRow. Examples:<br />
*Clean column index 4 to 6 but don't touch grid column headers: many variations, Grid.Clean(4,Grid.FixedRows,6,Grid.RowCount-1,[]); Grid.Clean(4,0,6,Grid,RowCount-1, [gzNormal]); etc.<br />
==== procedure Clean(aRect: TRect; CleanOptions: TGridZoneSet); overload; ====<br />
The same as Clean(StartCol,StartRow,EndCol,EndRow, CleanOptions), just taking a TRect instead of individual cell coordinates. Useful to clean the selection: grid.Clean(Grid.Selection,[]);<br />
==== property Cols[index: Integer]: TStrings read GetCols write SetCols; ====<br />
Get/set a list of strings from/to the given grid's column index starting from row index 0 to RowCount-1. <br />
===== Examples =====<br />
*Set Example: Set the content of the third column in the grid from a ListBox:<br />
Grid.Cols[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's column index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Cols[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the column content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grids content or layout. <br />
<br />
See the Get Example.<br />
<br />
==== property Rows[index: Integer]: TStrings read GetRows write SetRows; ====<br />
Get/set a list of strings from/to the given grid's row index starting from column index 0 to column ColCount-1. <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the row content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grid's content or layout. <br />
<br />
===== Examples =====<br />
*Set Example: Set the content of the third row in the grid from a ListBox:<br />
Grid.Rows[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's row index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Rows[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
*An Example that doesn't work, and its Fix: Retrieved string list is read only<br />
// this will not work and will cause memory leak<br />
// because returned StringList is not being freed<br />
Grid.Rows[1].CommaText := '1,2,3,4,5';<br />
Grid.Rows[2].Text := 'a'+#13#10+'s'+#13#10+'d'+#13#10+'f'+#13#10+'g'; <br />
<br />
// fixing the first case<br />
Lst:=TStringList.Create;<br />
Lst.CommaText := '1,2,3,4,5';<br />
Grid.Rows[1] := Lst;<br />
Lst.Free;<br />
<br />
==== property UseXORFeatures; ====<br />
Boolean property, default value: False;<br />
<br />
This property controls how the dotted focus rectangle appears in the grid. When True, the rectangle is painted using the XOR raster operation. This allow us to see the focus rectangle no matter what the cells' background color is. When False, the user can control the color of the dotted focus rectangle using the [[FocusColor property]]<br />
<br />
It also controls the look of the column/row resizing. When True, a line shows visually the size that the the column or row will have if the user ends the operation. When False, the column or row resizing takes effect just as the user drags the mouse.<br />
<br />
== Grids Howto ==<br />
=== Customizing grids ===<br />
Grid are components derived from the [http://lazarus-ccr.sourceforge.net/docs/lcl/controls/tcustomcontrol.html TCustomControl] class, and don't have a native widget associated with them which means that grids are not restricted by the look of current interface theme. This can be both an advantage and a disadvantage: usually programmers want to create a uniform-look application. The good news is that Lazarus grids are flexible enough to get something from both worlds; programmers can easily make grids look similar to other native controls, or they can customize the grid to the finest detail so they can obtain almost the same look in any platform or widget interface (that is, with the exception of scrollbars, because their look is still determined by the current theme).<br />
<br />
=== Properties and Events for customizing grids ===<br />
Some properties can affect the way the grid looks by acting when the cell is about to be painted in PrepareCanvas/OnPrepareCanvas by changing default canvas properties like brush color or font. Following is a list of such properties:<br />
*'''AlternateColor.''' With this the user can change the background color appears on alternated rows. This is to allow easy reading off of grid rows data.<br />
*'''Color.''' This sets the primary color used to draw non fixed cells background.<br />
*'''FixedColor.''' This is the color used to draw fixed cells background.<br />
*'''Flat.''' this eliminates the 3d look of fixed cells.<br><br />
*'''TitleFont.''' Font used to draw the text in fixed cells.<br><br />
*'''TitleStyle.''' This property changes the 3D look of fixed cells, there are 3 settings:<br />
**''tsLazarus.'' This is the default look<br />
**''tsNative.'' This tries to set a look that is in concordance with current widgetset theme.<br />
**''tsStandard.'' This style is a more contrasted look, like delphi grids.<br />
*'''AltColorStartNormal.''' boolean, if true alternate color is always in the second row after fixed rows, the first row after fixed rows will be always color, if false default color is set to the first row as if there were no fixed rows.<br />
*'''BorderColor.''' This sets the grid's border color used when Flat:=True and BorderStyle:=bsSingle;<br />
*'''EditorBorderStyle.''' If set to bsNone under windows the cell editors will not have the border, like in delphi, set to bsSingle by default because the border can be theme specific in some widgetsets and to allow a uniform look.<br><br />
*'''FocusColor.''' The color used to draw the current focused cell if UseXORFeatures is not set, by default this is clRed.<br />
*'''FocusRectVisible.''' turns on/off the drawing of focused cell.<br />
*'''GridLineColor.''' color of grid lines in non fixed area.<br />
*'''GridLineStyle.''' Pen style used to draw lines in non fixed area, possible choices are: ''psSolid'', ''psDash'', ''psDot'', ''psDashDot'', ''psDashDotDot'', ''psinsideFrame'', ''psPattern'',''psClear''. default is ''psSolid''.<br />
*'''SelectedColor.''' Color used to draw cell background on selected cells.<br />
*'''UseXORFeatures.''' If set, focus rect is drawn using XOR mode so it should make visible the focus rect in combination with any cell color ackground. It also affects the moving columns look.<br />
*'''DefaultDrawing.''' boolean. Normally the grids prepare the grid canvas using some properties according to the kind of cell is being painted. If user write an OnDrawCell event handler, DefaultDrawing if set also paints the cell background, if user is drawing fully the cell is better turn off this property so painting is not duplicated. In a StringGrid if DefaultDrawing is set it draws the text in each cell.<br />
*'''AutoAdvance.''' where the cell cursor will go when pressing enter or tab/shift tab, or after editing.<br />
*'''ExtendedColSizing.''' If true user can resize columns not just at the headers but along the columns height.<br />
Other properties that also affect the grids look.<br />
<br />
'''Options'''. Options property is a set with some elements to enable diverse functionality but some are related directly with grid's look. This options can be set at designtime or runtime.<br />
*'''goFixedVertLine, goFixedHorzLine''' it draws a vertical or horizontal line respectively delimiting cells or columns in fixed area, active by default.<br />
*'''goVertLine, goHorzLine''' the same as previous, but for normal browseable area. A grid can be made to simulate a listbox by unsetting both of this elements.<br />
*'''goDrawFocusSelected''' if this element is enabled a selection background is painted in focused cell in addition to focused dotted rectangle (note this doesn't work yet when goRowSelect option is set, in such case row is always painted as if goDrawFocusSelected is set)<br />
*'''goRowSelect''' select the full row instead of individual cells<br />
*'''goFixedRowNumbering''' if set, grid will do numbering of rows in first fixed column<br />
*'''goHeaderHotTracking''' if set, the grid will try to show a different look when the mouse cursor is overing any fixed cell. In order for this to work, desired cell zone needs to be enabled with property HeaderHotZones. Try combining this option with property TitleStyle:=tsNative to get themed hot tracking look.<br />
*'''goHeaderPushedLook''' if set, this element enables a pushed look when clicking any fixed cell. The zone of "pushable" cells is enabled using HeaderPusedZones property.<br />
<br />
(write more)<br />
<br />
=== Description of grid's drawing process ===<br />
Like other custom controls, the grid is drawn using the paint method. In general terms the grid is drawn by painting all rows, and each row by painting its individual cells. <br />
<br />
The process is as follow:<br />
*First the visible cells area is determined: each row is tested to see if it intersects the canvas clipping region; if it's ok, then the visible area is painted by drawing columns of each row. <br />
*The column and row values are used to identify the cell that is about to be painted and again each column is tested for intersection with the clippling region; if everything is ok, some additional properties like the cell's rectangular extent and visual state are passed as arguments to the DrawCell method.<br />
*As the drawing process is running, the visual state of each cell is adjusted according to grid options and position within grid. The visual state is retained in a varible of type TGridDrawState which is a set with following elements:<br />
**''gdSelected'' The cell will have a selected look.<br />
**''gdFocused'' The cell will have a focused look.<br />
**''gdFixed'' Cell have to be painted with fixed cell look.<br />
**''gdHot'' the mouse is over this cell, so paint it with hot tracking look<br />
**''gdPushed'' the cell is being clicked, paint it with pushed look <br />
*'''DrawCell.''' The DrawCell method is virtual and may be overriden in descendant grids to do custom drawing. The information passed to DrawCell helps to identify the particular cell is being painted, the physical area ocuppied in screen and its visible status. See DrawCell reference for details. For each cell the following occurs:<br />
*'''PrepareCanvas.''' In this method, if the DefaultDrawing property is set, the grid canvas is setup with default properties for brush and font based on current visual state. For several design and runtime properties, the text alignment is set to match programmer selection in custom columns if they exists. If DefaultDrawing is false, brush color is set to clWindow and Font color to clWindowText, the text alignment is set with grids defaultTextStyle property value.<br />
*'''OnPrepareCanvas.''' If the programmer wrote an event handler for OnPrepareCanvas event, it is called at this point. This event can be used for doing simple customization like changing cell's background color, font's properties like color, fontface and style, Text layout like different combinations of left, center, top, bottom, right alignment, etc. Any change made to the canvas in this event would be lost, because the next cell drawing will reset canvas again to a default state. So it's safe doing changes only for particular cell or cells and forget about it for the rest. Using this event sometimes helps to avoid using the OnDrawCell grid event, where users would be forced to duplicate the grid's drawing code. Todo: samples of what can be made and what to leave for OnDrawCell?...<br />
*'''OnDrawCell.''' Next if no handler for OnDrawCell event was specified, the grid calls the DefaultDrawCell method which simply paints the cell background using the current canvas brush color and style. If the OnDrawCell handler exists, the grid first paints the cell background but only if DefaultDrawing property was set, then it calls OnDrawCell event to do custom cell painting. Usually programmers want to do custom drawing only for particular cells, but standard drawing for others; in this case, they can restrict custom operation to certain cell or cells by looking into ACol, ARow and AState arguments, and for other cells simply call DefaultDrawCell method and let the grid to take care of it.<br />
*'''Text.''' At this point (only for TStringGrid) if DefaultDrawing property is true, the cell's text content is painted.<br />
*'''Grid lines'''. The last step for each cell is to paint the grid lines: if grid options goVertLine, goHorzLine, goFixedVertLine and goFixedHorzLine are specified the cell grid is drawn at this point. Grids with only rows or only cols can be obtained by changing these options. If the programmer elected to have a "themed" look it is done at this point also (see property TitleStyle).<br />
*'''FocusRect.''' When all columns of current row have been painted it is time to draw the focus rectangle for the current selected cell or for the whole row if goRowSelect option is set.<br />
<br />
===Grid's cell selection===<br />
The location of a grid's current (focused) cell (or row) can be changed using keyboard, mouse or through code. In order to change cell focus successfully to another position, we must test the target position to see if it is allowed to receive cell focus. When using keyboard, the property AutoAdvance performs part of the process by finding what should be the next focused cell. When using mouse clicks or moving by code, focus will not move from the current cell unless the target cell is permitted to receive focus.<br />
<br />
The grid calls function SelectCell to see if a cell is focusable: if this function returns true, then the target cell identified with arguments aCol and aRow is focusable (the current implementation of TCustomGrid simply returns true). TCustomDrawGrid and hence TDrawGrid and TStringGrid override this method to check first if cell is any wider than 0; normally you don't want a 0 width cell selected so a cell with this characteristics is skipped automatically in the process of finding a suitable cell. The other thing the overriden method SelectCell does is to call the user configurable event OnSelectCell: this event receives the cell coordinates as arguments and always returns a default result value of true.<br />
<br />
Once a cell is known to be focusable and we are sure a movement will take place, first the method BeforeMoveSelection is called; this in turns triggers the OnBeforeSelection event. This method's arguments are the coordinates for the new focused cell, at this point any visible editor is hidden too. The "before" word means that selection is not yet changed and current focused coordinates can be accessed with grid.Col and grid.Row properties. <br />
<br />
After that, the internal focused cell coordinates are changed and then method MoveSelection is called; this method's purpose is to trigger the OnSelection event if set (this is a notification that the focused cell has, by this time, already changed and cell coordinates are now available through grid.row and grid.col properties).<br />
<br />
Note that is not good to use OnSelectCell event to detect cell focus changes, as this event will be triggered several times even for the same cell in the process of finding a suitable cell. Is better to use OnBeforeSelection or OnSelection events for this purpose.<br />
<br />
===Several differences with Delphi have been identified===<br />
*In Lazarus TCustomGrid.DrawCell method is not abstract and its default implementation does basic cell background filling.<br />
*In Delphi, the cell's text is drawn before entering the OnDrawCell event (see [http://www.freepascal.org/mantis/view.php?id=9619 bug report #9619]).<br />
*SelectCell and OnSelectCell behaviour is probably different - can't really comment on the differences. In Lazarus they are used in functionality like AutoAdvance which as far as I know doesn't exist in Delphi.<br />
<br />
=== When above customizaton is not enough, derived grids ===<br />
Derived grids usually have to override following methods:<br><br />
DrawAllRows: Draws all visible rows.<br><br />
DrawRow: Draw All Cells in a Row.<br><br />
DrawRow draws all cells in the row by first checking if cell is within clipping region, and only draws the cell if it is.<br><br />
DrawCell:<br><br />
DrawCellGrid:<br><br />
DrawCellText:<br><br />
DrawFocusRect:<br><br />
(write me).<br><br />
<br />
=== Operations ===<br />
==== Focusing a cell ====<br />
<br />
Focusing a cell in TStringGrid is easy. Note that counting starts from zero not 1. So to focus row 10, column 9, do:<br />
<br />
<pre><br />
StringGrid1.row := 9;<br />
StringGrid1.col := 8;<br />
</pre><br />
<br />
==== Save and Retrieve Grid Content ====<br />
<br />
The '''SaveToFile''' procedure allows you save the TStringGrid format, attributes & values to a XML file.<br />
Previously you must set the SaveOptios property as follow:<br />
<br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
The '''LoadFromFile''' procedure allows you to load into a StringGrid instance, attributes, formats & values, from a <br />
'''XML''' file.<br />
First, you must set some of this options of the SaveOptions property (on your TStringGrid instance) [[SaveOptions]] <br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
----<br />
<br />
'''Example:'''<br />
# First, go to menu "File -> New -> Application";<br />
# Put an empty TStringGrid;<br />
# Put a TButton and TOpenDialog;<br />
# Add the event OnCreate for the Form;<br />
# Add the event OnClick for the Button.<br />
<delphi><br />
unit Unit1; <br />
<br />
{$mode objfpc}{$H+}<br />
<br />
interface<br />
<br />
uses<br />
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids,<br />
Buttons, StdCtrls, XMLCfg;<br />
<br />
type<br />
<br />
{ TForm1 }<br />
TForm1 = class(TForm)<br />
StringGrid1: TStringGrid;<br />
Button1: TButton;<br />
OpenDialog1: TOpenDialog;<br />
procedure Button1Click(Sender: TObject);<br />
procedure Form1Create(Sender: TObject);<br />
private<br />
{ private declarations }<br />
public<br />
{ public declarations }<br />
end; <br />
<br />
var<br />
Form1: TForm1; <br />
<br />
implementation<br />
<br />
{ TForm1 }<br />
<br />
procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
//sets the SaveOptions at creation time of the form <br />
stringgrid1.SaveOptions := [soDesign,soPosition,soAttributes,soContent];<br />
end;<br />
<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
//Ask if thew Execute method of the OpenDialog was launched <br />
//when this occurs, the user selects an XML file to Load<br />
//wich name was stored in the FileName prop.<br />
<br />
if opendialog1.Execute then<br />
Begin<br />
//Clear the grid <br />
StringGrid1.Clear;<br />
//Load the XML<br />
StringGrid1.LoadFromFile(OpenDialog1.FileName);<br />
//Refresh the Grid<br />
StringGrid1.Refresh;<br />
End;<br />
end;<br />
<br />
initialization<br />
{$I unit1.lrs}<br />
<br />
end.<br />
</delphi><br />
----<br />
'''The sample xml file:'''<br />
(Copy the text below into a txt file. Don't forget put the xml header :-))<br />
<xml><br />
<?xml version="1.0"?><br />
<CONFIG><br />
<grid version="3"><br />
<saveoptions create="True" position="True" content="True"/><br />
<design columncount="2" rowcount="5" fixedcols="1" fixedrows="1" defaultcolwidth="64" defaultRowHeight="20"><br />
<options><br />
<goFixedVertLine value="True"/><br />
<goFixedHorzLine value="True"/><br />
<goVertLine value="True"/><br />
<goHorzLine value="True"/><br />
<goRangeSelect value="True"/><br />
<goDrawFocusSelected value="False"/><br />
<goRowSizing value="False"/><br />
<goColSizing value="False"/><br />
<goRowMoving value="False"/><br />
<goColMoving value="False"/><br />
<goEditing value="False"/><br />
<goTabs value="False"/><br />
<goRowSelect value="False"/><br />
<goAlwaysShowEditor value="False"/><br />
<goThumbTracking value="False"/><br />
<goColSpanning value="False"/><br />
<goRelaxedRowSelect value="False"/><br />
<goDblClickAutoSize value="False"/><br />
<goSmoothScroll value="True"/><br />
</options><br />
</design><br />
<position topleftcol="1" topleftrow="1" col="1" row="1"><br />
<selection left="1" top="1" right="1" bottom="1"/><br />
</position><br />
<content><br />
<cells cellcount="10"><br />
<cell1 column="0" row="0" text="Title Col1"/><br />
<cell2 column="0" row="1" text="value(1.1)"/><br />
<cell3 column="0" row="2" text="value(2.1)"/><br />
<cell4 column="0" row="3" text="value(3.1)"/><br />
<cell5 column="0" row="4" text="value(4.1)"/><br />
<cell6 column="1" row="0" text="Title Col2"/><br />
<cell7 column="1" row="1" text="value(1.2)"/><br />
<cell8 column="1" row="2" text="value(2.2)"/><br />
<cell9 column="1" row="3" text="value(3.2)"/><br />
<cell10 column="1" row="4" text="value(4.2)"/><br />
</cells><br />
</content><br />
</grid><br />
</CONFIG><br />
</xml><br />
----<br />
--[[User:Raditz|Raditz]] 21:06, 11 Jan 2006 (CET) from '''ARGENTINA'''<br />
<br />
=== Grid Cell Editors ===<br />
<br />
The grid uses cell editors to change the content of cells. <br />
<br />
For a specialized grid like TStringGrid, the editor is the usual single line text editor control, but sometimes it's desirable to have other means to enter information. For example, to call the open file dialog to find the location of a file so the user doesn't have to type the full path manually; if the text in the cell represents a date, it would be more friendly if we could popup a calendar so we can choose a specific date easily. <br />
<br />
Sometimes the information the user should enter in a cell is restricted to a limited list of words; in this case typing the information directly might introduce errors and validating routines might need to be implemented. We can avoid this by using a cell editor that presents the user with a list containing only the legal values. <br />
<br />
This is also the case for generic grids like TDrawGrid where the user needs some kind of structure to hold the data that will be shown in the grid. In this situation, the information that is entered in the cell editor updates the internal structure to reflect the changes in the grid.<br />
<br />
==== Builtin cell editors ====<br />
<br />
The grids.pas unit already includes some of the most used cell editors ready for use in grids. It is also possible to create new cell editors (custom cell editors) if the built-in editors are not appropiate for a specific task.<br />
<br />
The builtin cell editors are Button, Edit, and Picklist.<br />
<br />
==== Using cell editors ====<br />
<br />
Users can specify what editor will be used for a cell using one of two methods.<br />
<br />
#'''Using a custom column and selecting the ButtonStyle property of the column'''. In this method the user can select the style of the editor that will be shown. Available values are: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn.<br />
#'''Using OnSelectEditor grid event'''. Here the user specifies in the Editor parameter which editor to use for a cell identified for column aCol and row ARow in a TCustomDrawGrid derived grid or TColumn in TCustomDBGrid. For this purpose there is a useful public function of grids, EditorByStyle() that takes as parameter one of the following values: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn. This method takes precedence over the first one using custom columns. A Custom cell editor can be specified here. This event is also the place to setup the editor with values specific to the cell, row or column.<br />
<br />
==== Description of editor styles ====<br />
<br />
The following is a description of the editor styles. They are enumerated values of type TColumnButtonStyle and so they are prefixed by 'cbs'. This type was used to remain compatible with Delphi's DBGrid.<br />
<br />
*'''cbsAuto'''<br />
:This is the default editor style for TCustomGrid derived grids. The actual editor class that will be used to edit the cell content depends on several factors. For TCustomGrids it uses a TStringCellEditor class derived from TCustomMaskEdit. This editor is specialized to edit single line strings. It is then used in TStringGrid and TDrawGrid by default. When using Custom Columns, if the programmer filled the Column's PickList property, this behaves as if cbsPickList editor style was set. For a TCustomDBGrid that has a field of type boolean, it behaves as if cbsCheckBoxColumn editor style was specified. This is the recommended value for Custom Cell Editors. TODO: related OnEditingDone.<br />
*'''cbsEllipsis'''<br />
:This editor style is the most generic one. When used, a button appears in the editing cell and programmers could use the OnEditButtonClick grid event to detect when the user has pressed the button and take any action programmed for such a cell. For example a programmer could use this editor style to pop up a calendar dialog to allow the user easily to select a specific date. Other possibilities could be to show a file open dialog to find files, a calculator so user can enter the numeric result of calcs, etc. <br />
<br />
:OnEditButtonClick is just a notification, to find out in which cell a button has been clicked by taking a look at the grid.Row and grid.Col properties.<br />
<br />
:A DBGrid has specific properties to retrieve the active column or field and because this event occurs in the active record, it could update the information in the active field.<br />
<br />
:This editor style is implemented using TButtonCellEditor, a direct descendant of TButton.<br />
*'''cbsNone'''<br />
:This editor style instructs the grid not to use any editor for a specific cell or column; it behaves then, as if the grid were readonly for such a cell or column.<br />
*'''cbsPickList'''<br />
:Used to present the user with a list of values that can be entered. This editor style is implemented using TPickListCellEditor, a component derived from TCustomComboBox. The list of values that are shown is filled in one of two ways depending on the method used to select the editor style.<br />
:#When using custom columns, programmers can enter a list of values using the column's PickList property. [FOR BEGINNERS: TODO: exact procedure to edit the list]<br />
:#In OnSelectEditor, programmers get the TPickListCellEditor instance using the function EditorByStyle(cbsPickList). An example would be: <br />
var Lst:TPickListCellEditor; <br />
begin [...] <br />
Lst:=TPickListCellEditor(EditorByStyle(cbsPickList)); <br />
Lst.clear; <br />
Lst.Items.add('One'); <br />
Lst.items.add('Two'); <br />
Editor:=Lst; <br />
end;<br />
:The value in a TStringGrid grid will automatically reflect the value selected. If necessary the programmer could detect the moment the value is selected by writing an event handler for the grid's OnPickListSelect event, so additional steps can be taken (for example, to process the new value). TODO: related OnEditingDone.<br />
*'''cbsCheckboxColumn'''<br />
:This editor style is at the moment only available in TDBGrid. It can be useful when field contents associated with the column are restricted to a pair of values, for example, yes-no, true-false, on-off, 1-0, etc. Instead of forcing the user to type the values for this kind of field in a StringCellEditor or to choose one from a list, cbsCheckboxColumn is used to modify the field content of a column by using a checkbox representation that the user can toggle by using a mouse click or pressing the SPACE key.<br />
<br />
:If a columns' ButtonStyle property is set to cbsAuto and DBGrid detects that the field associated with the column is a boolean field, then the grid uses this editor style automatically. This automatic selection can be disabled or enabled using DBGrid's OptionsExtra property; setting dgeCheckboxColumn element to false disables this feature.<br />
<br />
:The values that are used to recognize the checked or unchecked states are set in a column's properties ValueChecked and ValueUnchecked.<br />
<br />
:At any moment, the field value can be in one to three states: Unchecked, Checked or Grayed. Internally these states are identified by the following values of type TDBGridCheckBoxState: gcbpUnChecked, gcbpChecked and gcbpGrayed.<br />
<br />
:This editor style doesn't use real TCheckbox components to handle user interaction: the visual representation is given by three builtin bitmap images that corresponds to the possible states of checkbox. The used bitmaps can be customized by writing a handler for DBGrid event OnUserCheckboxBitmap; the handler of this event gets the state of the checkbox in the parameter CheckedState of type TDBGridCheckboxState and a bitmap parameter that the programmer could use to specify custom bitmaps.<br />
<br />
====Example: How to set a custom cell editor====<br />
<br />
See lazarus/examples/gridcelleditor/gridcelleditor.lpi<br />
<br />
====Example: How to add a buttom editor====<br />
<br />
// Showing Editor button...<br />
procedure TForm1.StringGrid1SelectEditor(Sender: TObject; aCol, aRow: Integer; var Editor: TWinControl);<br />
var<br />
Lst:TButtonCellEditor;<br />
begin<br />
if (aCol = 1) or (aCol = 2) then<br />
if StringGrid1.Cells[1,aRow] = '' then // Let's show editor only if Collumn1 is empty.<br />
begin<br />
Lst:=TButtonCellEditor(StringGrid1.EditorByStyle(cbsEllipsis));<br />
Editor:=Lst;<br />
end;<br />
end;<br />
<br />
// Triggering Action ...<br />
procedure TForm1.StringGrid1EditButtonClick(Sender: TObject);<br />
begin<br />
if StringGrid1.Col = 1 then Showmessage('collumn 1 editor clicked');<br />
if StringGrid1.Col = 2 then Showmessage('collumn 2 editor clicked');<br />
end;<br />
<br />
====Example: How to align collumm text in StringGrids====<br />
<br />
procedure TForm1.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer; aState: TGridDrawState);<br />
var<br />
MyTextStyle: TTextStyle;<br />
begin<br />
if (Col=2) or (Col=3) then<br />
begin<br />
MyTextStyle := StringGrid1.Canvas.TextStyle;<br />
if Col=2 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taRightJustify else <br />
if Col=3 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taCenter;<br />
StringGrid1.Canvas.TextStyle := MyTextStyle;<br />
end;<br />
end;<br />
<br />
== Todo ==<br />
*TInplaceEditor Support<br />
=== known problems ===<br />
29-marzo-2005:<br />
*mouse autoedit<br />
** linux: clicking a selected cell doesn't trigger the autoedit function (the editor lost focus inmmediatelly)<br />
** windows: it should work only if the grid has the focus, if not it should focus and a second click should autoedit (cannot detect if the grid was previously focused or not)<br />
*ColumnWidths: linux, windows: dbgrid start with default column widths instead of calculated ones (it's disabled because early canvas creation causes strange effects if the parent is a notebook page)<br />
*Resizing Columns: linux, windows. Resizing a column should not hide the editor (specially in dbgrid if we are inserting)<br />
*MouseWheel:<br />
**linux: mousewheel doesn't work as it should, (seems it's calling the default mousewheel handler)<br />
**windows: patch was sent.<br />
*Double painting: Apparently dbgrid paints the cell background twice (once with fillrect and once in textRect)<br />
*AutoFillColumns: sometimes the clientwidth is evaluated incorrectly (sometimes there are phantom scrollbars)</div>Smacehttps://wiki.freepascal.org/index.php?title=Grids_Reference_Page&diff=33294Grids Reference Page2009-01-23T11:54:39Z<p>Smace: /* Example: How to align collumm text in StringGrids */</p>
<hr />
<div>{{Grids Reference Page}}<br />
<br />
== Objective ==<br />
This text will try to show the user some aspects of the grids components in Lazarus. Also is intended to serve as a guide for users who never used grids before (as experienced users generally only need a reference for new functionality).<br />
So this text will try to reach the following objectives:<br />
# To introduce the grids components to people with little or not previous Delphi contact.<br />
# To document the differences with respect to Delphi grids components.<br />
# To document the new functionality in Lazarus grids.<br />
# Create reference and examples for the components.<br />
<br />
== Overview ==<br />
A grid is a component that provides a mean for display data in tabular format. The most obvious characteristic of grids is that they are composed of cells forming rows and columns.<br />
<br />
The type of information that can be shown in a grid is very ample and mainly depends on what the user wants to show. Generally this information consists of text, colors, images or a combination of those three. <br />
<br />
Given the great variety of information that can be represented, a series of grids exits whose purpose is to facilitate the user in showing specific kinds of information.<br />
<br />
== Inheritence Tree ==<br />
<pre><br />
[TCustomControl] <br />
| <br />
| <br />
TCustomGrid <br />
| <br />
+-------------+------------+ <br />
| | <br />
TCustomDrawGrid TCustomDbGrid<br />
| | <br />
+--------+--------+ | <br />
| | TDbGrid <br />
TDrawGrid TCustomStringGrid <br />
| <br />
| <br />
TStringGrid <br />
</pre><br />
<br />
== A Starting Example ==<br />
As one of the objectives of this page is to help people with little or no previous Lazarus knowledge let's do a quick starting example of grids in action. Why not, let's make a traditional "hello world" example using the TStringGrid Component.<br />
#Create a new application. <br />
#*From the main menu select: project->New Project<br />
#*In the Create New Project dialog press the "Create Button"<br />
#*A new empty form will be shown.<br />
#Place a grid on the form<br />
#*From the component palette select the "additional" tab<br />
#*Click over the TStringGrid icon []<br />
#*Click over the form, near to the top left corner. A new empty grid appears.<br />
#Place a button on the form<br />
#*From the component palette select the "Standard" tab<br />
#*Click over the TButton icon []<br />
#*Click over a empty area of the form. A new button appears.<br />
#Doubleclick the button from the step 3, and write down the following code in the click button handler: <br />
#*Stringgrid1.Cells[1,1] := 'Hi World!';<br />
#Run the program by clicking the play icon []<br />
#*by pressing the button1, the hello world text should appear in cell column 1, row 1.<br />
<br />
== Differences between Lazarus and Delphi grids ==<br />
The current grids components present several differences with respect to Delphi grids. This is mainly because the Lazarus grids were created from scratch primarily without trying to make them fully compatible. <br />
<br />
At a later stage, compatibility with Delphi's grids became a desired objective and the grids started to conform more closely to the Delphi grid's interface, but even then this was done without a strong effort to make every single property or method match its Delphi counterpart.<br />
Also, because the grid's internals are very different, some things are not possible or need to be done in a different way in the Lazarus' grids.<br />
As the grids have evolved, greater compatibility has been achieved and this is desirable. <br />
=== Differences ===<br />
Here the known differences will be listed, in no special order.<br />
*Cell Editors <br />
*Designtime Behaviour<br />
*Cell Drawing has some differences, see customizing grid section.<br />
<br />
=== New Functionality ===<br />
*Columns<br />
*Events<br />
*Grid Editor<br />
=== Adjustments for improving Delphi grids compatibility ===<br />
Here is a list of properties and adjustments that can be made in order to make Lazarus grids look or behave similar to Delphi grids. These adjustments are based in a newly created grid. Entries tagged with [Code] need to be set in code, [Design] entries can be changed at design time.<br />
<br />
*[Design] TitleStyle := tsStandard;<br />
*[Design] DefaultRowHeight := 24; <br />
*[Code] EditorBorderStyle := bsNone; // this might work only on windows.<br />
*[Code] UseXORFeatures := true;<br />
*[Code] AllowOutBoundEvents := False; {r10992 or later}<br />
*[Code] FastEditing := False; (supported in dbgrid. StringGrid req. r10992 or later) <br />
*[Design] AutoAdvance := aaNone;<br />
<br />
== Grids Reference ==<br />
=== Information ===<br />
The starting point for reference about TCustomGrid, TDrawGrid, TCustomDrawGrid, TCustomStringGrid and TStringGrid is the [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference] <br />
<br />
For TCustomDBGrid and TDBgrid it is the <br />
[http://lazarus-ccr.sourceforge.net/docs/lcl/dbgrids/index.html unit DBGrids.pas reference]<br />
<br />
Until recently there has not been much content in these links, due partly to the lack of a tool that allows easily maintenance of its content: but such tool has been constructed and the gaps are being filled.<br />
<br />
In general, any Delphi reference about the grids should help us to use Lazarus grids (but don't forget that there are several differences between Delphi and Lazarus grids that we have documented); with this in mind and as a temporary place for reference information, this place will be used to document things that don't work the same as in Delphi, as well as any new functionality.<br />
<br />
TODO: the rest of this section will disappear; its content will be moved to [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/index.html unit Grids.pas reference]<br />
<br />
=== TCustomGrid ===<br />
See the full [[doc:lcl/grids/tcustomgrid.html|TCustomGrid Reference]]<br />
==== property OnBeforeSelection: TOnSelectEvent ====<br />
==== property OnCompareCells: TOnCompareCells ====<br />
==== property OnPrepareCanvas: TOnPrepareCanvasEvent ====<br />
==== property OnDrawCell: TOnDrawCell ====<br />
==== property OnEditButtonClick: TNotifyEvent ====<br />
==== property OnSelection: TOnSelectEvent ====<br />
==== property OnSelectEditor: TSelectEditorEvent ====<br />
==== property OnTopLeftChanged: TNotifyEvent ====<br />
==== procedure AutoAdjustColumns; ====<br />
==== procedure BeginUpdate; ====<br />
==== procedure Clear; ====<br />
==== procedure DeleteColRow(IsColumn: Boolean; index: Integer); ====<br />
==== function EditorByStyle(Style: TColumnButtonStyle): TWinControl; ====<br />
==== procedure EndUpdate(UO: TUpdateOption); overload; ====<br />
==== procedure EndUpdate(FullUpdate: Boolean); overload; ====<br />
==== procedure EndUpdate; overload; ====<br />
==== procedure ExchangeColRow(IsColumn: Boolean; index, WithIndex:Integer); ====<br />
==== function IscellSelected(aCol,aRow: Integer): Boolean; ====<br />
==== function IscellVisible(aCol, aRow: Integer): Boolean; ====<br />
==== procedure LoadFromFile(FileName: string); ====<br />
==== function MouseToCell(Mouse: TPoint): TPoint; overload; ====<br />
==== function MouseToLogcell(Mouse: TPoint): TPoint; ====<br />
==== function MouseToGridZone(X,Y: Integer): TGridZone; ====<br />
==== function CellToGridZone(aCol,aRow: Integer): TGridZone; ====<br />
==== procedure MoveColRow(IsColumn: Boolean; FromIndex, ToIndex: Integer); ====<br />
==== procedure SaveToFile(FileName: string); ====<br />
==== procedure SortColRow(IsColumn: Boolean; index:Integer); overload; ====<br />
==== procedure SortColRow(IsColumn: Boolean; index,FromIndex,ToIndex: Integer); overload; ====<br />
==== property AllowOutboundEvents:boolean; ====<br />
protected in TCustomGrid, public in TCustomDrawGrid and descendants.<br />
Normally when user do click on a point over empty space after cells (for example if grid has three rows but user clicks on imaginary fourth row) the current focused cell will move to the nearest cell to clicked point, we call this an outbound event, default value is true as this has been grid's behaviour since begining. This property was added to simulate Delphi behaviour where outbound events are not available, to enable delphi compatibility set this property to false.<br />
<br />
=== TCustomStringGrid ===<br />
TCustomStringGrid serves as the base for TStringGrid. It can be used for derived TStringGrid components that want to hide published properties. See [[new intermediate grids]] for more information.<br />
<br />
The following properties or methods are public and are also available to TStringGrid.<br />
<br />
See the full [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tcustomstringgrid.html TCustomStringGrid Reference]<br />
==== procedure AutoSizeColumn(aCol: Integer); ====<br />
This procedure sets the column width to the size of the widest text it finds in all rows for the column aCol. Tip: see the goDblClickAutoSize option to allow columns to be automatically resized when doubleClicking the column border.<br />
<br />
==== procedure AutoSizeColumns; ====<br />
Automatically resizes all columns by adjusting them to fit in the longest text in each column. This is a quick method of applying AutoSizeColumn() for every column in the grid.<br />
==== procedure Clean; overload; ====<br />
Cleans all cells in the grid, fixed or not.<br />
==== procedure Clean(CleanOptions: TGridZoneSet); overload; ====<br />
Cleans all cells in the grid subject to the given CleanOptions. See [http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tgridzoneset.html TGridZoneSet] for more information. Some examples:<br />
*Clean all cells: grid.Clean([]); (the same as grid.clean)<br />
*Clean all non fixed cells: grid.Clean([gzNormal]);<br />
*Clean all cells but don't touch grid column headers: Grid.Clean([gzNormal, gzFixedRows]);<br />
<br />
==== procedure Clean(StartCol,StartRow,EndCol,EndRow: integer; CleanOptions:TGridZoneSet); overload; ====<br />
does the same as Clean(CleanOptions:TGridZoneSet) but restricted to the given StartCol,StartRow,EndCol and EndRow. Examples:<br />
*Clean column index 4 to 6 but don't touch grid column headers: many variations, Grid.Clean(4,Grid.FixedRows,6,Grid.RowCount-1,[]); Grid.Clean(4,0,6,Grid,RowCount-1, [gzNormal]); etc.<br />
==== procedure Clean(aRect: TRect; CleanOptions: TGridZoneSet); overload; ====<br />
The same as Clean(StartCol,StartRow,EndCol,EndRow, CleanOptions), just taking a TRect instead of individual cell coordinates. Useful to clean the selection: grid.Clean(Grid.Selection,[]);<br />
==== property Cols[index: Integer]: TStrings read GetCols write SetCols; ====<br />
Get/set a list of strings from/to the given grid's column index starting from row index 0 to RowCount-1. <br />
===== Examples =====<br />
*Set Example: Set the content of the third column in the grid from a ListBox:<br />
Grid.Cols[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's column index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Cols[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the column content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grids content or layout. <br />
<br />
See the Get Example.<br />
<br />
==== property Rows[index: Integer]: TStrings read GetRows write SetRows; ====<br />
Get/set a list of strings from/to the given grid's row index starting from column index 0 to column ColCount-1. <br />
===== Notes. =====<br />
This property works differently in Lazarus and in Delphi when getting the data from the grid. <br />
In Lazarus a temporary TStringList object is created for retrieving the row content. It is the responsibility of the user to free this object after use. <br />
<br />
This means also that changes in the returned list will not affect the grid's content or layout. <br />
<br />
===== Examples =====<br />
*Set Example: Set the content of the third row in the grid from a ListBox:<br />
Grid.Rows[2] := ListBox1.Items;<br />
*Get Example: Set the content of a Listbox from the grid's row index 4:<br />
procedure TForm1.FillListBox1;<br />
var <br />
StrTempList: TStringList;<br />
begin<br />
StrTempList := TStringList(Grid.Rows[4]);<br />
if StrTempList<>nil then begin<br />
ListBox1.Items.Assign(StrTempList);<br />
StrTempList.Free;<br />
end;<br />
end; <br />
*An Example that doesn't work, and its Fix: Retrieved string list is read only<br />
// this will not work and will cause memory leak<br />
// because returned StringList is not being freed<br />
Grid.Rows[1].CommaText := '1,2,3,4,5';<br />
Grid.Rows[2].Text := 'a'+#13#10+'s'+#13#10+'d'+#13#10+'f'+#13#10+'g'; <br />
<br />
// fixing the first case<br />
Lst:=TStringList.Create;<br />
Lst.CommaText := '1,2,3,4,5';<br />
Grid.Rows[1] := Lst;<br />
Lst.Free;<br />
<br />
==== property UseXORFeatures; ====<br />
Boolean property, default value: False;<br />
<br />
This property controls how the dotted focus rectangle appears in the grid. When True, the rectangle is painted using the XOR raster operation. This allow us to see the focus rectangle no matter what the cells' background color is. When False, the user can control the color of the dotted focus rectangle using the [[FocusColor property]]<br />
<br />
It also controls the look of the column/row resizing. When True, a line shows visually the size that the the column or row will have if the user ends the operation. When False, the column or row resizing takes effect just as the user drags the mouse.<br />
<br />
== Grids Howto ==<br />
=== Customizing grids ===<br />
Grid are components derived from the [http://lazarus-ccr.sourceforge.net/docs/lcl/controls/tcustomcontrol.html TCustomControl] class, and don't have a native widget associated with them which means that grids are not restricted by the look of current interface theme. This can be both an advantage and a disadvantage: usually programmers want to create a uniform-look application. The good news is that Lazarus grids are flexible enough to get something from both worlds; programmers can easily make grids look similar to other native controls, or they can customize the grid to the finest detail so they can obtain almost the same look in any platform or widget interface (that is, with the exception of scrollbars, because their look is still determined by the current theme).<br />
<br />
=== Properties and Events for customizing grids ===<br />
Some properties can affect the way the grid looks by acting when the cell is about to be painted in PrepareCanvas/OnPrepareCanvas by changing default canvas properties like brush color or font. Following is a list of such properties:<br />
*'''AlternateColor.''' With this the user can change the background color appears on alternated rows. This is to allow easy reading off of grid rows data.<br />
*'''Color.''' This sets the primary color used to draw non fixed cells background.<br />
*'''FixedColor.''' This is the color used to draw fixed cells background.<br />
*'''Flat.''' this eliminates the 3d look of fixed cells.<br><br />
*'''TitleFont.''' Font used to draw the text in fixed cells.<br><br />
*'''TitleStyle.''' This property changes the 3D look of fixed cells, there are 3 settings:<br />
**''tsLazarus.'' This is the default look<br />
**''tsNative.'' This tries to set a look that is in concordance with current widgetset theme.<br />
**''tsStandard.'' This style is a more contrasted look, like delphi grids.<br />
*'''AltColorStartNormal.''' boolean, if true alternate color is always in the second row after fixed rows, the first row after fixed rows will be always color, if false default color is set to the first row as if there were no fixed rows.<br />
*'''BorderColor.''' This sets the grid's border color used when Flat:=True and BorderStyle:=bsSingle;<br />
*'''EditorBorderStyle.''' If set to bsNone under windows the cell editors will not have the border, like in delphi, set to bsSingle by default because the border can be theme specific in some widgetsets and to allow a uniform look.<br><br />
*'''FocusColor.''' The color used to draw the current focused cell if UseXORFeatures is not set, by default this is clRed.<br />
*'''FocusRectVisible.''' turns on/off the drawing of focused cell.<br />
*'''GridLineColor.''' color of grid lines in non fixed area.<br />
*'''GridLineStyle.''' Pen style used to draw lines in non fixed area, possible choices are: ''psSolid'', ''psDash'', ''psDot'', ''psDashDot'', ''psDashDotDot'', ''psinsideFrame'', ''psPattern'',''psClear''. default is ''psSolid''.<br />
*'''SelectedColor.''' Color used to draw cell background on selected cells.<br />
*'''UseXORFeatures.''' If set, focus rect is drawn using XOR mode so it should make visible the focus rect in combination with any cell color ackground. It also affects the moving columns look.<br />
*'''DefaultDrawing.''' boolean. Normally the grids prepare the grid canvas using some properties according to the kind of cell is being painted. If user write an OnDrawCell event handler, DefaultDrawing if set also paints the cell background, if user is drawing fully the cell is better turn off this property so painting is not duplicated. In a StringGrid if DefaultDrawing is set it draws the text in each cell.<br />
*'''AutoAdvance.''' where the cell cursor will go when pressing enter or tab/shift tab, or after editing.<br />
*'''ExtendedColSizing.''' If true user can resize columns not just at the headers but along the columns height.<br />
Other properties that also affect the grids look.<br />
<br />
'''Options'''. Options property is a set with some elements to enable diverse functionality but some are related directly with grid's look. This options can be set at designtime or runtime.<br />
*'''goFixedVertLine, goFixedHorzLine''' it draws a vertical or horizontal line respectively delimiting cells or columns in fixed area, active by default.<br />
*'''goVertLine, goHorzLine''' the same as previous, but for normal browseable area. A grid can be made to simulate a listbox by unsetting both of this elements.<br />
*'''goDrawFocusSelected''' if this element is enabled a selection background is painted in focused cell in addition to focused dotted rectangle (note this doesn't work yet when goRowSelect option is set, in such case row is always painted as if goDrawFocusSelected is set)<br />
*'''goRowSelect''' select the full row instead of individual cells<br />
*'''goFixedRowNumbering''' if set, grid will do numbering of rows in first fixed column<br />
*'''goHeaderHotTracking''' if set, the grid will try to show a different look when the mouse cursor is overing any fixed cell. In order for this to work, desired cell zone needs to be enabled with property HeaderHotZones. Try combining this option with property TitleStyle:=tsNative to get themed hot tracking look.<br />
*'''goHeaderPushedLook''' if set, this element enables a pushed look when clicking any fixed cell. The zone of "pushable" cells is enabled using HeaderPusedZones property.<br />
<br />
(write more)<br />
<br />
=== Description of grid's drawing process ===<br />
Like other custom controls, the grid is drawn using the paint method. In general terms the grid is drawn by painting all rows, and each row by painting its individual cells. <br />
<br />
The process is as follow:<br />
*First the visible cells area is determined: each row is tested to see if it intersects the canvas clipping region; if it's ok, then the visible area is painted by drawing columns of each row. <br />
*The column and row values are used to identify the cell that is about to be painted and again each column is tested for intersection with the clippling region; if everything is ok, some additional properties like the cell's rectangular extent and visual state are passed as arguments to the DrawCell method.<br />
*As the drawing process is running, the visual state of each cell is adjusted according to grid options and position within grid. The visual state is retained in a varible of type TGridDrawState which is a set with following elements:<br />
**''gdSelected'' The cell will have a selected look.<br />
**''gdFocused'' The cell will have a focused look.<br />
**''gdFixed'' Cell have to be painted with fixed cell look.<br />
**''gdHot'' the mouse is over this cell, so paint it with hot tracking look<br />
**''gdPushed'' the cell is being clicked, paint it with pushed look <br />
*'''DrawCell.''' The DrawCell method is virtual and may be overriden in descendant grids to do custom drawing. The information passed to DrawCell helps to identify the particular cell is being painted, the physical area ocuppied in screen and its visible status. See DrawCell reference for details. For each cell the following occurs:<br />
*'''PrepareCanvas.''' In this method, if the DefaultDrawing property is set, the grid canvas is setup with default properties for brush and font based on current visual state. For several design and runtime properties, the text alignment is set to match programmer selection in custom columns if they exists. If DefaultDrawing is false, brush color is set to clWindow and Font color to clWindowText, the text alignment is set with grids defaultTextStyle property value.<br />
*'''OnPrepareCanvas.''' If the programmer wrote an event handler for OnPrepareCanvas event, it is called at this point. This event can be used for doing simple customization like changing cell's background color, font's properties like color, fontface and style, Text layout like different combinations of left, center, top, bottom, right alignment, etc. Any change made to the canvas in this event would be lost, because the next cell drawing will reset canvas again to a default state. So it's safe doing changes only for particular cell or cells and forget about it for the rest. Using this event sometimes helps to avoid using the OnDrawCell grid event, where users would be forced to duplicate the grid's drawing code. Todo: samples of what can be made and what to leave for OnDrawCell?...<br />
*'''OnDrawCell.''' Next if no handler for OnDrawCell event was specified, the grid calls the DefaultDrawCell method which simply paints the cell background using the current canvas brush color and style. If the OnDrawCell handler exists, the grid first paints the cell background but only if DefaultDrawing property was set, then it calls OnDrawCell event to do custom cell painting. Usually programmers want to do custom drawing only for particular cells, but standard drawing for others; in this case, they can restrict custom operation to certain cell or cells by looking into ACol, ARow and AState arguments, and for other cells simply call DefaultDrawCell method and let the grid to take care of it.<br />
*'''Text.''' At this point (only for TStringGrid) if DefaultDrawing property is true, the cell's text content is painted.<br />
*'''Grid lines'''. The last step for each cell is to paint the grid lines: if grid options goVertLine, goHorzLine, goFixedVertLine and goFixedHorzLine are specified the cell grid is drawn at this point. Grids with only rows or only cols can be obtained by changing these options. If the programmer elected to have a "themed" look it is done at this point also (see property TitleStyle).<br />
*'''FocusRect.''' When all columns of current row have been painted it is time to draw the focus rectangle for the current selected cell or for the whole row if goRowSelect option is set.<br />
<br />
===Grid's cell selection===<br />
The location of a grid's current (focused) cell (or row) can be changed using keyboard, mouse or through code. In order to change cell focus successfully to another position, we must test the target position to see if it is allowed to receive cell focus. When using keyboard, the property AutoAdvance performs part of the process by finding what should be the next focused cell. When using mouse clicks or moving by code, focus will not move from the current cell unless the target cell is permitted to receive focus.<br />
<br />
The grid calls function SelectCell to see if a cell is focusable: if this function returns true, then the target cell identified with arguments aCol and aRow is focusable (the current implementation of TCustomGrid simply returns true). TCustomDrawGrid and hence TDrawGrid and TStringGrid override this method to check first if cell is any wider than 0; normally you don't want a 0 width cell selected so a cell with this characteristics is skipped automatically in the process of finding a suitable cell. The other thing the overriden method SelectCell does is to call the user configurable event OnSelectCell: this event receives the cell coordinates as arguments and always returns a default result value of true.<br />
<br />
Once a cell is known to be focusable and we are sure a movement will take place, first the method BeforeMoveSelection is called; this in turns triggers the OnBeforeSelection event. This method's arguments are the coordinates for the new focused cell, at this point any visible editor is hidden too. The "before" word means that selection is not yet changed and current focused coordinates can be accessed with grid.Col and grid.Row properties. <br />
<br />
After that, the internal focused cell coordinates are changed and then method MoveSelection is called; this method's purpose is to trigger the OnSelection event if set (this is a notification that the focused cell has, by this time, already changed and cell coordinates are now available through grid.row and grid.col properties).<br />
<br />
Note that is not good to use OnSelectCell event to detect cell focus changes, as this event will be triggered several times even for the same cell in the process of finding a suitable cell. Is better to use OnBeforeSelection or OnSelection events for this purpose.<br />
<br />
===Several differences with Delphi have been identified===<br />
*In Lazarus TCustomGrid.DrawCell method is not abstract and its default implementation does basic cell background filling.<br />
*In Delphi, the cell's text is drawn before entering the OnDrawCell event (see [http://www.freepascal.org/mantis/view.php?id=9619 bug report #9619]).<br />
*SelectCell and OnSelectCell behaviour is probably different - can't really comment on the differences. In Lazarus they are used in functionality like AutoAdvance which as far as I know doesn't exist in Delphi.<br />
<br />
=== When above customizaton is not enough, derived grids ===<br />
Derived grids usually have to override following methods:<br><br />
DrawAllRows: Draws all visible rows.<br><br />
DrawRow: Draw All Cells in a Row.<br><br />
DrawRow draws all cells in the row by first checking if cell is within clipping region, and only draws the cell if it is.<br><br />
DrawCell:<br><br />
DrawCellGrid:<br><br />
DrawCellText:<br><br />
DrawFocusRect:<br><br />
(write me).<br><br />
<br />
=== Operations ===<br />
==== Focusing a cell ====<br />
<br />
Focusing a cell in TStringGrid is easy. Note that counting starts from zero not 1. So to focus row 10, column 9, do:<br />
<br />
<pre><br />
StringGrid1.row := 9;<br />
StringGrid1.col := 8;<br />
</pre><br />
<br />
==== Save and Retrieve Grid Content ====<br />
<br />
The '''SaveToFile''' procedure allows you save the TStringGrid format, attributes & values to a XML file.<br />
Previously you must set the SaveOptios property as follow:<br />
<br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
The '''LoadFromFile''' procedure allows you to load into a StringGrid instance, attributes, formats & values, from a <br />
'''XML''' file.<br />
First, you must set some of this options of the SaveOptions property (on your TStringGrid instance) [[SaveOptions]] <br />
soDesign: Save & Load ColCount,RowCount,FixedCols,FixedRows,<br />
ColWidths, RowHeights and Options (TCustomGrid)<br />
soPosition: Save & Load Scroll Position, Row, Col and Selection (TCustomGrid)<br />
soAttributes: Save & Load Colors, Text Alignment & Layout, etc. (TCustomDrawGrid)<br />
soContent: Save & Load Text (TCustomStringGrid)<br />
<br />
----<br />
<br />
'''Example:'''<br />
# First, go to menu "File -> New -> Application";<br />
# Put an empty TStringGrid;<br />
# Put a TButton and TOpenDialog;<br />
# Add the event OnCreate for the Form;<br />
# Add the event OnClick for the Button.<br />
<delphi><br />
unit Unit1; <br />
<br />
{$mode objfpc}{$H+}<br />
<br />
interface<br />
<br />
uses<br />
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids,<br />
Buttons, StdCtrls, XMLCfg;<br />
<br />
type<br />
<br />
{ TForm1 }<br />
TForm1 = class(TForm)<br />
StringGrid1: TStringGrid;<br />
Button1: TButton;<br />
OpenDialog1: TOpenDialog;<br />
procedure Button1Click(Sender: TObject);<br />
procedure Form1Create(Sender: TObject);<br />
private<br />
{ private declarations }<br />
public<br />
{ public declarations }<br />
end; <br />
<br />
var<br />
Form1: TForm1; <br />
<br />
implementation<br />
<br />
{ TForm1 }<br />
<br />
procedure TForm1.Form1Create(Sender: TObject);<br />
begin<br />
//sets the SaveOptions at creation time of the form <br />
stringgrid1.SaveOptions := [soDesign,soPosition,soAttributes,soContent];<br />
end;<br />
<br />
<br />
procedure TForm1.Button1Click(Sender: TObject);<br />
begin<br />
//Ask if thew Execute method of the OpenDialog was launched <br />
//when this occurs, the user selects an XML file to Load<br />
//wich name was stored in the FileName prop.<br />
<br />
if opendialog1.Execute then<br />
Begin<br />
//Clear the grid <br />
StringGrid1.Clear;<br />
//Load the XML<br />
StringGrid1.LoadFromFile(OpenDialog1.FileName);<br />
//Refresh the Grid<br />
StringGrid1.Refresh;<br />
End;<br />
end;<br />
<br />
initialization<br />
{$I unit1.lrs}<br />
<br />
end.<br />
</delphi><br />
----<br />
'''The sample xml file:'''<br />
(Copy the text below into a txt file. Don't forget put the xml header :-))<br />
<xml><br />
<?xml version="1.0"?><br />
<CONFIG><br />
<grid version="3"><br />
<saveoptions create="True" position="True" content="True"/><br />
<design columncount="2" rowcount="5" fixedcols="1" fixedrows="1" defaultcolwidth="64" defaultRowHeight="20"><br />
<options><br />
<goFixedVertLine value="True"/><br />
<goFixedHorzLine value="True"/><br />
<goVertLine value="True"/><br />
<goHorzLine value="True"/><br />
<goRangeSelect value="True"/><br />
<goDrawFocusSelected value="False"/><br />
<goRowSizing value="False"/><br />
<goColSizing value="False"/><br />
<goRowMoving value="False"/><br />
<goColMoving value="False"/><br />
<goEditing value="False"/><br />
<goTabs value="False"/><br />
<goRowSelect value="False"/><br />
<goAlwaysShowEditor value="False"/><br />
<goThumbTracking value="False"/><br />
<goColSpanning value="False"/><br />
<goRelaxedRowSelect value="False"/><br />
<goDblClickAutoSize value="False"/><br />
<goSmoothScroll value="True"/><br />
</options><br />
</design><br />
<position topleftcol="1" topleftrow="1" col="1" row="1"><br />
<selection left="1" top="1" right="1" bottom="1"/><br />
</position><br />
<content><br />
<cells cellcount="10"><br />
<cell1 column="0" row="0" text="Title Col1"/><br />
<cell2 column="0" row="1" text="value(1.1)"/><br />
<cell3 column="0" row="2" text="value(2.1)"/><br />
<cell4 column="0" row="3" text="value(3.1)"/><br />
<cell5 column="0" row="4" text="value(4.1)"/><br />
<cell6 column="1" row="0" text="Title Col2"/><br />
<cell7 column="1" row="1" text="value(1.2)"/><br />
<cell8 column="1" row="2" text="value(2.2)"/><br />
<cell9 column="1" row="3" text="value(3.2)"/><br />
<cell10 column="1" row="4" text="value(4.2)"/><br />
</cells><br />
</content><br />
</grid><br />
</CONFIG><br />
</xml><br />
----<br />
--[[User:Raditz|Raditz]] 21:06, 11 Jan 2006 (CET) from '''ARGENTINA'''<br />
<br />
=== Grid Cell Editors ===<br />
<br />
The grid uses cell editors to change the content of cells. <br />
<br />
For a specialized grid like TStringGrid, the editor is the usual single line text editor control, but sometimes it's desirable to have other means to enter information. For example, to call the open file dialog to find the location of a file so the user doesn't have to type the full path manually; if the text in the cell represents a date, it would be more friendly if we could popup a calendar so we can choose a specific date easily. <br />
<br />
Sometimes the information the user should enter in a cell is restricted to a limited list of words; in this case typing the information directly might introduce errors and validating routines might need to be implemented. We can avoid this by using a cell editor that presents the user with a list containing only the legal values. <br />
<br />
This is also the case for generic grids like TDrawGrid where the user needs some kind of structure to hold the data that will be shown in the grid. In this situation, the information that is entered in the cell editor updates the internal structure to reflect the changes in the grid.<br />
<br />
==== Builtin cell editors ====<br />
<br />
The grids.pas unit already includes some of the most used cell editors ready for use in grids. It is also possible to create new cell editors (custom cell editors) if the built-in editors are not appropiate for a specific task.<br />
<br />
The builtin cell editors are Button, Edit, and Picklist.<br />
<br />
==== Using cell editors ====<br />
<br />
Users can specify what editor will be used for a cell using one of two methods.<br />
<br />
#'''Using a custom column and selecting the ButtonStyle property of the column'''. In this method the user can select the style of the editor that will be shown. Available values are: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn.<br />
#'''Using OnSelectEditor grid event'''. Here the user specifies in the Editor parameter which editor to use for a cell identified for column aCol and row ARow in a TCustomDrawGrid derived grid or TColumn in TCustomDBGrid. For this purpose there is a useful public function of grids, EditorByStyle() that takes as parameter one of the following values: cbsAuto, cbsEllipsis, cbsNone, cbsPickList, cbsCheckboxColumn. This method takes precedence over the first one using custom columns. A Custom cell editor can be specified here. This event is also the place to setup the editor with values specific to the cell, row or column.<br />
<br />
==== Description of editor styles ====<br />
<br />
The following is a description of the editor styles. They are enumerated values of type TColumnButtonStyle and so they are prefixed by 'cbs'. This type was used to remain compatible with Delphi's DBGrid.<br />
<br />
*'''cbsAuto'''<br />
:This is the default editor style for TCustomGrid derived grids. The actual editor class that will be used to edit the cell content depends on several factors. For TCustomGrids it uses a TStringCellEditor class derived from TCustomMaskEdit. This editor is specialized to edit single line strings. It is then used in TStringGrid and TDrawGrid by default. When using Custom Columns, if the programmer filled the Column's PickList property, this behaves as if cbsPickList editor style was set. For a TCustomDBGrid that has a field of type boolean, it behaves as if cbsCheckBoxColumn editor style was specified. This is the recommended value for Custom Cell Editors. TODO: related OnEditingDone.<br />
*'''cbsEllipsis'''<br />
:This editor style is the most generic one. When used, a button appears in the editing cell and programmers could use the OnEditButtonClick grid event to detect when the user has pressed the button and take any action programmed for such a cell. For example a programmer could use this editor style to pop up a calendar dialog to allow the user easily to select a specific date. Other possibilities could be to show a file open dialog to find files, a calculator so user can enter the numeric result of calcs, etc. <br />
<br />
:OnEditButtonClick is just a notification, to find out in which cell a button has been clicked by taking a look at the grid.Row and grid.Col properties.<br />
<br />
:A DBGrid has specific properties to retrieve the active column or field and because this event occurs in the active record, it could update the information in the active field.<br />
<br />
:This editor style is implemented using TButtonCellEditor, a direct descendant of TButton.<br />
*'''cbsNone'''<br />
:This editor style instructs the grid not to use any editor for a specific cell or column; it behaves then, as if the grid were readonly for such a cell or column.<br />
*'''cbsPickList'''<br />
:Used to present the user with a list of values that can be entered. This editor style is implemented using TPickListCellEditor, a component derived from TCustomComboBox. The list of values that are shown is filled in one of two ways depending on the method used to select the editor style.<br />
:#When using custom columns, programmers can enter a list of values using the column's PickList property. [FOR BEGINNERS: TODO: exact procedure to edit the list]<br />
:#In OnSelectEditor, programmers get the TPickListCellEditor instance using the function EditorByStyle(cbsPickList). An example would be: <br />
var Lst:TPickListCellEditor; <br />
begin [...] <br />
Lst:=TPickListCellEditor(EditorByStyle(cbsPickList)); <br />
Lst.clear; <br />
Lst.Items.add('One'); <br />
Lst.items.add('Two'); <br />
Editor:=Lst; <br />
end;<br />
:The value in a TStringGrid grid will automatically reflect the value selected. If necessary the programmer could detect the moment the value is selected by writing an event handler for the grid's OnPickListSelect event, so additional steps can be taken (for example, to process the new value). TODO: related OnEditingDone.<br />
*'''cbsCheckboxColumn'''<br />
:This editor style is at the moment only available in TDBGrid. It can be useful when field contents associated with the column are restricted to a pair of values, for example, yes-no, true-false, on-off, 1-0, etc. Instead of forcing the user to type the values for this kind of field in a StringCellEditor or to choose one from a list, cbsCheckboxColumn is used to modify the field content of a column by using a checkbox representation that the user can toggle by using a mouse click or pressing the SPACE key.<br />
<br />
:If a columns' ButtonStyle property is set to cbsAuto and DBGrid detects that the field associated with the column is a boolean field, then the grid uses this editor style automatically. This automatic selection can be disabled or enabled using DBGrid's OptionsExtra property; setting dgeCheckboxColumn element to false disables this feature.<br />
<br />
:The values that are used to recognize the checked or unchecked states are set in a column's properties ValueChecked and ValueUnchecked.<br />
<br />
:At any moment, the field value can be in one to three states: Unchecked, Checked or Grayed. Internally these states are identified by the following values of type TDBGridCheckBoxState: gcbpUnChecked, gcbpChecked and gcbpGrayed.<br />
<br />
:This editor style doesn't use real TCheckbox components to handle user interaction: the visual representation is given by three builtin bitmap images that corresponds to the possible states of checkbox. The used bitmaps can be customized by writing a handler for DBGrid event OnUserCheckboxBitmap; the handler of this event gets the state of the checkbox in the parameter CheckedState of type TDBGridCheckboxState and a bitmap parameter that the programmer could use to specify custom bitmaps.<br />
<br />
====Example: How to set a custom cell editor====<br />
<br />
See lazarus/examples/gridcelleditor/gridcelleditor.lpi<br />
<br />
====Example: How to align collumm text in StringGrids====<br />
<br />
procedure TForm1.StringGrid1PrepareCanvas(sender: TObject; aCol, aRow: Integer; aState: TGridDrawState);<br />
var<br />
MyTextStyle: TTextStyle;<br />
begin<br />
if (Col=2) or (Col=3) then<br />
begin<br />
MyTextStyle := StringGrid1.Canvas.TextStyle;<br />
if Col=2 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taRightJustify else <br />
if Col=3 then<br />
StringGrid1.Canvas.TextStyle.Alignment := taCenter;<br />
StringGrid1.Canvas.TextStyle := MyTextStyle;<br />
end;<br />
end;<br />
<br />
== Todo ==<br />
*TInplaceEditor Support<br />
=== known problems ===<br />
29-marzo-2005:<br />
*mouse autoedit<br />
** linux: clicking a selected cell doesn't trigger the autoedit function (the editor lost focus inmmediatelly)<br />
** windows: it should work only if the grid has the focus, if not it should focus and a second click should autoedit (cannot detect if the grid was previously focused or not)<br />
*ColumnWidths: linux, windows: dbgrid start with default column widths instead of calculated ones (it's disabled because early canvas creation causes strange effects if the parent is a notebook page)<br />
*Resizing Columns: linux, windows. Resizing a column should not hide the editor (specially in dbgrid if we are inserting)<br />
*MouseWheel:<br />
**linux: mousewheel doesn't work as it should, (seems it's calling the default mousewheel handler)<br />
**windows: patch was sent.<br />
*Double painting: Apparently dbgrid paints the cell background twice (once with fillrect and once in textRect)<br />
*AutoFillColumns: sometimes the clientwidth is evaluated incorrectly (sometimes there are phantom scrollbars)</div>Smacehttps://wiki.freepascal.org/index.php?title=How_do_I_create_a_bug_report/pt&diff=33097How do I create a bug report/pt2009-01-12T12:07:26Z<p>Smace: </p>
<hr />
<div>{{How do I create a bug report}}<br />
<br />
Você encontrou um bug no Lazarus e quer fazer um relatório para os desenvolvedores. Esta página dirá a você como fazer isso.<br />
<br />
== Verifique se o BUG já foi informado ANTES de prosseguir==<br />
<br />
== Envie o erro ao Bug Tracker do Lazarus ==<br />
* Vá para o [http://www.freepascal.org/mantis/set_project.php?project_id=1 Lazarus bug tracker].<br />
* Você precisa estar logado nele para fazer relatórios de bug. Se estiver logado como convidado, precisa logar [como usuário] primeiro (convidados não podem fazer relatórios de bug, podem apenas lê-los). Se você já tem uma conta vá para [http://www.freepascal.org/mantis/login_page.php login page], senão crie uma nova conta em [http://www.freepascal.org/mantis/signup_page.php sign up page].<br />
* Depois de entrar vá à página [http://www.freepascal.org/mantis/bug_report_advanced_page.php Report Issue]. Preencha o que puder e souber. Quanto mais específico, melhor.<br />
* Campos importantes são os campos OS e Product e os passos para reproduzir o problema. Se o problema não puder ser reproduzido pelos desenvolvedores, eles não poderão repará-lo.<br />
* Se o seu bug é em certo componente da LCL, é útil fazer upload de uma pequena aplicação que mostre o bug.<br />
* Se houver algum erro gráfico, é útil fazer upload de um screenshot parcial em formato JPG ou PNG, não em BMP.<br />
* Se é um "crash", tente criar um backtrace. Veja em [[Creating_a_Backtrace_with_GDB/pt]] para mais informações.</div>Smacehttps://wiki.freepascal.org/index.php?title=Feature_Ideas&diff=33077Feature Ideas2009-01-09T01:04:35Z<p>Smace: /* IDE */</p>
<hr />
<div>{{Feature Ideas}}<br />
<br />
'''This Page is intended to collect ideas for features that could be included in Lazarus. Putting an idea here does not mean it WILL be put into Lazarus. It's just a place to gather ideas. Think of this as more of a wishlist.'''<br />
<br />
Also another place to log feature requests is here: [http://bugs.freepascal.org/ Lazarus Bugtracker]<br />
<br />
=IDE=<br />
Features that could be included in the IDE<br />
<br />
==Easier Draging & Dropping==<br />
pool: after you add a component at Form, what is your next action? Editting Name/Caption in OI.<br />
Would be nice having OI focused and a key field like Name/Caption/Text selected. It would be very intuitive just having to type after droping the component.<br />
<br />
==Common==<br />
* Open files in the same folder as the current tab editor, like SCite does, it's a bit annoying to navigate from folder to folder every time you need open a file related to the one we are editing at the moment.<br />
* enable menu access through access keys like under windows (i hate mouse sessions :o)<br />
example: <alt>-<f> for file menu<br />
<br />
==Source Editor==<br />
* When focusing/selecting one BEGIN the respective END should be in RED to show where it really ends.<br />
<br />
===Improvement of the menu and toolbars===<br />
* to allow final-user customisation<br />
* to obtain more styled menu (similar as Shagrouni xp-menu style)<br />
<br />
==Object Inspector==<br />
<br />
===Search field===<br />
add a "search" text box at the top or bottom (preferred, maybe user settable) of Object Inspector to be able to search for a name or value (maybe with right click menu checkable options on whether Name or Value or both are searched) in the properties/events list<br />
<br />
Question: What about sub properties? <br />
<br />
===Recent page===<br />
add a "Recent" tab to Object Inspector apart from the "Favorites" one, would be more useful than the Favorites one since it's automatic (would keep all properties/events that have been edited [fields that have either been changed or ENTER was pressed to CONFIRM/REset their current value - focus lost events shouldn't be considered editing if value of property/event field didn't change])<br />
<br />
Question: How are items removed from the list?<br />
<br />
<br />
===Not registered component classes===<br />
Add a field in the object inspector to allow specify the real class that will be instantiated, with that will allow to uses derived classes without remake/link the IDE, of course the new fields for the real class will not be available to edit in designer.<br />
An example:<br />
We place a TEdit in a form, but we want to use a derived class we made that add a new field/property/method to TEdit and we will use that new field/property/method programming but in design time it's enough to work with TEdit, actually there is an option to change the class but only to another one that's already linked on the IDE.<br />
<br />
Note: The class must be registered. This is needed for streaming and RTTI. If you don't want to register the real class, then register a fake class. It would be possible to create an artificial derived class from a registered component class on the fly. This has nothing to do with the OI. A dialog to manage all artificial classes must be implemented and a menu item must be added somewhere.<br />
<br />
==Refactoring==<br />
===Global Variable/Method renaming===<br />
Proper renaming (as in if I rename a field in an object it can change everything that uses it but NOT other stuff that happens to have the same name) -Plugwash<br />
: Already implemented: See Source Editor -> popup menu -> refactoring -> rename identifier<br />
<br />
===Parameter Renaming in Methods===<br />
adding a parameter to a method (and updating everything that uses it) -Plugwash<br />
: How should that work? What should the IDE/codetools put as parameter at the places?<br />
:: You specify that when you ask for the parameter to be added. [[User:Plugwash|Plugwash]] 05:09, 30 September 2006 (CEST)<br />
: For example, you add a parameter "b: boolean". The method is used a 100 times.<br />
* Possibility 1: You add a default parameter too. No change to the using methods is needed.<br />
* Possibility 2: You press compile and the compiler will jump to every occurence and you can decide, what to do.<br />
* Possibility 3: A new dialog is added to the IDE, where you can specify to insert a ",false" at every occurence.<br />
* Possibility 4: ?<br />
Do you have 3 in mind or 4?<br />
<br />
===Parameter reordering===<br />
like Delphi. A dialog to add, remove, reorder parameters of a function, method, property.<br />
<br />
===Encapsulating Fields===<br />
though thats not really needed in object pascal because object pascal has properties but its vital in cleaning up thrown together java. -Plugwash<br />
: Please give an example.<br />
<br />
===Improvement of the IDE like GExperts does for Delphi===<br />
* <s>Multi lines tabs for the components palette.</s> &mdash; ''Implemented''<br />
* <s>Editor tool bar.</s> &mdash; ''Implemented by [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)''<br />
* <s>Procedures list.</s> &mdash; ''Implemented by [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)''<br />
* Backup tool...<br />
* Comment/uncomment selection: comment/uncomment the current line when no selection made...<br />
:: This is already available in Lazarus under the ''Edit'' menu. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)<br />
* Indent/unindent selection: Indent/unindent the current line when no selection made...<br />
:: This is already available in Lazarus. Simply press the ''TAB'' key. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)<br />
* Tab : provision to set Tab spacing<br />
<br />
== I have a dream of components : Jedi ==<br />
Sure I switch immediatly from Delphi to Lazarus.<br />
<br />
* The Jedi components are a mix of OS dependant, Borland dependant and architecture specific code. I doubt these will ever work on anything but windows/x86. (and maybe win64 with a bit shoehorning). Example: To use a string routine in the strings unit of JCL, you have to fix like 12 units, some of which poke around in the Borland specific debug code. And then you haven't even reached the units of the JVCL, besides this there is a [[licensing]] problem. [[User:Marcov|Marcov]] 18:27, 4 October 2008 (CEST)<br />
<br />
==Code completion==<br />
===Create/Free objects===<br />
Declare an object myObj:TMyClass into a TForm class an type some Ctrl-Shift-Key, then the IDE adds a line myObj:=TMyClass.Create in FormCreate and myObj.Free in FormDestroy. -Rednaxel<br />
<br />
===Add list properties===<br />
Declaring an indexed property like 'property Items[i: integer]: TAType' and using this feature (Ctrl-Shift-Key, Menu), should popup a dialog to setup some parameters and then it should add a private variable fItems: TFPList; (or 'array of' or TList or ^AType), create code in the constructor, destroy code in the destructor and access methods GetItems, SetItems.<br />
<br />
==Visual Form Inheritance==<br />
VFI (Visual From Inheritance) works in Lazarus but there are some missing features:<br />
*When ancestor and descendant are open in the IDE and a property of the ancestor is changed, then change the descendant too.<br />
<br />
==Conditional Compiler Options==<br />
<br />
See [[Conditional Compiler Options]].<br />
<br />
==Help==<br />
===A small tutorial for Object Oriented Programming===<br />
I wish to have in Lazarus as in Eclipse in the Help menu a Tutorial for Object Oriented Programming.<br />
<br />
=LCL=<br />
<br />
==Components==<br />
<br />
Components that are possible to make that will work across all platforms supported by Lazarus<br />
<br />
===Visual===<br />
*Already implemented: Help system for apps created by Laz! It is a plugin system. That's why it supports cross-platform help system and using the OS's native help system.<br />
<br />
*The current LCL TStringGrid is a nice improvement over Delphi's feeble control with the same name. Would be great if it could be improved even more!<br />
**Support for data validation event handler, similar to Orpheus grid's OnUserValidation event. There are many events, for example OnEditing todo this. Please be more specific, what this OnUserValidation is.<br />
**Support for retrieving, displaying, editing and storing data that are stored in an existing memory structure or in a file rather than in grid itself, similar to the Orpheus grid's OnGetCellData and OnGetCellAttributes events. There is the TTIGrid, that can show TCollection, TList and TFPList of TPersistent. What else do you need?<br />
**An TImage Component wich support transparent winxp alpha 32 bit icon images<br />
<br />
*TTrayIcon<br />
** Add a TImageList property in TTrayIcon to change TrayIcon icon or animate it<br />
<br />
*TDBLookupComboBox<br />
**a component similar to TDBLookupComboBox (as of Delphi) would be very helpful.<br />
<br />
===NonVisual===<br />
*Clipboard and TTimer that don't depend on LCL. If you use these in a library or console app, the compiler drags in a lot of unused and unneeded LCL code. If you have multiple DLL's, this code is duplicated in each. Current implementations appear to follow the Delphi design approach, where Clipboard and TTimer have dependencies on the VCL - this probably wasn't necessary.<br />
<br />
: This may be true on Windows, but it´s False for Linux. I recently implemented TTimer for qt interface and the implementation calls Qt API. I think the same applies to Clipboard, since the clipboard depends on the widgetset used too (gtk or qt for example), not only on the operating system. --[[User:Sekelsenmat|Sekelsenmat]] 20:40, 5 Mar 2006 (CET)<br />
<br />
: The LCL is a visual component library. None visual components are provided by the FCL.<br />
<br />
: Lazarus will only provide components based on the LCL.<br />
:: Well, that's not entirely true. LCL bases a lot of components on FCL classes. TCustomCanvas, TAction etc. :-) --[[User:Ggeldenhuys|Ggeldenhuys]] 17:17, 4 October 2008 (CEST)<br />
<br />
==PDA Support==<br />
<br />
Something that currently does not exist is a complete multiplatform solution for PDAs. If we can implement this, Lazarus will become the first multiplatform RAD for PDAs ever created. Some devices work with Java, some work with c++ and Qtopia, some work with their particular APIs, there is no single solution currently that can embrace a large portion of PDAs. Application have to be redone for every PDA or simply just run on one of them (what most people do).<br />
<br />
The LCL implements many things. It is not necessary to implement them all to have a reasonably working Lazarus PDA widgetset. The most important things to be implementeded for PDAs are:<br />
<br />
* TApplication<br />
* TForm<br />
* TScreen<br />
* TCanvas and painting<br />
* Most Events (onClick and OnPaint at least)<br />
* Basic widgets like: TButton, TLabel, TEdit, TMemo.<br />
* Only minimum nessary LCLIntf functions to make TCanvas work. (GetDC, ReleaseDC, BeginPaint, EndPaint and some painting functions)<br />
<br />
Others can be easely implemented by people who need them after those are ready.<br />
<br />
Here is a list of some PDAs and the status of their support on Free Pascal / Lazarus:<br />
<br />
* Windows CE - The compiler already works really well cross compiling for Windows CE. The [[Windows CE Interface]] is under implementation.<br />
* Symbian OS - Possible for their ARM devices. Requires first adding a new Runtime Library for this OS to the Compiler. This OS has it's own API. There are open source projects for python and c to work on Symbian OS, so Free Pascal should work as well when a RTL is written.<br />
* Qtopia - For Zaurus and other linux-based PDAs. This is much easier now that basic Qt4 widgetset has being implemented, because Qtopia is very similar to Qt4. Some magick on the bindings is expected to make the same widgetset code to run for both Qtopia and Qt4.<br />
* Java - Some handheld devices, specially phones, only support java bytecode. May seam a little odd, but there is a Pascal Compiler capable of compiling the source into a jar and then into bytecode. It's name is Midlet Pascal http://www.midletpascal.com/ It may be possible to develop a similar technology that adds a java bytecode target for Free Pascal.<br />
* Palm OS - PalmOS 5 Garnet support requires that first the 68k compiler is working (runs on ARM processor with a kind of emulation) and then a RTL for palmos needs to be written. Only Free Pascal 1.0 supports 68k, this wasn't updated and the new compiler 2.0 doesn't support it yet (work in progress by [[fpc:User:Chain-Q]]), so will be a problem.<br />
<br />
PalmOS 6 Cobalt is fully arm, so it only requires a rtl, but it has zero devices working on it currently and won't be on the market until 2007 at least.<br />
<br />
Other compilers that support this target: [http://www.ppcompiler.org Pascal & Palm Compiler] and [http://hspascal.fihl.net/ HsPascal]. Unfortunately those compilers are not open source, so we can't use their code, we need to implement PalmOS RTL from zero.<br />
<br />
==More Interfaces==<br />
<br />
* Cocoa - Requires that first OpenSTEP bindings are created for Free Pascal.<br />
:: This is already in progress in Lazarus, thanks to Felipe. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:40, 4 October 2008 (CEST)<br />
* BeAPI - interface for Haiku, ZetaOS and BeOS. There is no powerful RAD on this OS.<br />
* [http://www.libsdl.org SDL] - something like what was done in [http://www.kanzelsberger.com/pixel/ Pixel Image Editor].<br />
* MacApp 2.0 - For 68k-based Mac computers. MacApp was Apple Computer's primary object oriented application framework for the Mac OS for much of the 1990s. First released in 1985, it is arguably the first such system to be widely used, notably on a microcomputer platform. Microsoft's MFC and Borland's OWL were both based directly on MacApp concepts. This framework was completely written on Object Pascal, so it should integrate really nicely with Free Pascal and Lazarus. When Apple moved to PowerPC it also dropped Object Pascal support, but that's another story. A emulator for 68k-Mac can be easely set up with [http://basilisk.cebix.net/ BasiliskII]. There is also a project called MacApp2PPC that upgraded MacApp pascal code to run on Power PCs. <br />
* OS/2 native - Free Pascal works well with OS/2, so this should be quite possible.<br />
* Solaris - OpenSolaris versions exist and it's quite similar to Linux so why not ?<br />
* Web Interface - Application compiles to an embedded HTTP Server who serves forms in ajax pages (or compiles it to an Apache Module), like Intraweb in Delphi. Discussion in http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=2489<br />
* [http://opensoft.homeip.net/fpgui/ fpGUI] - A widget set written in Free Pascal without any large library requirements. fpGUI talks directly to the underlying graphics library and is very easy to port to new platforms. Currently it supports Linux, Windows and WinCE. - Under development here: [[fpGUI_Interface]]<br />
=== Lua ===<br />
* Support for Lua interfacing. (Binary modules?) <br />
** What is Lua interfacing? Is it a graphical widgetset? What is the difference between what you want and is supplied by the lua units of fpc: http://svn.freepascal.org/svn/fpc/trunk/packages/extra/lua/<br />
<br />
=Other=<br />
* SVN changelog as RSS (http://cia.navi.cx/ ?)<br />
** added one to the fpc repository for testing purposes: http://svn.freepascal.org/feeds/fpcsvn.rss Lazarus got one too: http://svn.freepascal.org/feeds/lazarussvn.rss</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Resources&diff=33066Lazarus Resources2009-01-06T00:03:00Z<p>Smace: /* Lazarus Resource Form File */</p>
<hr />
<div>{{Lazarus Resources}}<br />
<br />
Every win32 developer should know about resource files. They contain data which should be compiled into the exe file. That data could consist of images, string tables, version info, ... even an XP manifest and forms.<br />
<br />
So now you '''cannot''' use "normal" resource files (*.res) in Lazarus because they are win32 specific. If you want to use your resources anyway, you will have to recreate them with lazres. Lazres can be found in the tools directory of your Lazarus installation folder (maybe you will first have to compile it).<br />
<br />
Then you can compile Lazarus resource files (*.lrs) via command line. The syntax for lazres is:<br />
:<pre><nowiki>lazres <filename of resource file> <files to include (file1 file2 file3 ...)></nowiki></pre><br />
To use a lazarus resurce file in your projects include the file with the $I compiler directive in the '''initialization''' section of your unit.<br />
<br />
You can acces the data in the resources with the LoadFromLazarusResource method of the variables which will hold the file contents afterwards. LoadFromLazarusResource requires one string parameter which indicades which object should be loaded from the resource file.<br />
<br />
Example:<br />
<pre>procedure exampleproc;<br />
var<br />
icon: TIcon;<br />
begin<br />
icon := TIcon.Create;<br />
icon.LoadFromLazarusResource('myicon');<br />
end;<br />
<br />
initialization<br />
{$I mylazarusresource.lrs}<br />
</pre><br />
This code includes the file mylazarusresource.lrs into the project. In the procedure exampleproc an icon object is created and loaded from the object "icon" out of the resource. The file which was compiled into the resource was probably named myicon.ico.<br />
<br />
Every class that is derived from TGraphic contains the LoadFromLazarusResource procedure.<br />
<br />
== Lazarus Resource Form File ==<br />
Lazarus generate .LRS file from .LFM Form files. <br />
But it does not generate it automatically if .LRS file is missing.<br />
<br />
When a LRS form file is missing, FPC reports the following error:<br />
ERROR: unit1.pas(193,4) Fatal: Can't open include file "unit1.lrs"<br />
<br />
To solve it you must use lazres: c:\lazarus\tools\lazres.exe unit1.lrs unit1.lfm<br />
<br />
FPCFAN: the easiest way to recreate a .lrs file to make a trivial change in the form design, revert it and save the form, no need to use lazres<br />
<br />
== Authors and Contributors ==<br />
[[User:JayK|JayK]] 21:35, 4 Nov 2005 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Resources&diff=33065Lazarus Resources2009-01-05T23:33:04Z<p>Smace: /* Lazarus Resource Form File */</p>
<hr />
<div>{{Lazarus Resources}}<br />
<br />
Every win32 developer should know about resource files. They contain data which should be compiled into the exe file. That data could consist of images, string tables, version info, ... even an XP manifest and forms.<br />
<br />
So now you '''cannot''' use "normal" resource files (*.res) in Lazarus because they are win32 specific. If you want to use your resources anyway, you will have to recreate them with lazres. Lazres can be found in the tools directory of your Lazarus installation folder (maybe you will first have to compile it).<br />
<br />
Then you can compile Lazarus resource files (*.lrs) via command line. The syntax for lazres is:<br />
:<pre><nowiki>lazres <filename of resource file> <files to include (file1 file2 file3 ...)></nowiki></pre><br />
To use a lazarus resurce file in your projects include the file with the $I compiler directive in the '''initialization''' section of your unit.<br />
<br />
You can acces the data in the resources with the LoadFromLazarusResource method of the variables which will hold the file contents afterwards. LoadFromLazarusResource requires one string parameter which indicades which object should be loaded from the resource file.<br />
<br />
Example:<br />
<pre>procedure exampleproc;<br />
var<br />
icon: TIcon;<br />
begin<br />
icon := TIcon.Create;<br />
icon.LoadFromLazarusResource('myicon');<br />
end;<br />
<br />
initialization<br />
{$I mylazarusresource.lrs}<br />
</pre><br />
This code includes the file mylazarusresource.lrs into the project. In the procedure exampleproc an icon object is created and loaded from the object "icon" out of the resource. The file which was compiled into the resource was probably named myicon.ico.<br />
<br />
Every class that is derived from TGraphic contains the LoadFromLazarusResource procedure.<br />
<br />
== Lazarus Resource Form File ==<br />
Lazarus generate .LRS file from .LFM Form files. <br />
But it does not generate it automatically if .LRS file is missing.<br />
<br />
When a LRS form file is missing, FPC reports the following error:<br />
ERROR: unit1.pas(193,4) Fatal: Can't open include file "unit1.lrs"<br />
<br />
To solve it you must use lazres: c:\lazarus\tools\lazres.exe unit1.lrs unit1.lfm<br />
<br />
== Authors and Contributors ==<br />
[[User:JayK|JayK]] 21:35, 4 Nov 2005 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Resources&diff=33064Lazarus Resources2009-01-05T23:31:12Z<p>Smace: lazarus resource form file</p>
<hr />
<div>{{Lazarus Resources}}<br />
<br />
Every win32 developer should know about resource files. They contain data which should be compiled into the exe file. That data could consist of images, string tables, version info, ... even an XP manifest and forms.<br />
<br />
So now you '''cannot''' use "normal" resource files (*.res) in Lazarus because they are win32 specific. If you want to use your resources anyway, you will have to recreate them with lazres. Lazres can be found in the tools directory of your Lazarus installation folder (maybe you will first have to compile it).<br />
<br />
Then you can compile Lazarus resource files (*.lrs) via command line. The syntax for lazres is:<br />
:<pre><nowiki>lazres <filename of resource file> <files to include (file1 file2 file3 ...)></nowiki></pre><br />
To use a lazarus resurce file in your projects include the file with the $I compiler directive in the '''initialization''' section of your unit.<br />
<br />
You can acces the data in the resources with the LoadFromLazarusResource method of the variables which will hold the file contents afterwards. LoadFromLazarusResource requires one string parameter which indicades which object should be loaded from the resource file.<br />
<br />
Example:<br />
<pre>procedure exampleproc;<br />
var<br />
icon: TIcon;<br />
begin<br />
icon := TIcon.Create;<br />
icon.LoadFromLazarusResource('myicon');<br />
end;<br />
<br />
initialization<br />
{$I mylazarusresource.lrs}<br />
</pre><br />
This code includes the file mylazarusresource.lrs into the project. In the procedure exampleproc an icon object is created and loaded from the object "icon" out of the resource. The file which was compiled into the resource was probably named myicon.ico.<br />
<br />
Every class that is derived from TGraphic contains the LoadFromLazarusResource procedure.<br />
<br />
== Lazarus Resource Form File ==<br />
Lazarus generate LRS file from LFM Form files. <br />
But it does not generate it automatically if .LRS file is missing.<br />
<br />
When a LRS form file is missing, FPC reports the following error:<br />
ERROR: unit1.pas(193,4) Fatal: Can't open include file "unit1.lrs"<br />
<br />
To solve it you must use lazres: c:\lazarus\tools\lazres.exe unit1.lrs unit1.lfm<br />
<br />
== Authors and Contributors ==<br />
[[User:JayK|JayK]] 21:35, 4 Nov 2005 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Feature_Ideas&diff=33063Feature Ideas2009-01-05T20:50:17Z<p>Smace: /* Common */</p>
<hr />
<div>{{Feature Ideas}}<br />
<br />
'''This Page is intended to collect ideas for features that could be included in Lazarus. Putting an idea here does not mean it WILL be put into Lazarus. It's just a place to gather ideas. Think of this as more of a wishlist.'''<br />
<br />
Also another place to log feature requests is here: [http://bugs.freepascal.org/ Lazarus Bugtracker]<br />
<br />
=IDE=<br />
Features that could be included in the IDE<br />
<br />
==Common==<br />
* Open files in the same folder as the current tab editor, like SCite does, it's a bit annoying to navigate from folder to folder every time you need open a file related to the one we are editing at the moment.<br />
* enable menu access through access keys like under windows (i hate mouse sessions :o)<br />
example: <alt>-<f> for file menu<br />
<br />
==Source Editor==<br />
* When focusing/selecting one BEGIN the respective END should be in RED to show where it really ends.<br />
<br />
===Improvement of the menu and toolbars===<br />
* to allow final-user customisation<br />
* to obtain more styled menu (similar as Shagrouni xp-menu style)<br />
<br />
==Object Inspector==<br />
<br />
===Search field===<br />
add a "search" text box at the top or bottom (preferred, maybe user settable) of Object Inspector to be able to search for a name or value (maybe with right click menu checkable options on whether Name or Value or both are searched) in the properties/events list<br />
<br />
Question: What about sub properties? <br />
<br />
===Recent page===<br />
add a "Recent" tab to Object Inspector apart from the "Favorites" one, would be more useful than the Favorites one since it's automatic (would keep all properties/events that have been edited [fields that have either been changed or ENTER was pressed to CONFIRM/REset their current value - focus lost events shouldn't be considered editing if value of property/event field didn't change])<br />
<br />
Question: How are items removed from the list?<br />
<br />
<br />
===Not registered component classes===<br />
Add a field in the object inspector to allow specify the real class that will be instantiated, with that will allow to uses derived classes without remake/link the IDE, of course the new fields for the real class will not be available to edit in designer.<br />
An example:<br />
We place a TEdit in a form, but we want to use a derived class we made that add a new field/property/method to TEdit and we will use that new field/property/method programming but in design time it's enough to work with TEdit, actually there is an option to change the class but only to another one that's already linked on the IDE.<br />
<br />
Note: The class must be registered. This is needed for streaming and RTTI. If you don't want to register the real class, then register a fake class. It would be possible to create an artificial derived class from a registered component class on the fly. This has nothing to do with the OI. A dialog to manage all artificial classes must be implemented and a menu item must be added somewhere.<br />
<br />
==Refactoring==<br />
===Global Variable/Method renaming===<br />
Proper renaming (as in if I rename a field in an object it can change everything that uses it but NOT other stuff that happens to have the same name) -Plugwash<br />
: Already implemented: See Source Editor -> popup menu -> refactoring -> rename identifier<br />
<br />
===Parameter Renaming in Methods===<br />
adding a parameter to a method (and updating everything that uses it) -Plugwash<br />
: How should that work? What should the IDE/codetools put as parameter at the places?<br />
:: You specify that when you ask for the parameter to be added. [[User:Plugwash|Plugwash]] 05:09, 30 September 2006 (CEST)<br />
: For example, you add a parameter "b: boolean". The method is used a 100 times.<br />
* Possibility 1: You add a default parameter too. No change to the using methods is needed.<br />
* Possibility 2: You press compile and the compiler will jump to every occurence and you can decide, what to do.<br />
* Possibility 3: A new dialog is added to the IDE, where you can specify to insert a ",false" at every occurence.<br />
* Possibility 4: ?<br />
Do you have 3 in mind or 4?<br />
<br />
===Parameter reordering===<br />
like Delphi. A dialog to add, remove, reorder parameters of a function, method, property.<br />
<br />
===Encapsulating Fields===<br />
though thats not really needed in object pascal because object pascal has properties but its vital in cleaning up thrown together java. -Plugwash<br />
: Please give an example.<br />
<br />
===Improvement of the IDE like GExperts does for Delphi===<br />
* <s>Multi lines tabs for the components palette.</s> &mdash; ''Implemented''<br />
* <s>Editor tool bar.</s> &mdash; ''Implemented by [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)''<br />
* <s>Procedures list.</s> &mdash; ''Implemented by [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)''<br />
* Backup tool...<br />
* Comment/uncomment selection: comment/uncomment the current line when no selection made...<br />
:: This is already available in Lazarus under the ''Edit'' menu. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)<br />
* Indent/unindent selection: Indent/unindent the current line when no selection made...<br />
:: This is already available in Lazarus. Simply press the ''TAB'' key. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:28, 4 October 2008 (CEST)<br />
* Tab : provision to set Tab spacing<br />
<br />
== I have a dream of components : Jedi ==<br />
Sure I switch immediatly from Delphi to Lazarus.<br />
<br />
* The Jedi components are a mix of OS dependant, Borland dependant and architecture specific code. I doubt these will ever work on anything but windows/x86. (and maybe win64 with a bit shoehorning). Example: To use a string routine in the strings unit of JCL, you have to fix like 12 units, some of which poke around in the Borland specific debug code. And then you haven't even reached the units of the JVCL, besides this there is a [[licensing]] problem. [[User:Marcov|Marcov]] 18:27, 4 October 2008 (CEST)<br />
<br />
==Code completion==<br />
===Create/Free objects===<br />
Declare an object myObj:TMyClass into a TForm class an type some Ctrl-Shift-Key, then the IDE adds a line myObj:=TMyClass.Create in FormCreate and myObj.Free in FormDestroy. -Rednaxel<br />
<br />
===Add list properties===<br />
Declaring an indexed property like 'property Items[i: integer]: TAType' and using this feature (Ctrl-Shift-Key, Menu), should popup a dialog to setup some parameters and then it should add a private variable fItems: TFPList; (or 'array of' or TList or ^AType), create code in the constructor, destroy code in the destructor and access methods GetItems, SetItems.<br />
<br />
==Visual Form Inheritance==<br />
VFI (Visual From Inheritance) works in Lazarus but there are some missing features:<br />
*When ancestor and descendant are open in the IDE and a property of the ancestor is changed, then change the descendant too.<br />
<br />
==Conditional Compiler Options==<br />
<br />
See [[Conditional Compiler Options]].<br />
<br />
==Help==<br />
===A small tutorial for Object Oriented Programming===<br />
I wish to have in Lazarus as in Eclipse in the Help menu a Tutorial for Object Oriented Programming.<br />
<br />
=LCL=<br />
<br />
==Components==<br />
<br />
Components that are possible to make that will work across all platforms supported by Lazarus<br />
<br />
===Visual===<br />
*Already implemented: Help system for apps created by Laz! It is a plugin system. That's why it supports cross-platform help system and using the OS's native help system.<br />
<br />
*The current LCL TStringGrid is a nice improvement over Delphi's feeble control with the same name. Would be great if it could be improved even more!<br />
**Support for data validation event handler, similar to Orpheus grid's OnUserValidation event. There are many events, for example OnEditing todo this. Please be more specific, what this OnUserValidation is.<br />
**Support for retrieving, displaying, editing and storing data that are stored in an existing memory structure or in a file rather than in grid itself, similar to the Orpheus grid's OnGetCellData and OnGetCellAttributes events. There is the TTIGrid, that can show TCollection, TList and TFPList of TPersistent. What else do you need?<br />
**An TImage Component wich support transparent winxp alpha 32 bit icon images<br />
<br />
*TTrayIcon<br />
** Add a TImageList property in TTrayIcon to change TrayIcon icon or animate it<br />
<br />
*TDBLookupComboBox<br />
**a component similar to TDBLookupComboBox (as of Delphi) would be very helpful.<br />
<br />
===NonVisual===<br />
*Clipboard and TTimer that don't depend on LCL. If you use these in a library or console app, the compiler drags in a lot of unused and unneeded LCL code. If you have multiple DLL's, this code is duplicated in each. Current implementations appear to follow the Delphi design approach, where Clipboard and TTimer have dependencies on the VCL - this probably wasn't necessary.<br />
<br />
: This may be true on Windows, but it´s False for Linux. I recently implemented TTimer for qt interface and the implementation calls Qt API. I think the same applies to Clipboard, since the clipboard depends on the widgetset used too (gtk or qt for example), not only on the operating system. --[[User:Sekelsenmat|Sekelsenmat]] 20:40, 5 Mar 2006 (CET)<br />
<br />
: The LCL is a visual component library. None visual components are provided by the FCL.<br />
<br />
: Lazarus will only provide components based on the LCL.<br />
:: Well, that's not entirely true. LCL bases a lot of components on FCL classes. TCustomCanvas, TAction etc. :-) --[[User:Ggeldenhuys|Ggeldenhuys]] 17:17, 4 October 2008 (CEST)<br />
<br />
==PDA Support==<br />
<br />
Something that currently does not exist is a complete multiplatform solution for PDAs. If we can implement this, Lazarus will become the first multiplatform RAD for PDAs ever created. Some devices work with Java, some work with c++ and Qtopia, some work with their particular APIs, there is no single solution currently that can embrace a large portion of PDAs. Application have to be redone for every PDA or simply just run on one of them (what most people do).<br />
<br />
The LCL implements many things. It is not necessary to implement them all to have a reasonably working Lazarus PDA widgetset. The most important things to be implementeded for PDAs are:<br />
<br />
* TApplication<br />
* TForm<br />
* TScreen<br />
* TCanvas and painting<br />
* Most Events (onClick and OnPaint at least)<br />
* Basic widgets like: TButton, TLabel, TEdit, TMemo.<br />
* Only minimum nessary LCLIntf functions to make TCanvas work. (GetDC, ReleaseDC, BeginPaint, EndPaint and some painting functions)<br />
<br />
Others can be easely implemented by people who need them after those are ready.<br />
<br />
Here is a list of some PDAs and the status of their support on Free Pascal / Lazarus:<br />
<br />
* Windows CE - The compiler already works really well cross compiling for Windows CE. The [[Windows CE Interface]] is under implementation.<br />
* Symbian OS - Possible for their ARM devices. Requires first adding a new Runtime Library for this OS to the Compiler. This OS has it's own API. There are open source projects for python and c to work on Symbian OS, so Free Pascal should work as well when a RTL is written.<br />
* Qtopia - For Zaurus and other linux-based PDAs. This is much easier now that basic Qt4 widgetset has being implemented, because Qtopia is very similar to Qt4. Some magick on the bindings is expected to make the same widgetset code to run for both Qtopia and Qt4.<br />
* Java - Some handheld devices, specially phones, only support java bytecode. May seam a little odd, but there is a Pascal Compiler capable of compiling the source into a jar and then into bytecode. It's name is Midlet Pascal http://www.midletpascal.com/ It may be possible to develop a similar technology that adds a java bytecode target for Free Pascal.<br />
* Palm OS - PalmOS 5 Garnet support requires that first the 68k compiler is working (runs on ARM processor with a kind of emulation) and then a RTL for palmos needs to be written. Only Free Pascal 1.0 supports 68k, this wasn't updated and the new compiler 2.0 doesn't support it yet (work in progress by [[fpc:User:Chain-Q]]), so will be a problem.<br />
<br />
PalmOS 6 Cobalt is fully arm, so it only requires a rtl, but it has zero devices working on it currently and won't be on the market until 2007 at least.<br />
<br />
Other compilers that support this target: [http://www.ppcompiler.org Pascal & Palm Compiler] and [http://hspascal.fihl.net/ HsPascal]. Unfortunately those compilers are not open source, so we can't use their code, we need to implement PalmOS RTL from zero.<br />
<br />
==More Interfaces==<br />
<br />
* Cocoa - Requires that first OpenSTEP bindings are created for Free Pascal.<br />
:: This is already in progress in Lazarus, thanks to Felipe. &mdash; [[User:Ggeldenhuys|Ggeldenhuys]] 17:40, 4 October 2008 (CEST)<br />
* BeAPI - interface for Haiku, ZetaOS and BeOS. There is no powerful RAD on this OS.<br />
* [http://www.libsdl.org SDL] - something like what was done in [http://www.kanzelsberger.com/pixel/ Pixel Image Editor].<br />
* MacApp 2.0 - For 68k-based Mac computers. MacApp was Apple Computer's primary object oriented application framework for the Mac OS for much of the 1990s. First released in 1985, it is arguably the first such system to be widely used, notably on a microcomputer platform. Microsoft's MFC and Borland's OWL were both based directly on MacApp concepts. This framework was completely written on Object Pascal, so it should integrate really nicely with Free Pascal and Lazarus. When Apple moved to PowerPC it also dropped Object Pascal support, but that's another story. A emulator for 68k-Mac can be easely set up with [http://basilisk.cebix.net/ BasiliskII]. There is also a project called MacApp2PPC that upgraded MacApp pascal code to run on Power PCs. <br />
* OS/2 native - Free Pascal works well with OS/2, so this should be quite possible.<br />
* Solaris - OpenSolaris versions exist and it's quite similar to Linux so why not ?<br />
* Web Interface - Application compiles to an embedded HTTP Server who serves forms in ajax pages (or compiles it to an Apache Module), like Intraweb in Delphi. Discussion in http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=2489<br />
* [http://opensoft.homeip.net/fpgui/ fpGUI] - A widget set written in Free Pascal without any large library requirements. fpGUI talks directly to the underlying graphics library and is very easy to port to new platforms. Currently it supports Linux, Windows and WinCE. - Under development here: [[fpGUI_Interface]]<br />
=== Lua ===<br />
* Support for Lua interfacing. (Binary modules?) <br />
** What is Lua interfacing? Is it a graphical widgetset? What is the difference between what you want and is supplied by the lua units of fpc: http://svn.freepascal.org/svn/fpc/trunk/packages/extra/lua/<br />
<br />
=Other=<br />
* SVN changelog as RSS (http://cia.navi.cx/ ?)<br />
** added one to the fpc repository for testing purposes: http://svn.freepascal.org/feeds/fpcsvn.rss Lazarus got one too: http://svn.freepascal.org/feeds/lazarussvn.rss</div>Smacehttps://wiki.freepascal.org/index.php?title=Projects_using_Free_Pascal&diff=32915Projects using Free Pascal2008-12-29T14:26:47Z<p>Smace: /* Kamouflage */</p>
<hr />
<div>{{Projects using Lazarus}}<br />
<br />
see also:[[Lazarus_Application_Gallery]] <br />
<br />
== Active Lazarus Projects ==<br />
<br />
=== 30 Seconds Free Software ===<br />
[http://code.google.com/p/30seconds 30 Seconds] is software package that creates cards for the [http://en.wikipedia.org/wiki/30_Seconds_(game) 30 Seconds] board game. It also have a playing interface if you want to play on your laptop / PC (and hopefully soon WinCE devices). <br />
<br />
=== 5dpo Component Library ===<br />
[[5dpo]] is a set of components developed by the [http://www.fe.up.pt/~robosoc 5dpo Robotic Soccer Team]. It provides a visual serial port (TSdpoSerial) implementation of [[Projects_using_Lazarus#Synaser|Synaser]], an IEEE1394 camera (TSdpoVideo1394) component, an [http://linux-uvc.berlios.de/ UVC video] driver component (TSdpoVideo4L2) for webcams and a Gtk fast painting form (TSdpoFastForm).<br />
<br />
=== Audio Component Suite ===<br />
A collection of components to develop applications for audio playing/recording/processing. Can play wav,ogg,mp3,mp2,wma ... record from any recordable source, do everything simultan, ripping and more ..<br />
You can find all about it in the Code and Components section or Download section<br />
<br />
=== Audio X ===<br />
[http://www.ullihome.de Audio X] is an media management tool, that organize and sort your media without an database so everything is ever actual. A lot of audio formats are useable directly but you can also organize your LP or CD collection with it,it stores the data in XML Files so they are viewablealso with an webbrowser ... <br />
<br />
=== Becape ===<br />
[https://sourceforge.net/projects/becape/ Becape] is a open source backup tool aimed to personal/desktop usage. It does incrementall backups and stores the backup info in a sqlite database allowing to restore the exact state of the backed files at a choosen date. It's fully written in Lazarus/Freepascal.<br />
<br />
=== BrasLib ===<br />
[http://br.groups.yahoo.com/group/BrasLib-devel/ BrasLib] is a new report component for Lazarus under development by brazilian programmers. <br />
<br />
=== Cactus Jukebox ===<br />
Cactus is an audio player that comes with a database to organize your mp3 file collection. Take a look at [http://cactus.hey-you-freaks.de Cactus Homepage]. It's plattform independent and currently available for linux and win32. <br />
<br />
Since actual v0.3 it supports managing and uploading files on a mobile player.<br />
<br />
===CQRLOG===<br />
<br />
[http://www.sourceforge.net/projects/cqrlog/ CQRLOG] is an advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRlog is strongly focused on easy operation and maintenance.<br />
<br />
=== CUPS for lazarus ===<br />
Olivier Guilbaud [http://cups4lazarus.sourceforge.net/ CUPS for lazarus project] is developing the bindings for pascal to use the CUPS (Common UNIX Printing System) libraries. With some dialogs for select printer, setup printer, setup printer jobs.<br />
<br />
Note: This package is deprecated, Cups for Lazarus is now integrated in Printers4Lazarus package which is included with Lazarus. --[[User:Jesusrmx|jesusrmx]] 20:10, 26 June 2006 (CEST)<br />
<br />
=== Daring Apprentice ===<br />
<br />
[http://daringapprentice.wikispaces.com Daring Apprentice] is a 3d [http://www.wizards.com/magic/ Magic: The Gathering] tabletop. It uses GLScene, and lNet.<br />
<br />
=== dbmaker ===<br />
<br />
[http://www.rgsoftware.de dbmaker] is a database application using TDbf and LazReport. Its user interface language is german.<br />
<br />
=== Dedalu ===<br />
A collection of small and simple projects developed in Lazarus by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.<br><br />
Homepage: http://dedalu.sourceforge.net/<br />
<br />
=== ExPress ===<br />
A GUI wrapper for UPX (Ultimate Packer for eXecutables). Download it [http://code.google.com/p/express-gui here].<br />
<br />
=== ExtPascal ===<br />
An Ext JS wrapper. [http://extpascal.googlecode.com ExtPascal] lets you use the ExtJS from Object Pascal commands issued by the server. That brings the structure and strict syntax of the Object Pascal for programming the web browser.<br />
<br />
=== fenixsql ===<br />
[http://fblib.altervista.org fenixsql] is a simple admin tool for firebird sql database<br />
<br />
=== Free Pascal Operating System ===<br />
Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)). Download it [http://code.google.com/p/fpos here].<br />
<br />
=== Game Maker ===<br />
[http://www.yoyogames.com/gamemaker Game Maker] allows you to make computer games using easy to learn drag-and-drop actions. You can create professional looking games within very little time. You can make games with backgrounds, animated graphics, music and sound effects, and even 3D games! And when you've become more experienced, there is a built-in programming language, which gives you the full flexibility of creating games with Game Maker. What is best, is the fact that Game Maker can be used free of charge.<br />
<br />
Originally written in Delphi, Lazarus/FreePascal was used to port it from Win32 to Mac OS X and could be used in future for Linux and other platforms.<br />
<br />
=== GLScene ===<br />
A complete 3D graphics library using OpenGL for rendering. You are able to edit your 3D scenes directly in the IDE. Further information can be found on the main page ([http://www.glscene.org GLScene]) or in [[GLScene|GLScene's 'Code and Components' section]].<br />
<br />
=== GTK2forpascal ===<br />
Mattias Gaertner's [http://sourceforge.net/projects/gtk2forpascal/ gtk2forpascal project] is developing the bindings for pascal to use the gtk2 libraries (gimp tool kit). Supported Languages are [[Free Pascal]] and Kylix and the bindings are intended to work under Linux, FreeBSD and Win32. These bindings are now also part of the packages supplied with fpc.<br />
<br />
=== GTK-Fireadmin ===<br />
A GTK based Firebird Administration tool using Firebird Objects and Lazarus Components is available [http://sourceforge.net/projects/gtkfireadmin/ here].<br />
<br />
<br />
=== Habari ActiveMQ Client ===<br />
[http://www.mikejustin.com/ Habari ActiveMQ Client] is a library (and components) for Delphi(tm) and Free Pascal which provides easy access to [http://activemq.apache.org/ Apache ActiveMQ], the most popular and powerful open source Message Broker.<br />
With Habari ActiveMQ Client, applications can connect to Apache ActiveMQ servers, subscribe to queues and topics, send and receive messages and objects, and work with transactions. The communication layer supports Synapse and Indy for Lazarus.<br />
<br />
=== Indy for lazarus ===<br />
Begun only a short while ago, this project has as an ambition to port the 119 components Indy de Delphi/Kylix on FPC/Lazarus.<br />
See [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] and a <br />
[http://indy4lazarus.sourceforge.net/images/img1_1.jpg screenshot].<br />
<br />
=== ISA Digital Osciloscope ===<br />
A graphical interface for a digital osciloscope. The osciloscope itself is an ISA card with a probe to measure waves. It works on both Windows and Linux. There is some information on how it is being built on [[Hardware Access]]. The full documentation (in English and Portuguese), screenshots and the source code of project can be downloaded [http://eletronicalivre.incubadora.fapesp.br/portal/english/oscilloscope/ here].<br />
<br />
=== Kamouflage ===<br />
<br />
[http://wiki.lazarus.freepascal.org/User:Beli0135 Kamouflage] - Camouflage files into images<br />
<br />
===LazFileSplitter===<br />
[http://br.geocities.com/antoniog123456/ LazFileSplitter] is a utility to split and merge big files.<br />
<br />
===LazPad===<br />
[http://br.geocities.com/antoniog123456/ LazPad] is a simple text editor made with Lazarus.<br />
<br />
=== LazReport ===<br />
LazReport is a group of components to add reporting capabilities to applications, it uses a visual designer to create banded reports and includes a report engine with interpreter to run user scripts and a report previewer, report designer can be invoked at runtime.<br />
<br />
LazReport is based on FreeReport 2.32 and thanks to Fast Reports Inc. it's available under modified LGPL, the same license as the Lazarus LCL.<br />
<br />
'''Note.''' Since Lazarus 0.9.23 revision 11950, LazReport source code is<br />
already included in Lazarus/components/lazreport directory.<br />
<br />
===LazVisual===<br />
[http://br.geocities.com/antoniog123456/ LazVisual] is an external tool to include resources on executable file and set application icon.<br />
<br />
===Lightweight Networking Library===<br />
<br />
[http://wiki.freepascal.org/lNet lNet] is a lightweight library designed specifically for Free Pascal and Lazarus which provides simple, single-threaded event-driven networking suite with protocols from TCP and UDP to SMTP and HTTP. lNet was designed to not depend on any external libraries and is extremely portable (currently supports almost all platforms where FPC itself runs).<br />
<br />
=== Master Maths ===<br />
[http://www.mastermaths.co.za Master Maths] specialises in computer based training and maths. The 3rd incarnation of our flagship product is developed using Lazarus, Firebird, [http://tiopf.sourceforge.net/ tiOPF v2] and the [http://opensoft.homeip.net/fpgui/ fpGUI Toolkit]. The product has two parts. A GUI Administration application and a CGI Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Macromedia Flash extensively. The complete product runs under Linux and Windows.<br />
<br />
===Morse Machine===<br />
<br />
[http://downloads.tech-pro.net/morse-machine_tpmm01.html Morse Machine] is an implementation of "A Fully Automatic Morse Code Teaching Machine" first described in a May 1977 QST article of the same name by Ward Cunningham using Lazarus. The program teaches Morse code by sending a character and waiting for you to type what you heard on the keyboard. It grades your score and adds new characters when it sees that you are ready. The program is released under the GNU GPL version 2. Due to its use of the sound card, this implementation is for the Windows platform.<br />
<br />
=== MRIcron ===<br />
[http://www.mricro.com/mricron/ MRIcron] is an opensource project that allows users to visualize and volume render medical images (MRI, CT, PET). It includes tools for lesion mapping, non parametric statistical analysis ([http://www.mricro.com/npm/ npm]), and conversion from the medical DICOM format to the scientific NIfTI format ([http://www.mricro.com/mricron/dcm2nii.html dcm2nii]). It is available for Windows, Linux and Macintosh OSX.<br />
<br />
=== OggBase ===<br />
[http://sourceforge.net/projects/oggbase/ Oggbase] is a FreePascal/Lazarus program for managing your Ogg-Vorbis files in a Database.<br />
<br />
=== OutKafe ===<br />
[http://www.outkastsolutions.co.za/outkast/index.php?option=com_openwiki&Itemid=45&id=outkafe OutKafe] is a next-generation free and open source cybercafe management suite. It currently is running hundreds of cybercafe's at businesses, schools and other establishments around the world. <br />
<br />
=== 'Pnigin' project (a 'Pengo' Remake) ===<br />
The 'Pnigin' project is an advanced remake of the 80's arcade classic 'Pengo' .<br />
<br />
The project was made from scratch, using all original artwork and music. The project used Delphi 5 personal, Lazarus and FreePascal for development.<br />
<br />
As the project is currently in Bèta stage there is no working demo yet, but it is expected that a playable demo is released in summer 2008.<br />
<br />
See the Gong-Proces site [[http://www.naton.org]] for more information regarding the project.<br />
<br />
=== Project Theseus ===<br />
Tom Lisjac's [http://theseus.sourceforge.net Project Theseus] is using Lazarus and FPC for creating a rapid deployment and distribution system for Linux called [http://theseus.sourceforge.net/index.php?wiki=EpikBuilder Epik-Builder]. [http://theseus.sourceforge.net/index.php?wiki=EpikStopwatch EpikStopwatch] and [http://theseus.sourceforge.net/index.php?wiki=EpikBrowser EpikBrowser] are also Lazarus based projects that are currently under development. <br />
<br />
=== QFront ===<br />
<br />
[http://www.ullihome.de QFront] is a platform independent Frontend for the CPU Emulator QEmu<br />
<br />
=== SFS Technology ===<br />
Linux technology to solve the dependencies problems on a Debian/Ubuntu/Linux Tiger operating system. <br />
For more infos see:<br />
[http://www.unixteam.net UNIXTEAM]<br />
<br />
=== Seksi Commander ===<br />
GPL Filemanager for Linux developed in Lazarus and FreePascal.<br />
Integrated bin, text, hex viewer (own component) and editor based on SynEdit.<br />
Home Page: http://radekc.regnet.cz/<br />
<br />
=== Shell for Gammu (Mobile Phone Tool) ===<br />
The [http://www.petersieg.de/gammush Gammush Site] offers hardcopies and downloads for this<br />
Application. Gammush is a shell for gammu.exe. It allows to backup/restore your phone data,<br />
get, edit , put logos, set date+time, send sms messages etc.<br />
<br />
===Siages===<br />
[http://siages.solis.coop.br/ Siages] is an ERP application made with Lazarus.<br />
<br />
=== SilentCoder's site ===<br />
DireqCafe A complete and full full featured internet cafe solution for LTSP and a number of other useful lazarus programs can be found on A.J. Venter's site: [http://www.silentcoder.co.za silentcoder.co.za].<br />
<br />
=== Skychart / Cartes du Ciel ===<br />
[http://www.ap-i.net/skychart Skychart] is a free software to draw a map of the night sky for the amateur astronomer from a bunch of stars and nebulae catalogs. It shows the position of the planets, simulates an eclipse and more. <br />
<br />
===SMTPUtils===<br />
[http://smtputils.sourceforge.net/ SMTPUtils] A tool to tunning your SMTP server against the Open relay, Spam, Virus, to measure the performance, verify it in the black lists (DNSBL) and more.<br />
<br />
=== Synapse ===<br />
The [http://www.ararat.cz/synapse/ Synapse Project] by Lukas Gebauer provides a serial port and synchronous TCP/IP Library for Delphi,C++ Builder, Kylix and FreePascal. This is a high quality offering with too many features to list. The packages are robust, reliable, work well with Lazarus and FPC and the code is easy to follow and maintain... ''highly'' recommended!<br />
<br />
=== Synaser ===<br />
Library for serial communication (Linux, Windows) from author of Synapse.<br />
homepage: http://www.ararat.cz/synapse/ (same as Synapse)<br />
<br />
=== The Icebox ===<br />
A lot of useful Lazarus/FPC related information and components can be found on Tony Maro's [http://tony.maro.net/ Icebox site]. His TMPack, Checkbook Tracker and RDP Frontend application are all excellent examples of the quality components and applications that Lazarus is capable of producing.<br />
<br />
=== The Light Pascal Toolkit (LPTK) ===<br />
The goal of the [http://lptk.sourceforge.net/ Light Pascal Toolkit] Project is to create a free object pascal toolkit for linux and windows GUI development. It looks pretty interesting... check out the [http://lptk.sourceforge.net/screenshots.php screenshots]!<br />
<br />
=== TruckBites ===<br />
Business management software for independent trucking companies and owner/operators (for the USA.) Written under contract by [[user:Tonymaro | Tony Maro]] for both Linux and Windows for "Partners in Trucking, LLC".<br />
http://www.truckbites.com<br />
Still under development, anticipated release in the next few months.<br />
<br />
=== TurboCash ===<br />
Open Source Accounting software. [http://www.turbocash.net/wiki/index.php?title=Developer:Lazarus]<br />
<br />
=== Virtual Magnifying Glass ===<br />
[http://magnifier.sourceforge.net/ Virtual Magnifying Glass] is designed for visually-impaired and others who need to magnify a part of the screen. Unlike most similar programs it does not open a separate window for the magnification but instead puts a movable magnifying glass on screen. The project was converted from Visual Studio .NET to Lazarus and now offers a Linux version. Mac OS X and Pocket PC versions are planned.<br />
<br />
=== WikiHelp ===<br />
[http://www.ullihome.de WikiHelp] is an small Tool that generates HTML Pages from an Wiki. It downloads the content Automatically and convert the WikiText Pages into HTML. Most WikiText Features are useable including Images,tables and so on.<br />
<br />
=== WinFF ===<br />
[http://www.winff.org WinFF] is a GUI for the command line video converter, FFMPEG. It will convert most any video file that FFmpeg will convert. WinFF does multiple files in multiple formats at one time. You can for example convert mpeg's, flv's, and mov's, all into avi's all at once. WinFF is available for Windows 95, 98 , ME, NT, XP, VISTA, and Debian, Ubuntu, Redhat based GNU/Linux distributions.<br />
<br />
----<br />
<br />
<br />
'''If your Lazarus project should be listed here, please edit this page and add it!'''<br />
<br />
== Orginal contributors and changes ==<br />
This page has been converted from epikwiki.<br />
* Initial posting - 9/26/2003<br />
* Updated links and labels - [[User:VlxAdmin]] 9/28/2003<br />
* Added the Light Pascal ToolKit project - [[User:VlxAdmin]]10/27/2003<br />
* Added the Dedalu project - [[User:pepecito]] 8/31/2005<br />
* Added ISA Digital Osciloscope - --[[User:Sekelsenmat|Sekelsenmat]] 20:26, 20 Oct 2005 (CEST) 10/20/2005<br />
* Added laz-Indict - [[User:bee]] 13:51, 29 Mar 2006 (WIB) :)<br />
* Added CQRLOG - [[User:ok2cqr]] 08:52 UTC, 2007-10-23<br />
* Added BTActiveMQClient - [[User:Mjustin|Mjustin]] 14:51, 30 December 2007 (CET)<br />
* sorted list alphabeticaly - da_seeb 15:26, 29 January 2008 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Projects_using_Free_Pascal&diff=32914Projects using Free Pascal2008-12-29T14:26:19Z<p>Smace: /* TurboCash */</p>
<hr />
<div>{{Projects using Lazarus}}<br />
<br />
see also:[[Lazarus_Application_Gallery]] <br />
<br />
== Active Lazarus Projects ==<br />
<br />
=== 30 Seconds Free Software ===<br />
[http://code.google.com/p/30seconds 30 Seconds] is software package that creates cards for the [http://en.wikipedia.org/wiki/30_Seconds_(game) 30 Seconds] board game. It also have a playing interface if you want to play on your laptop / PC (and hopefully soon WinCE devices). <br />
<br />
=== 5dpo Component Library ===<br />
[[5dpo]] is a set of components developed by the [http://www.fe.up.pt/~robosoc 5dpo Robotic Soccer Team]. It provides a visual serial port (TSdpoSerial) implementation of [[Projects_using_Lazarus#Synaser|Synaser]], an IEEE1394 camera (TSdpoVideo1394) component, an [http://linux-uvc.berlios.de/ UVC video] driver component (TSdpoVideo4L2) for webcams and a Gtk fast painting form (TSdpoFastForm).<br />
<br />
=== Audio Component Suite ===<br />
A collection of components to develop applications for audio playing/recording/processing. Can play wav,ogg,mp3,mp2,wma ... record from any recordable source, do everything simultan, ripping and more ..<br />
You can find all about it in the Code and Components section or Download section<br />
<br />
=== Audio X ===<br />
[http://www.ullihome.de Audio X] is an media management tool, that organize and sort your media without an database so everything is ever actual. A lot of audio formats are useable directly but you can also organize your LP or CD collection with it,it stores the data in XML Files so they are viewablealso with an webbrowser ... <br />
<br />
=== Becape ===<br />
[https://sourceforge.net/projects/becape/ Becape] is a open source backup tool aimed to personal/desktop usage. It does incrementall backups and stores the backup info in a sqlite database allowing to restore the exact state of the backed files at a choosen date. It's fully written in Lazarus/Freepascal.<br />
<br />
=== BrasLib ===<br />
[http://br.groups.yahoo.com/group/BrasLib-devel/ BrasLib] is a new report component for Lazarus under development by brazilian programmers. <br />
<br />
=== Cactus Jukebox ===<br />
Cactus is an audio player that comes with a database to organize your mp3 file collection. Take a look at [http://cactus.hey-you-freaks.de Cactus Homepage]. It's plattform independent and currently available for linux and win32. <br />
<br />
Since actual v0.3 it supports managing and uploading files on a mobile player.<br />
<br />
===CQRLOG===<br />
<br />
[http://www.sourceforge.net/projects/cqrlog/ CQRLOG] is an advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRlog is strongly focused on easy operation and maintenance.<br />
<br />
=== CUPS for lazarus ===<br />
Olivier Guilbaud [http://cups4lazarus.sourceforge.net/ CUPS for lazarus project] is developing the bindings for pascal to use the CUPS (Common UNIX Printing System) libraries. With some dialogs for select printer, setup printer, setup printer jobs.<br />
<br />
Note: This package is deprecated, Cups for Lazarus is now integrated in Printers4Lazarus package which is included with Lazarus. --[[User:Jesusrmx|jesusrmx]] 20:10, 26 June 2006 (CEST)<br />
<br />
=== Daring Apprentice ===<br />
<br />
[http://daringapprentice.wikispaces.com Daring Apprentice] is a 3d [http://www.wizards.com/magic/ Magic: The Gathering] tabletop. It uses GLScene, and lNet.<br />
<br />
=== dbmaker ===<br />
<br />
[http://www.rgsoftware.de dbmaker] is a database application using TDbf and LazReport. Its user interface language is german.<br />
<br />
=== Dedalu ===<br />
A collection of small and simple projects developed in Lazarus by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.<br><br />
Homepage: http://dedalu.sourceforge.net/<br />
<br />
=== ExPress ===<br />
A GUI wrapper for UPX (Ultimate Packer for eXecutables). Download it [http://code.google.com/p/express-gui here].<br />
<br />
=== ExtPascal ===<br />
An Ext JS wrapper. [http://extpascal.googlecode.com ExtPascal] lets you use the ExtJS from Object Pascal commands issued by the server. That brings the structure and strict syntax of the Object Pascal for programming the web browser.<br />
<br />
=== fenixsql ===<br />
[http://fblib.altervista.org fenixsql] is a simple admin tool for firebird sql database<br />
<br />
=== Free Pascal Operating System ===<br />
Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)). Download it [http://code.google.com/p/fpos here].<br />
<br />
=== Game Maker ===<br />
[http://www.yoyogames.com/gamemaker Game Maker] allows you to make computer games using easy to learn drag-and-drop actions. You can create professional looking games within very little time. You can make games with backgrounds, animated graphics, music and sound effects, and even 3D games! And when you've become more experienced, there is a built-in programming language, which gives you the full flexibility of creating games with Game Maker. What is best, is the fact that Game Maker can be used free of charge.<br />
<br />
Originally written in Delphi, Lazarus/FreePascal was used to port it from Win32 to Mac OS X and could be used in future for Linux and other platforms.<br />
<br />
=== GLScene ===<br />
A complete 3D graphics library using OpenGL for rendering. You are able to edit your 3D scenes directly in the IDE. Further information can be found on the main page ([http://www.glscene.org GLScene]) or in [[GLScene|GLScene's 'Code and Components' section]].<br />
<br />
=== GTK2forpascal ===<br />
Mattias Gaertner's [http://sourceforge.net/projects/gtk2forpascal/ gtk2forpascal project] is developing the bindings for pascal to use the gtk2 libraries (gimp tool kit). Supported Languages are [[Free Pascal]] and Kylix and the bindings are intended to work under Linux, FreeBSD and Win32. These bindings are now also part of the packages supplied with fpc.<br />
<br />
=== GTK-Fireadmin ===<br />
A GTK based Firebird Administration tool using Firebird Objects and Lazarus Components is available [http://sourceforge.net/projects/gtkfireadmin/ here].<br />
<br />
<br />
=== Habari ActiveMQ Client ===<br />
[http://www.mikejustin.com/ Habari ActiveMQ Client] is a library (and components) for Delphi(tm) and Free Pascal which provides easy access to [http://activemq.apache.org/ Apache ActiveMQ], the most popular and powerful open source Message Broker.<br />
With Habari ActiveMQ Client, applications can connect to Apache ActiveMQ servers, subscribe to queues and topics, send and receive messages and objects, and work with transactions. The communication layer supports Synapse and Indy for Lazarus.<br />
<br />
=== Indy for lazarus ===<br />
Begun only a short while ago, this project has as an ambition to port the 119 components Indy de Delphi/Kylix on FPC/Lazarus.<br />
See [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] and a <br />
[http://indy4lazarus.sourceforge.net/images/img1_1.jpg screenshot].<br />
<br />
=== ISA Digital Osciloscope ===<br />
A graphical interface for a digital osciloscope. The osciloscope itself is an ISA card with a probe to measure waves. It works on both Windows and Linux. There is some information on how it is being built on [[Hardware Access]]. The full documentation (in English and Portuguese), screenshots and the source code of project can be downloaded [http://eletronicalivre.incubadora.fapesp.br/portal/english/oscilloscope/ here].<br />
<br />
=== Kamouflage ===<br />
<br />
[http://wiki.lazarus.freepascal.org/User:Beli0135 Kamouflage] - Camouflage files into images<br />
<br />
<br />
<br />
===LazFileSplitter===<br />
[http://br.geocities.com/antoniog123456/ LazFileSplitter] is a utility to split and merge big files.<br />
<br />
===LazPad===<br />
[http://br.geocities.com/antoniog123456/ LazPad] is a simple text editor made with Lazarus.<br />
<br />
=== LazReport ===<br />
LazReport is a group of components to add reporting capabilities to applications, it uses a visual designer to create banded reports and includes a report engine with interpreter to run user scripts and a report previewer, report designer can be invoked at runtime.<br />
<br />
LazReport is based on FreeReport 2.32 and thanks to Fast Reports Inc. it's available under modified LGPL, the same license as the Lazarus LCL.<br />
<br />
'''Note.''' Since Lazarus 0.9.23 revision 11950, LazReport source code is<br />
already included in Lazarus/components/lazreport directory.<br />
<br />
===LazVisual===<br />
[http://br.geocities.com/antoniog123456/ LazVisual] is an external tool to include resources on executable file and set application icon.<br />
<br />
===Lightweight Networking Library===<br />
<br />
[http://wiki.freepascal.org/lNet lNet] is a lightweight library designed specifically for Free Pascal and Lazarus which provides simple, single-threaded event-driven networking suite with protocols from TCP and UDP to SMTP and HTTP. lNet was designed to not depend on any external libraries and is extremely portable (currently supports almost all platforms where FPC itself runs).<br />
<br />
=== Master Maths ===<br />
[http://www.mastermaths.co.za Master Maths] specialises in computer based training and maths. The 3rd incarnation of our flagship product is developed using Lazarus, Firebird, [http://tiopf.sourceforge.net/ tiOPF v2] and the [http://opensoft.homeip.net/fpgui/ fpGUI Toolkit]. The product has two parts. A GUI Administration application and a CGI Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Macromedia Flash extensively. The complete product runs under Linux and Windows.<br />
<br />
===Morse Machine===<br />
<br />
[http://downloads.tech-pro.net/morse-machine_tpmm01.html Morse Machine] is an implementation of "A Fully Automatic Morse Code Teaching Machine" first described in a May 1977 QST article of the same name by Ward Cunningham using Lazarus. The program teaches Morse code by sending a character and waiting for you to type what you heard on the keyboard. It grades your score and adds new characters when it sees that you are ready. The program is released under the GNU GPL version 2. Due to its use of the sound card, this implementation is for the Windows platform.<br />
<br />
=== MRIcron ===<br />
[http://www.mricro.com/mricron/ MRIcron] is an opensource project that allows users to visualize and volume render medical images (MRI, CT, PET). It includes tools for lesion mapping, non parametric statistical analysis ([http://www.mricro.com/npm/ npm]), and conversion from the medical DICOM format to the scientific NIfTI format ([http://www.mricro.com/mricron/dcm2nii.html dcm2nii]). It is available for Windows, Linux and Macintosh OSX.<br />
<br />
=== OggBase ===<br />
[http://sourceforge.net/projects/oggbase/ Oggbase] is a FreePascal/Lazarus program for managing your Ogg-Vorbis files in a Database.<br />
<br />
=== OutKafe ===<br />
[http://www.outkastsolutions.co.za/outkast/index.php?option=com_openwiki&Itemid=45&id=outkafe OutKafe] is a next-generation free and open source cybercafe management suite. It currently is running hundreds of cybercafe's at businesses, schools and other establishments around the world. <br />
<br />
=== 'Pnigin' project (a 'Pengo' Remake) ===<br />
The 'Pnigin' project is an advanced remake of the 80's arcade classic 'Pengo' .<br />
<br />
The project was made from scratch, using all original artwork and music. The project used Delphi 5 personal, Lazarus and FreePascal for development.<br />
<br />
As the project is currently in Bèta stage there is no working demo yet, but it is expected that a playable demo is released in summer 2008.<br />
<br />
See the Gong-Proces site [[http://www.naton.org]] for more information regarding the project.<br />
<br />
=== Project Theseus ===<br />
Tom Lisjac's [http://theseus.sourceforge.net Project Theseus] is using Lazarus and FPC for creating a rapid deployment and distribution system for Linux called [http://theseus.sourceforge.net/index.php?wiki=EpikBuilder Epik-Builder]. [http://theseus.sourceforge.net/index.php?wiki=EpikStopwatch EpikStopwatch] and [http://theseus.sourceforge.net/index.php?wiki=EpikBrowser EpikBrowser] are also Lazarus based projects that are currently under development. <br />
<br />
=== QFront ===<br />
<br />
[http://www.ullihome.de QFront] is a platform independent Frontend for the CPU Emulator QEmu<br />
<br />
=== SFS Technology ===<br />
Linux technology to solve the dependencies problems on a Debian/Ubuntu/Linux Tiger operating system. <br />
For more infos see:<br />
[http://www.unixteam.net UNIXTEAM]<br />
<br />
=== Seksi Commander ===<br />
GPL Filemanager for Linux developed in Lazarus and FreePascal.<br />
Integrated bin, text, hex viewer (own component) and editor based on SynEdit.<br />
Home Page: http://radekc.regnet.cz/<br />
<br />
=== Shell for Gammu (Mobile Phone Tool) ===<br />
The [http://www.petersieg.de/gammush Gammush Site] offers hardcopies and downloads for this<br />
Application. Gammush is a shell for gammu.exe. It allows to backup/restore your phone data,<br />
get, edit , put logos, set date+time, send sms messages etc.<br />
<br />
===Siages===<br />
[http://siages.solis.coop.br/ Siages] is an ERP application made with Lazarus.<br />
<br />
=== SilentCoder's site ===<br />
DireqCafe A complete and full full featured internet cafe solution for LTSP and a number of other useful lazarus programs can be found on A.J. Venter's site: [http://www.silentcoder.co.za silentcoder.co.za].<br />
<br />
=== Skychart / Cartes du Ciel ===<br />
[http://www.ap-i.net/skychart Skychart] is a free software to draw a map of the night sky for the amateur astronomer from a bunch of stars and nebulae catalogs. It shows the position of the planets, simulates an eclipse and more. <br />
<br />
===SMTPUtils===<br />
[http://smtputils.sourceforge.net/ SMTPUtils] A tool to tunning your SMTP server against the Open relay, Spam, Virus, to measure the performance, verify it in the black lists (DNSBL) and more.<br />
<br />
=== Synapse ===<br />
The [http://www.ararat.cz/synapse/ Synapse Project] by Lukas Gebauer provides a serial port and synchronous TCP/IP Library for Delphi,C++ Builder, Kylix and FreePascal. This is a high quality offering with too many features to list. The packages are robust, reliable, work well with Lazarus and FPC and the code is easy to follow and maintain... ''highly'' recommended!<br />
<br />
=== Synaser ===<br />
Library for serial communication (Linux, Windows) from author of Synapse.<br />
homepage: http://www.ararat.cz/synapse/ (same as Synapse)<br />
<br />
=== The Icebox ===<br />
A lot of useful Lazarus/FPC related information and components can be found on Tony Maro's [http://tony.maro.net/ Icebox site]. His TMPack, Checkbook Tracker and RDP Frontend application are all excellent examples of the quality components and applications that Lazarus is capable of producing.<br />
<br />
=== The Light Pascal Toolkit (LPTK) ===<br />
The goal of the [http://lptk.sourceforge.net/ Light Pascal Toolkit] Project is to create a free object pascal toolkit for linux and windows GUI development. It looks pretty interesting... check out the [http://lptk.sourceforge.net/screenshots.php screenshots]!<br />
<br />
=== TruckBites ===<br />
Business management software for independent trucking companies and owner/operators (for the USA.) Written under contract by [[user:Tonymaro | Tony Maro]] for both Linux and Windows for "Partners in Trucking, LLC".<br />
http://www.truckbites.com<br />
Still under development, anticipated release in the next few months.<br />
<br />
=== TurboCash ===<br />
Open Source Accounting software. [http://www.turbocash.net/wiki/index.php?title=Developer:Lazarus]<br />
<br />
=== Virtual Magnifying Glass ===<br />
[http://magnifier.sourceforge.net/ Virtual Magnifying Glass] is designed for visually-impaired and others who need to magnify a part of the screen. Unlike most similar programs it does not open a separate window for the magnification but instead puts a movable magnifying glass on screen. The project was converted from Visual Studio .NET to Lazarus and now offers a Linux version. Mac OS X and Pocket PC versions are planned.<br />
<br />
=== WikiHelp ===<br />
[http://www.ullihome.de WikiHelp] is an small Tool that generates HTML Pages from an Wiki. It downloads the content Automatically and convert the WikiText Pages into HTML. Most WikiText Features are useable including Images,tables and so on.<br />
<br />
=== WinFF ===<br />
[http://www.winff.org WinFF] is a GUI for the command line video converter, FFMPEG. It will convert most any video file that FFmpeg will convert. WinFF does multiple files in multiple formats at one time. You can for example convert mpeg's, flv's, and mov's, all into avi's all at once. WinFF is available for Windows 95, 98 , ME, NT, XP, VISTA, and Debian, Ubuntu, Redhat based GNU/Linux distributions.<br />
<br />
----<br />
<br />
<br />
'''If your Lazarus project should be listed here, please edit this page and add it!'''<br />
<br />
== Orginal contributors and changes ==<br />
This page has been converted from epikwiki.<br />
* Initial posting - 9/26/2003<br />
* Updated links and labels - [[User:VlxAdmin]] 9/28/2003<br />
* Added the Light Pascal ToolKit project - [[User:VlxAdmin]]10/27/2003<br />
* Added the Dedalu project - [[User:pepecito]] 8/31/2005<br />
* Added ISA Digital Osciloscope - --[[User:Sekelsenmat|Sekelsenmat]] 20:26, 20 Oct 2005 (CEST) 10/20/2005<br />
* Added laz-Indict - [[User:bee]] 13:51, 29 Mar 2006 (WIB) :)<br />
* Added CQRLOG - [[User:ok2cqr]] 08:52 UTC, 2007-10-23<br />
* Added BTActiveMQClient - [[User:Mjustin|Mjustin]] 14:51, 30 December 2007 (CET)<br />
* sorted list alphabeticaly - da_seeb 15:26, 29 January 2008 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Projects_using_Free_Pascal&diff=32913Projects using Free Pascal2008-12-29T14:25:07Z<p>Smace: /* Lazarus ''SQL Explorer'' */</p>
<hr />
<div>{{Projects using Lazarus}}<br />
<br />
see also:[[Lazarus_Application_Gallery]] <br />
<br />
== Active Lazarus Projects ==<br />
<br />
=== 30 Seconds Free Software ===<br />
[http://code.google.com/p/30seconds 30 Seconds] is software package that creates cards for the [http://en.wikipedia.org/wiki/30_Seconds_(game) 30 Seconds] board game. It also have a playing interface if you want to play on your laptop / PC (and hopefully soon WinCE devices). <br />
<br />
=== 5dpo Component Library ===<br />
[[5dpo]] is a set of components developed by the [http://www.fe.up.pt/~robosoc 5dpo Robotic Soccer Team]. It provides a visual serial port (TSdpoSerial) implementation of [[Projects_using_Lazarus#Synaser|Synaser]], an IEEE1394 camera (TSdpoVideo1394) component, an [http://linux-uvc.berlios.de/ UVC video] driver component (TSdpoVideo4L2) for webcams and a Gtk fast painting form (TSdpoFastForm).<br />
<br />
=== Audio Component Suite ===<br />
A collection of components to develop applications for audio playing/recording/processing. Can play wav,ogg,mp3,mp2,wma ... record from any recordable source, do everything simultan, ripping and more ..<br />
You can find all about it in the Code and Components section or Download section<br />
<br />
=== Audio X ===<br />
[http://www.ullihome.de Audio X] is an media management tool, that organize and sort your media without an database so everything is ever actual. A lot of audio formats are useable directly but you can also organize your LP or CD collection with it,it stores the data in XML Files so they are viewablealso with an webbrowser ... <br />
<br />
=== Becape ===<br />
[https://sourceforge.net/projects/becape/ Becape] is a open source backup tool aimed to personal/desktop usage. It does incrementall backups and stores the backup info in a sqlite database allowing to restore the exact state of the backed files at a choosen date. It's fully written in Lazarus/Freepascal.<br />
<br />
=== BrasLib ===<br />
[http://br.groups.yahoo.com/group/BrasLib-devel/ BrasLib] is a new report component for Lazarus under development by brazilian programmers. <br />
<br />
=== Cactus Jukebox ===<br />
Cactus is an audio player that comes with a database to organize your mp3 file collection. Take a look at [http://cactus.hey-you-freaks.de Cactus Homepage]. It's plattform independent and currently available for linux and win32. <br />
<br />
Since actual v0.3 it supports managing and uploading files on a mobile player.<br />
<br />
===CQRLOG===<br />
<br />
[http://www.sourceforge.net/projects/cqrlog/ CQRLOG] is an advanced ham radio logger based on Firebird database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRlog is strongly focused on easy operation and maintenance.<br />
<br />
=== CUPS for lazarus ===<br />
Olivier Guilbaud [http://cups4lazarus.sourceforge.net/ CUPS for lazarus project] is developing the bindings for pascal to use the CUPS (Common UNIX Printing System) libraries. With some dialogs for select printer, setup printer, setup printer jobs.<br />
<br />
Note: This package is deprecated, Cups for Lazarus is now integrated in Printers4Lazarus package which is included with Lazarus. --[[User:Jesusrmx|jesusrmx]] 20:10, 26 June 2006 (CEST)<br />
<br />
=== Daring Apprentice ===<br />
<br />
[http://daringapprentice.wikispaces.com Daring Apprentice] is a 3d [http://www.wizards.com/magic/ Magic: The Gathering] tabletop. It uses GLScene, and lNet.<br />
<br />
=== dbmaker ===<br />
<br />
[http://www.rgsoftware.de dbmaker] is a database application using TDbf and LazReport. Its user interface language is german.<br />
<br />
=== Dedalu ===<br />
A collection of small and simple projects developed in Lazarus by Giuseppe Ridinò (aka Pepecito). They are games, editors, utilities, etc.<br><br />
Homepage: http://dedalu.sourceforge.net/<br />
<br />
=== ExPress ===<br />
A GUI wrapper for UPX (Ultimate Packer for eXecutables). Download it [http://code.google.com/p/express-gui here].<br />
<br />
=== ExtPascal ===<br />
An Ext JS wrapper. [http://extpascal.googlecode.com ExtPascal] lets you use the ExtJS from Object Pascal commands issued by the server. That brings the structure and strict syntax of the Object Pascal for programming the web browser.<br />
<br />
=== fenixsql ===<br />
[http://fblib.altervista.org fenixsql] is a simple admin tool for firebird sql database<br />
<br />
=== Free Pascal Operating System ===<br />
Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)). Download it [http://code.google.com/p/fpos here].<br />
<br />
=== Game Maker ===<br />
[http://www.yoyogames.com/gamemaker Game Maker] allows you to make computer games using easy to learn drag-and-drop actions. You can create professional looking games within very little time. You can make games with backgrounds, animated graphics, music and sound effects, and even 3D games! And when you've become more experienced, there is a built-in programming language, which gives you the full flexibility of creating games with Game Maker. What is best, is the fact that Game Maker can be used free of charge.<br />
<br />
Originally written in Delphi, Lazarus/FreePascal was used to port it from Win32 to Mac OS X and could be used in future for Linux and other platforms.<br />
<br />
=== GLScene ===<br />
A complete 3D graphics library using OpenGL for rendering. You are able to edit your 3D scenes directly in the IDE. Further information can be found on the main page ([http://www.glscene.org GLScene]) or in [[GLScene|GLScene's 'Code and Components' section]].<br />
<br />
=== GTK2forpascal ===<br />
Mattias Gaertner's [http://sourceforge.net/projects/gtk2forpascal/ gtk2forpascal project] is developing the bindings for pascal to use the gtk2 libraries (gimp tool kit). Supported Languages are [[Free Pascal]] and Kylix and the bindings are intended to work under Linux, FreeBSD and Win32. These bindings are now also part of the packages supplied with fpc.<br />
<br />
=== GTK-Fireadmin ===<br />
A GTK based Firebird Administration tool using Firebird Objects and Lazarus Components is available [http://sourceforge.net/projects/gtkfireadmin/ here].<br />
<br />
<br />
=== Habari ActiveMQ Client ===<br />
[http://www.mikejustin.com/ Habari ActiveMQ Client] is a library (and components) for Delphi(tm) and Free Pascal which provides easy access to [http://activemq.apache.org/ Apache ActiveMQ], the most popular and powerful open source Message Broker.<br />
With Habari ActiveMQ Client, applications can connect to Apache ActiveMQ servers, subscribe to queues and topics, send and receive messages and objects, and work with transactions. The communication layer supports Synapse and Indy for Lazarus.<br />
<br />
=== Indy for lazarus ===<br />
Begun only a short while ago, this project has as an ambition to port the 119 components Indy de Delphi/Kylix on FPC/Lazarus.<br />
See [http://indy4lazarus.sourceforge.net/ Indy for Lazarus project] and a <br />
[http://indy4lazarus.sourceforge.net/images/img1_1.jpg screenshot].<br />
<br />
=== ISA Digital Osciloscope ===<br />
A graphical interface for a digital osciloscope. The osciloscope itself is an ISA card with a probe to measure waves. It works on both Windows and Linux. There is some information on how it is being built on [[Hardware Access]]. The full documentation (in English and Portuguese), screenshots and the source code of project can be downloaded [http://eletronicalivre.incubadora.fapesp.br/portal/english/oscilloscope/ here].<br />
<br />
=== Kamouflage ===<br />
<br />
[http://wiki.lazarus.freepascal.org/User:Beli0135 Kamouflage] - Camouflage files into images<br />
<br />
<br />
<br />
===LazFileSplitter===<br />
[http://br.geocities.com/antoniog123456/ LazFileSplitter] is a utility to split and merge big files.<br />
<br />
===LazPad===<br />
[http://br.geocities.com/antoniog123456/ LazPad] is a simple text editor made with Lazarus.<br />
<br />
=== LazReport ===<br />
LazReport is a group of components to add reporting capabilities to applications, it uses a visual designer to create banded reports and includes a report engine with interpreter to run user scripts and a report previewer, report designer can be invoked at runtime.<br />
<br />
LazReport is based on FreeReport 2.32 and thanks to Fast Reports Inc. it's available under modified LGPL, the same license as the Lazarus LCL.<br />
<br />
'''Note.''' Since Lazarus 0.9.23 revision 11950, LazReport source code is<br />
already included in Lazarus/components/lazreport directory.<br />
<br />
===LazVisual===<br />
[http://br.geocities.com/antoniog123456/ LazVisual] is an external tool to include resources on executable file and set application icon.<br />
<br />
===Lightweight Networking Library===<br />
<br />
[http://wiki.freepascal.org/lNet lNet] is a lightweight library designed specifically for Free Pascal and Lazarus which provides simple, single-threaded event-driven networking suite with protocols from TCP and UDP to SMTP and HTTP. lNet was designed to not depend on any external libraries and is extremely portable (currently supports almost all platforms where FPC itself runs).<br />
<br />
=== Master Maths ===<br />
[http://www.mastermaths.co.za Master Maths] specialises in computer based training and maths. The 3rd incarnation of our flagship product is developed using Lazarus, Firebird, [http://tiopf.sourceforge.net/ tiOPF v2] and the [http://opensoft.homeip.net/fpgui/ fpGUI Toolkit]. The product has two parts. A GUI Administration application and a CGI Learner Browser (used to view and mark the teaching modules). The Learner Browser uses Macromedia Flash extensively. The complete product runs under Linux and Windows.<br />
<br />
===Morse Machine===<br />
<br />
[http://downloads.tech-pro.net/morse-machine_tpmm01.html Morse Machine] is an implementation of "A Fully Automatic Morse Code Teaching Machine" first described in a May 1977 QST article of the same name by Ward Cunningham using Lazarus. The program teaches Morse code by sending a character and waiting for you to type what you heard on the keyboard. It grades your score and adds new characters when it sees that you are ready. The program is released under the GNU GPL version 2. Due to its use of the sound card, this implementation is for the Windows platform.<br />
<br />
=== MRIcron ===<br />
[http://www.mricro.com/mricron/ MRIcron] is an opensource project that allows users to visualize and volume render medical images (MRI, CT, PET). It includes tools for lesion mapping, non parametric statistical analysis ([http://www.mricro.com/npm/ npm]), and conversion from the medical DICOM format to the scientific NIfTI format ([http://www.mricro.com/mricron/dcm2nii.html dcm2nii]). It is available for Windows, Linux and Macintosh OSX.<br />
<br />
=== OggBase ===<br />
[http://sourceforge.net/projects/oggbase/ Oggbase] is a FreePascal/Lazarus program for managing your Ogg-Vorbis files in a Database.<br />
<br />
=== OutKafe ===<br />
[http://www.outkastsolutions.co.za/outkast/index.php?option=com_openwiki&Itemid=45&id=outkafe OutKafe] is a next-generation free and open source cybercafe management suite. It currently is running hundreds of cybercafe's at businesses, schools and other establishments around the world. <br />
<br />
=== 'Pnigin' project (a 'Pengo' Remake) ===<br />
The 'Pnigin' project is an advanced remake of the 80's arcade classic 'Pengo' .<br />
<br />
The project was made from scratch, using all original artwork and music. The project used Delphi 5 personal, Lazarus and FreePascal for development.<br />
<br />
As the project is currently in Bèta stage there is no working demo yet, but it is expected that a playable demo is released in summer 2008.<br />
<br />
See the Gong-Proces site [[http://www.naton.org]] for more information regarding the project.<br />
<br />
=== Project Theseus ===<br />
Tom Lisjac's [http://theseus.sourceforge.net Project Theseus] is using Lazarus and FPC for creating a rapid deployment and distribution system for Linux called [http://theseus.sourceforge.net/index.php?wiki=EpikBuilder Epik-Builder]. [http://theseus.sourceforge.net/index.php?wiki=EpikStopwatch EpikStopwatch] and [http://theseus.sourceforge.net/index.php?wiki=EpikBrowser EpikBrowser] are also Lazarus based projects that are currently under development. <br />
<br />
=== QFront ===<br />
<br />
[http://www.ullihome.de QFront] is a platform independent Frontend for the CPU Emulator QEmu<br />
<br />
=== SFS Technology ===<br />
Linux technology to solve the dependencies problems on a Debian/Ubuntu/Linux Tiger operating system. <br />
For more infos see:<br />
[http://www.unixteam.net UNIXTEAM]<br />
<br />
=== Seksi Commander ===<br />
GPL Filemanager for Linux developed in Lazarus and FreePascal.<br />
Integrated bin, text, hex viewer (own component) and editor based on SynEdit.<br />
Home Page: http://radekc.regnet.cz/<br />
<br />
=== Shell for Gammu (Mobile Phone Tool) ===<br />
The [http://www.petersieg.de/gammush Gammush Site] offers hardcopies and downloads for this<br />
Application. Gammush is a shell for gammu.exe. It allows to backup/restore your phone data,<br />
get, edit , put logos, set date+time, send sms messages etc.<br />
<br />
===Siages===<br />
[http://siages.solis.coop.br/ Siages] is an ERP application made with Lazarus.<br />
<br />
=== SilentCoder's site ===<br />
DireqCafe A complete and full full featured internet cafe solution for LTSP and a number of other useful lazarus programs can be found on A.J. Venter's site: [http://www.silentcoder.co.za silentcoder.co.za].<br />
<br />
=== Skychart / Cartes du Ciel ===<br />
[http://www.ap-i.net/skychart Skychart] is a free software to draw a map of the night sky for the amateur astronomer from a bunch of stars and nebulae catalogs. It shows the position of the planets, simulates an eclipse and more. <br />
<br />
===SMTPUtils===<br />
[http://smtputils.sourceforge.net/ SMTPUtils] A tool to tunning your SMTP server against the Open relay, Spam, Virus, to measure the performance, verify it in the black lists (DNSBL) and more.<br />
<br />
=== Synapse ===<br />
The [http://www.ararat.cz/synapse/ Synapse Project] by Lukas Gebauer provides a serial port and synchronous TCP/IP Library for Delphi,C++ Builder, Kylix and FreePascal. This is a high quality offering with too many features to list. The packages are robust, reliable, work well with Lazarus and FPC and the code is easy to follow and maintain... ''highly'' recommended!<br />
<br />
=== Synaser ===<br />
Library for serial communication (Linux, Windows) from author of Synapse.<br />
homepage: http://www.ararat.cz/synapse/ (same as Synapse)<br />
<br />
=== The Icebox ===<br />
A lot of useful Lazarus/FPC related information and components can be found on Tony Maro's [http://tony.maro.net/ Icebox site]. His TMPack, Checkbook Tracker and RDP Frontend application are all excellent examples of the quality components and applications that Lazarus is capable of producing.<br />
<br />
=== The Light Pascal Toolkit (LPTK) ===<br />
The goal of the [http://lptk.sourceforge.net/ Light Pascal Toolkit] Project is to create a free object pascal toolkit for linux and windows GUI development. It looks pretty interesting... check out the [http://lptk.sourceforge.net/screenshots.php screenshots]!<br />
<br />
=== TruckBites ===<br />
Business management software for independent trucking companies and owner/operators (for the USA.) Written under contract by [[user:Tonymaro | Tony Maro]] for both Linux and Windows for "Partners in Trucking, LLC".<br />
http://www.truckbites.com<br />
Still under development, anticipated release in the next few months.<br />
<br />
=== TurboCash ===<br />
Open Source Accounting software.<br />
<br />
[http://www.turbocash.net/wiki/index.php?title=Developer:Lazarus]<br />
<br />
=== Virtual Magnifying Glass ===<br />
[http://magnifier.sourceforge.net/ Virtual Magnifying Glass] is designed for visually-impaired and others who need to magnify a part of the screen. Unlike most similar programs it does not open a separate window for the magnification but instead puts a movable magnifying glass on screen. The project was converted from Visual Studio .NET to Lazarus and now offers a Linux version. Mac OS X and Pocket PC versions are planned.<br />
<br />
=== WikiHelp ===<br />
[http://www.ullihome.de WikiHelp] is an small Tool that generates HTML Pages from an Wiki. It downloads the content Automatically and convert the WikiText Pages into HTML. Most WikiText Features are useable including Images,tables and so on.<br />
<br />
=== WinFF ===<br />
[http://www.winff.org WinFF] is a GUI for the command line video converter, FFMPEG. It will convert most any video file that FFmpeg will convert. WinFF does multiple files in multiple formats at one time. You can for example convert mpeg's, flv's, and mov's, all into avi's all at once. WinFF is available for Windows 95, 98 , ME, NT, XP, VISTA, and Debian, Ubuntu, Redhat based GNU/Linux distributions.<br />
<br />
----<br />
<br />
<br />
'''If your Lazarus project should be listed here, please edit this page and add it!'''<br />
<br />
== Orginal contributors and changes ==<br />
This page has been converted from epikwiki.<br />
* Initial posting - 9/26/2003<br />
* Updated links and labels - [[User:VlxAdmin]] 9/28/2003<br />
* Added the Light Pascal ToolKit project - [[User:VlxAdmin]]10/27/2003<br />
* Added the Dedalu project - [[User:pepecito]] 8/31/2005<br />
* Added ISA Digital Osciloscope - --[[User:Sekelsenmat|Sekelsenmat]] 20:26, 20 Oct 2005 (CEST) 10/20/2005<br />
* Added laz-Indict - [[User:bee]] 13:51, 29 Mar 2006 (WIB) :)<br />
* Added CQRLOG - [[User:ok2cqr]] 08:52 UTC, 2007-10-23<br />
* Added BTActiveMQClient - [[User:Mjustin|Mjustin]] 14:51, 30 December 2007 (CET)<br />
* sorted list alphabeticaly - da_seeb 15:26, 29 January 2008 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=32912Main Page2008-12-29T14:16:09Z<p>Smace: /* Mailing lists */ trim space</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Welcome to the Lazarus and Free Pascal wiki=<br />
==About==<br />
<br />
The goal of this wiki is to be a knowledgebase for FPC/Lazarus and [[Related projects|related projects]]. <br />
<br />
FPC already has good user documentation in several formats, but [[FPC development|FPC developer information, organizational information]] and subjects not yet [[FPC documentation|properly documented]] are collected in this wiki. <br />
<br />
Lazarus, on the other hand, has some gaps in the user documentation. So this area was created as an "open document" or "wiki" where anyone can edit and add content. <br />
<br />
The wiki speeds things by making it possible to make changes and additions with a browser! For tutorials, please take a look at the [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] or the [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. A [[Sand Box]] is available for practice. If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
For the Lazarus <b>project history</b>, see the [[History]] page.<br />
<br />
==Free Pascal Documentation==<br />
;[[FPC documentation|FPC developer documentation]]<br />
:Contains available documentation for developers and other contributors of the Free Pascal Compiler, such as people involved in translation of messages to other languages, a list of pascal bindings, organizational information, procedure for FPC releases, ToDo lists, etc.<br />
<br />
==Lazarus Documentation==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Components and Code examples]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/download.var Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
Lazarus Snapshots download locations can be found [[Lazarus Snapshots Downloads | here]].<br />
<br />
==Mailing lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mailing lists.<br />
<br />
Perhaps even more useful are the [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus] IDE mailing list and the [http://www.freepascal.org/maillist.html FreePascal] developers or announcement mailing lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library, or you need something converted, please post it on the [[Current conversion projects]] page. These postings will help guide developers who want to convert components that are in demand, as well as prevent the duplication of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Ideas, todos, and other plans can be found at [[Lazarus Development Process]] page. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Projects using Lazarus]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
In the [[Lazarus Application Gallery]] you can see some screenshots of applications created with Lazarus.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
====Marketing Case Studies====<br />
An [[Marketing_Case_Studies|opportunity for Lazarus users]] to explain why Lazarus is the IDE of choice.<br />
<br />
====Presenting FPC/Lazarus at a trade show and at contests====<br />
FPC/Lazarus was presented with a booth at the [[Systems 2005]], the [[Systems 2006]] and the [[Systems 2007]] in Munich. Based on the experiences from these trade shows, a collection of [[Preparing a booth on a trade show|information]] to help future preparations for a trade show booth was built. Lazarus and related projects have also participated in a number of Contests, and a [[Contests|wiki page]] was prepared to help future contests inscriptions.<br />
<br />
=Translations=<br />
<br />
* [[Main Page/ar | عربي (Arabic)]]<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | Deutsch (German)]]<br />
* [[Main Page/fr | Français (French)]]<br />
* [[Main Page/id | Bahasa Indonesia (Indonesian)]]<br />
* [[Main Page/it | Italiano (Italian)]]<br />
* [[Main Page/ja | Japanese (Japanese)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/pl | Polski (Polish)]]<br />
* [[Main Page/pt | Português (Portuguese)]]<br />
* [[Main Page/ru | Русский (Russian)]]<br />
* [[Main Page/sk | Slovensky (Slovak)]]<br />
* [[Main Page/fi | Suomi (Finnish)]]<br />
* [[Main Page/uk | Українська (Ukrainian)]]<br />
* [[Main Page/zh_CN | Chinese 中文(简体)]]<br />
* [[Main Page/zh_TW | Chinese 中文(正體)]]<br />
* [[Main Page/vn | Vietnamese (Việt Nam)]]<br />
* [[Main Page/ko | Korean (한국어)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br />
<br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=32911Main Page/pt2008-12-29T14:08:54Z<p>Smace: /* Fórum sobre Lazarus */</p>
<hr />
<div>{{Main Page}}<br />
=Bem-vindo à Base de Conhecimento do Lazarus e do Free Pascal=<br />
__NOTOC__<br />
==Sobre==<br />
<br />
O objectivo desta base de conhecimento é permitir que toda a documentação do Lazarus e do compilador Free Pascal estejam disponíveis para consultas online. Enquanto o compilador é bem documentado, a documentação do Lazarus ainda possui algumas lacunas. Esta área é um &quot;documento aberto&quot;, ou &quot;wiki&quot; onde qualquer um pode editar e adicionar conteúdo. A wiki agiliza as coisas, tornando possível fazer mudanças e adições apenas com um navegador.<br />
<br />
Se tiver algum problema no uso deste site, por favor avise o [http://wiki.lazarus.freepascal.org/User:Vincent administrador]. Você também pode deixar uma anotação ou sugestão, em português, na página [[Site Feedback/pt | Site Feedback]]. Para tutoriais de wiki, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Aqui, uma [[Sand Box]] está disponível para praticar.<br />
<br />
Relatórios de bug da IDE podem ser feitos em português pelo [http://lazarusbrasil.org.googlepages.com/home Bug-Tracker Brasil]. Angolanos, cabo-verdianos, goeses, macauenses, moçambicanos, portugueses, timorenses, brasileiros no exterior, quem fala português como uma segunda língua, todos são bem-vindos.<br />
<br />
Se você tem algum interesse empresarial associado ao desenvolvimento do Lazarus, pode anunciar um [http://wiki.lazarus.freepascal.org/Bounties/pt prêmio] para que se desenvolva determinada característica ou componente. Se quer apenas dar uma sugestão de componente ou característica, use a página [http://wiki.lazarus.freepascal.org/Feature_Ideas Feature Ideas].<br />
<br />
Se quiser participar do fórum, não deixe de ler [http://www.istf.com.br/?page=perguntas como fazer perguntas inteligentes]. Para criar um relatório de bug em inglês veja [http://wiki.lazarus.freepascal.org/How_do_I_create_a_bug_report/pt como criar relatórios de bug]. Para outros tópicos, veja também este [http://lazarus.codigolivre.org.br/index.php/P%C3%A1gina_principal Índice].<br />
<br />
==Projeto de Documentação==<br />
====Documentação do Free Pascal====<br />
<br />
:A [[FPC documentation/pt|documentação para desenvolvedores do FPC]] contém a documentação disponível para desenvolvedores e outros contribuidores do compillador Free Pascal, como pessoas envolvidas em tradução de mensagens para outras línguas, uma lista de bindings de Pascal, informação organizacional, procedimento para releases do FPC, listas a-fazer, etc.<br />
<br />
====Documentação do Lazarus====<br />
:Toda a documentação disponível e tutoriais para a IDE (Ambiente Integrado de Desenvolvimento) do Lazarus, incluindo os manuais do compilador Free Pascal, podem ser encontrados nas páginas de [[Lazarus Documentation/pt | documentação do Lazarus]]. Consulte as [http://wiki.lazarus.freepascal.org/Lazarus_Faq/pt FAQ]. Veja também a [http://lazarus-ccr.sourceforge.net/docs/lcl/ documentação da LCL], o [http://wiki.lazarus.freepascal.org/Tutorial_de_LazReport tutorial de LazReport] e o manual [http://wiki.lazarus.freepascal.org/Install_Packages/pt Instalando Pacotes]. Muitas das páginas estão em permanente construção, portanto fique à vontade para adicionar as suas experiências a essas seções. Se quiser você também pode criar uma página pessoal com informações de contato.<br />
<br />
====A Bíblia do Lazarus====<br />
<br />
:O projeto almeja desenvolver uma documentação original em língua portuguesa, construída a partir do conhecimento de programadores e traduções da wiki. Visite a [http://lazarus.codigolivre.org.br wiki brasileira] e ajude na documentação.<br />
<br />
====Fórum sobre Lazarus====<br />
<br />
:Fórum em português sobre o Lazarus e Freepascal faça nos uma visita: [http://www.lazarus.freepascal.com.br www.lazarus.freepascal.com.br ] aqui o Lazarus fala português.<br />
<br />
==Downloads==<br />
<br />
Todos os componentes e pacotes estão disponíveis na área de arquivos do<br />
[http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus Code and Component Repository] no SourceForge. O compilador Free Pascal e a versão atual de testes do Lazarus podem ser encontrados no site do [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus no Sourceforge]. Documentação adicional para estes pacotes também pode ser encontrada na página [[Components_and_Code_examples/pt|Componentes e Exemplos de Código]] (caso o contribuidor tenha criado uma lá). O compilador e vários códigos-fonte doados podem ser encontrados no site do [http://www.freepascal.eti.br/ compilador Free Pascal] ou no site do [http://lazarus.freepascal.org Lazarus USA].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mails do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando em quê?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou precisa de algo convertido por favor informe isso na página [[Current conversion projects|Projetos Atuais de Conversão]]. Verifique também os projetos em andamento no site brasileiro em [http://lazaruspascal.codigolivre.org.br/index.php?sid=bce5627d9c3a8d5e866f7a4a96d0c645 Projetos em Desenvolvimento]. Estas informações guiarão os desenvolvedores que desejam converter componentes e previnirão o esforço duplicado na conversão de um mesmo pacote.<br />
<br />
==Referências, Links e Recursos==<br />
<br />
====IDE do Lazarus====<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Lançamentos da IDE do Lazarus e do compilador Free Pascal podem ser baixados ali. O [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus File Area] também tem os últimos pacotes do compilador e IDE disponíveis para download.<br />
<br />
====Projetos Atuais em Lazarus====<br />
Nossa lista atual de [[Projects_using_Lazarus/pt|Projetos Desenvolvidos no Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na página de [[Page Of Code Sites|sites de programação]]. Se você conhecer um ótimo site ainda não listado sinta-se à vontade para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
Há algumas excelentes bases de busca e de conhecimento online que podem ser uma grande ajuda para aprender técnicas novas e resolver problemas.<br />
Os associados de Tamarack operam um [http://www.tamaracka.com/search.htm site de busca rápida] especificamente para os arquivos USENET da Borland. A Mer Systems Inc. fornece uma [http://www.mers.com/searchsite.html busca similar]. Uma outra ótima fonte de informação junto com uma potencialidade do [http://www.efg2.com/Lab/search.htm sitewide] é a [http://www.efg2.com/ Earl F.Glynn's Computer Lab and Reference Library].<br />
<br />
====Marketing Case Studies====<br />
Uma oportunidade para usuários Lazarus de [[Marketing_Case_Studies/pt|explicar por que]] o Lazarus é a sua IDE preferida.<br />
<br />
====Apresentando o Lazarus e o FPC em uma Feira de Negócios====<br />
O FPC e o Lazarus foram apresentados em um stand da [http://wiki.lazarus.freepascal.org/Systems_2005 Systems 2005] e da [http://wiki.lazarus.freepascal.org/Systems_2006 Systems 2006] em Munique. Baseados na experiência adquirida nessas feiras nós coletamos algumas [http://wiki.lazarus.freepascal.org/Preparing_a_booth_on_a_trade_show informações] que serão usadas em futuras preparações de stands.<br />
<br />
=Wiki Antiga=<br />
Estas páginas estão sendo convertidas do formato da wiki antiga. A página referente à wiki antiga pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=32910Main Page2008-12-29T14:07:38Z<p>Smace: /* Fórum em Português */ movendo p/ WIKI PORTUGUES...</p>
<hr />
<div>__NOTOC__<br />
{{Main Page}}<br />
=Welcome to the Lazarus and Free Pascal wiki=<br />
==About==<br />
<br />
The goal of this wiki is to be a knowledgebase for FPC/Lazarus and [[Related projects|related projects]]. <br />
<br />
FPC already has good user documentation in several formats, but [[FPC development|FPC developer information, organizational information]] and subjects not yet [[FPC documentation|properly documented]] are collected in this wiki. <br />
<br />
Lazarus, on the other hand, has some gaps in the user documentation. So this area was created as an "open document" or "wiki" where anyone can edit and add content. <br />
<br />
The wiki speeds things by making it possible to make changes and additions with a browser! For tutorials, please take a look at the [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] or the [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. A [[Sand Box]] is available for practice. If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
For the Lazarus <b>project history</b>, see the [[History]] page.<br />
<br />
==Free Pascal Documentation==<br />
;[[FPC documentation|FPC developer documentation]]<br />
:Contains available documentation for developers and other contributors of the Free Pascal Compiler, such as people involved in translation of messages to other languages, a list of pascal bindings, organizational information, procedure for FPC releases, ToDo lists, etc.<br />
<br />
==Lazarus Documentation==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Components and Code examples]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/download.var Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
Lazarus Snapshots download locations can be found [[Lazarus Snapshots Downloads | here]].<br />
<br />
==Mailing lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mailing lists.<br />
<br />
Perhaps even more useful are the [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus] IDE mailing list<br />
<br />
and the [http://www.freepascal.org/maillist.html FreePascal] developers or announcement mailing lists.<br />
<br />
<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library, or you need something converted, please post it on the [[Current conversion projects]] page. These postings will help guide developers who want to convert components that are in demand, as well as prevent the duplication of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Ideas, todos, and other plans can be found at [[Lazarus Development Process]] page. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Projects using Lazarus]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
In the [[Lazarus Application Gallery]] you can see some screenshots of applications created with Lazarus.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
====Marketing Case Studies====<br />
An [[Marketing_Case_Studies|opportunity for Lazarus users]] to explain why Lazarus is the IDE of choice.<br />
<br />
====Presenting FPC/Lazarus at a trade show and at contests====<br />
FPC/Lazarus was presented with a booth at the [[Systems 2005]], the [[Systems 2006]] and the [[Systems 2007]] in Munich. Based on the experiences from these trade shows, a collection of [[Preparing a booth on a trade show|information]] to help future preparations for a trade show booth was built. Lazarus and related projects have also participated in a number of Contests, and a [[Contests|wiki page]] was prepared to help future contests inscriptions.<br />
<br />
=Translations=<br />
<br />
* [[Main Page/ar | عربي (Arabic)]]<br />
* [[Main Page/es | Español (Spanish)]]<br />
* [[Main Page/de | Deutsch (German)]]<br />
* [[Main Page/fr | Français (French)]]<br />
* [[Main Page/id | Bahasa Indonesia (Indonesian)]]<br />
* [[Main Page/it | Italiano (Italian)]]<br />
* [[Main Page/ja | Japanese (Japanese)]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/pl | Polski (Polish)]]<br />
* [[Main Page/pt | Português (Portuguese)]]<br />
* [[Main Page/ru | Русский (Russian)]]<br />
* [[Main Page/sk | Slovensky (Slovak)]]<br />
* [[Main Page/fi | Suomi (Finnish)]]<br />
* [[Main Page/uk | Українська (Ukrainian)]]<br />
* [[Main Page/zh_CN | Chinese 中文(简体)]]<br />
* [[Main Page/zh_TW | Chinese 中文(正體)]]<br />
* [[Main Page/vn | Vietnamese (Việt Nam)]]<br />
* [[Main Page/ko | Korean (한국어)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br />
<br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=User:Smace&diff=32749User:Smace2008-12-19T01:08:10Z<p>Smace: </p>
<hr />
<div>== General Comments ==<br />
<br />
''' FEEL FREE TO CHANGE IT, but avoid deleting prior contents '''<br />
<br />
"Smace helps converting the epikwiki pages to mediawiki." - Vincent Snijders<br />
<br />
"Smace is too helpful (sometimes)" - Andrew Haines :-D<br />
<br />
...And complains about SQLDB to Loesje always he can.<br />
This is the why Loesje seems angry all the time :-) <br />
<br />
21 fev (my birthday :) ... Vincent told me why Loesje is angry with Smace. Smace has changed his Profile in Wiki. <br />
better not change his profile anymore...<br />
<br />
== Profile ==<br />
Full Name: Sérgio Marcelo<br />
IRC Nick: Smace<br />
Location: Rio de Janeiro, Brazil<br />
Knowlegment: Firebird, Delphi, Lazarus, PHP, JEDI-SDL, Networks<br />
Home Page: [http://www.smace.com.br www.smace.com.br]<br />
<br />
== Projects ==<br />
* Software Gratuito de Automação Comercial, pronto para lojas, com crediário, contas a pagar, contas a receber, vendas, impressora fiscal, etc. Mais informações: [http://www.smace.com.br www.smace.com.br]</div>Smacehttps://wiki.freepascal.org/index.php?title=User_talk:Smace&diff=32747User talk:Smace2008-12-19T01:00:12Z<p>Smace: </p>
<hr />
<div>Smace trabalha em www.smace.com.br criando Software para uso pessoal Gratuito (Free/Gratis) de Automação Comercial, mais informações em: [[www.smace.com.br]] . Funciona com Impressora Fiscal. Pronto para automação de lojas :)</div>Smacehttps://wiki.freepascal.org/index.php?title=User:Barko&diff=32735User:Barko2008-12-18T12:50:25Z<p>Smace: New page: * Has ported [http://wiki.freepascal.org/DCPcrypt DCPcrypt] to Lazarus.</p>
<hr />
<div><br />
* Has ported [http://wiki.freepascal.org/DCPcrypt DCPcrypt] to Lazarus.</div>Smacehttps://wiki.freepascal.org/index.php?title=Talk:Main_Page/pt&diff=8435Talk:Main Page/pt2006-03-10T22:37:25Z<p>Smace: </p>
<hr />
<div><br />
Eu nao gosto de PT de portugal nao... se alguem comecar a falar Ficheiros ... aff ... não adianta é diferente! não gostei da ideia :(<br />
<br />
---<br />
Eu estou pensando em mudar o nome da tradução de "Português brasileiro" para apenas "Português".<br />
<br />
Em locais como a wikipedia podemos ver que as duas versões da lingua podem conviver bem e "Português brasileiro" parece desincentivar a participação de portugueses. --[[User:Sekelsenmat|Sekelsenmat]] 22:50, 1 Nov 2005 (CET)<br />
<br />
== mudança de português brasileiro para português ==<br />
<br />
Eu concordo, acho muito bem vinda esta mudança para incentivar o desenvolvimento deste tutorial.<br />
<br />
----<br />
<br />
Acho que logo vou implementar então. --[[User:Sekelsenmat|Sekelsenmat]] 22:12, 10 Nov 2005 (CET)</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=1607Main Page2005-06-27T19:48:36Z<p>Smace: </p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
The goal of the [http:../ Lazarus-CCR] Knowledgebase is to make all documentation for Lazarus and the Free Pascal Compiler available and searchable online. While the compiler is well documented, Lazarus has a few gaps... so this area is an "open document", or "wiki" where anyone can edit and add content. The wiki speeds things up by making it possible to make changes and additions with a browser! For tutorials, please take a look at the [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] or the [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. A [[Sand Box]] is available for practice.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
Lazarus Snapshots can be found [http://lazarus-ccr.sourceforge.net/kb/index.php/Lazarus_Snapshots_Downloads here].<br />
<br />
==Mailing lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mailing lists.<br />
<br />
Perhaps even more useful are the [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Lazarus] IDE mailing list<br />
<br />
and the [http://www.freepascal.org/maillist.html FreePascal] developers or announcement mailing lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Translations=<br />
By alphabetic order:<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/es | Español (Spanish)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br />
<br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Snapshots_Downloads&diff=1617Lazarus Snapshots Downloads2005-06-27T19:43:20Z<p>Smace: </p>
<hr />
<div>BEWARE: These snapshots are generated automatically and are untested. The only thing we can say is, that the compiler found the source good enough to compile.<br />
These snapshots are provided as a courtesy only. If they don't work, too bad! If they destroy your project files, crash your machine, and eat your disk: Tough luck! (just to say that YOU ARE USING COMPLETELY UNTESTED SOFTWARE) <br />
<br />
==Canada==<br />
http://www.ca.freepascal.org/Lazarus/<br />
<br />
==Germany==<br />
http://michael-ep3.physik.uni-halle.de/Lazarus/</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Snapshots_Downloads&diff=1605Lazarus Snapshots Downloads2005-06-27T19:42:39Z<p>Smace: </p>
<hr />
<div>[[BEWARE:]] These snapshots are generated automatically and are untested. The only thing we can say is, that the compiler found the source good enough to compile.<br />
These snapshots are provided as a courtesy only. If they don't work, too bad! If they destroy your project files, crash your machine, and eat your disk: Tough luck! (just to say that YOU ARE USING COMPLETELY UNTESTED SOFTWARE) <br />
<br />
==Canada==<br />
http://www.ca.freepascal.org/Lazarus/<br />
<br />
==Germany==<br />
http://michael-ep3.physik.uni-halle.de/Lazarus/</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Snapshots_Downloads&diff=1604Lazarus Snapshots Downloads2005-06-27T19:41:01Z<p>Smace: Lazarus Snapshots</p>
<hr />
<div>=Lazarus Snapshots Downloads=<br />
<br />
[[BEWARE:]] These snapshots are generated automatically and are untested. The only thing we can say is, that the compiler found the source good enough to compile.<br />
These snapshots are provided as a courtesy only. If they don't work, too bad! If they destroy your project files, crash your machine, and eat your disk: Tough luck! (just to say that YOU ARE USING COMPLETELY UNTESTED SOFTWARE) <br />
<br />
==Canada==<br />
http://www.ca.freepascal.org/Lazarus/<br />
<br />
==Germany==<br />
http://michael-ep3.physik.uni-halle.de/Lazarus/</div>Smacehttps://wiki.freepascal.org/index.php?title=User:Smace&diff=7936User:Smace2005-05-22T18:37:50Z<p>Smace: /* Personal To-Do List */</p>
<hr />
<div>== General Comments ==<br />
<br />
''' FEEL FREE TO CHANGE IT, but avoid deleting prior contents '''<br />
<br />
"Smace helps converting the epikwiki pages to mediawiki." - Vincent Snijders<br />
<br />
"Smace is too helpful (sometimes)" - Andrew Haines :-D<br />
<br />
...And complains about SQLDB to Loesje always he can.<br />
This is the why Loesje seems angry all the time :-) <br />
<br />
21 fev (my birthday :) ... Vincent told me why Loesje is angry with Smace. Smace has changed his Profile in Wiki. <br />
better not change his profile anymore...<br />
<br />
== Personal To-Do List ==<br />
1) Fix Lazarus SQL Explorer for get it usable.<br />
<br />
2) Integrate CVS/SVN to Lazarus<br />
<br />
3) Improve Lazarus Code Explorer for behave just like Delphi does. In fact, it would be having many options about it.<br />
<br />
4) Translate Lazarus to Portuguese-Brazilian (already half translated)<br />
<br />
== Profile ==<br />
<br />
Full Name: Sérgio Marcelo<br />
<br />
IRC Nick: Smace<br />
<br />
Location: Rio de Janeiro, Brazil<br />
<br />
Knowlegment: Firebird, Delphi, Lazarus (recent), PHP, JEDI-SDL<br />
<br />
Home Page: www.smace.com.br/personal<br />
<br />
== Projects ==<br />
<br />
The Tank Game -> http://www.smace.com.br/downloads/smtank.tar.gz<br />
(Windows and Linux Binaries + Source Code + SDL Libraries 4 Win)<br />
<br />
Lazarus SQL Explorer -> http://sourceforge.net/projects/sqlexplorer/<br />
Database IDE</div>Smacehttps://wiki.freepascal.org/index.php?title=User_talk:Loesje&diff=8050User talk:Loesje2005-04-20T16:53:43Z<p>Smace: </p>
<hr />
<div>Loesje, What is your e-mail? - Smace</div>Smacehttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=1371User talk:Vincent2005-03-27T19:40:26Z<p>Smace: Rolling back</p>
<hr />
<div>Hallo Vincent,<br />
I have same images of Component palette Lazarus, your can see their at http://slavko.chytrak.cz/lazarus/docs/laztutor/paleta_komponentov.htm If those images are OK, use their. [[User:Slavko|Slavko]] 11:35, 23 Mar 2005 (PST)<br />
<br />
== Uploaded images ==<br />
<br />
I upload already their. I try use their in [[Lazarus_Tutorial/sk]], see it in Chapter 4 Paleta komponentov. It is images of Component palette. Is necesarily rename their? Difference is only '''paleta_...'''/'''palette_...''' or '''componentPalette_...''' I do not know how their rename. Please, do I rename image as a move page? [[User:Slavko|Slavko]] 13:48, 24 Mar 2005 (PST)<br />
: I like what you are doing with the images. Can you add them to [[Lazarus_Tutorial]] too? [[User:Vincent|Vincent]] 14:16, 24 Mar 2005 (PST)<br />
: Yes you can move images in the same way you can move pages. I really prefer english names. [[User:Vincent|Vincent]] 14:16, 24 Mar 2005 (PST)<br />
<br />
::I don't know whether I can put images in original, in case that yes, I add their there. I rename their at first, but till tomorrow, sorry tonight. :) [[User:Slavko|Slavko]] 16:08, 24 Mar 2005 (PST)<br />
<br />
::I try rename (move) my uploaded image Paleta_synedit.png to Palette_SynEdit.png, and I get red message: "This action cannot be performed on this page." Please, can you rename them or write to my, what I make wrong. [[User:Slavko|Slavko]] 06:53, 25 Mar 2005 (PST)</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=1392Main Page/pt2005-03-27T14:41:43Z<p>Smace: /* Traduções */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
<br />
Todos os componentes e pacotes disponíveis estão disponíveis na <br />
[http://sourceforge.net/project/showfiles.php?group_id=92177 Área de Arquivos do Lazarus-CCR no Sourceforge]. O Compilador Free Pascal e a versão atual de testes do Lazarus podem ser encontrados no [http://sourceforge.net/project/showfiles.php?group_id=89339 Site do Lazarus no Sourceforge]. Documentações adicionais para estes pacotes também podem ser encontrados na página do wiki de [[Code And Components|Códigos e Componentes]] caso o contribuidor tenha criado uma lá. O Compilador e vários códigos fontes doados podem ser encontrados no site do [http://www.freepascal.org/sdown.html Compilador Free Pascal] ou no site do [http://lazarus.freepascal.org Lazarus].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na [[Page Of Code Sites|Página de Sites de Programação]]. Se você conhecer um ótimo site ainda não listado sinta-se livre para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page | English (Main)]]<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=996Main Page/pt2005-03-27T14:36:33Z<p>Smace: /* Downloads */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
<br />
Todos os componentes e pacotes disponíveis estão disponíveis na <br />
[http://sourceforge.net/project/showfiles.php?group_id=92177 Área de Arquivos do Lazarus-CCR no Sourceforge]. O Compilador Free Pascal e a versão atual de testes do Lazarus podem ser encontrados no [http://sourceforge.net/project/showfiles.php?group_id=89339 Site do Lazarus no Sourceforge]. Documentações adicionais para estes pacotes também podem ser encontrados na página do wiki de [[Code And Components|Códigos e Componentes]] caso o contribuidor tenha criado uma lá. O Compilador e vários códigos fontes doados podem ser encontrados no site do [http://www.freepascal.org/sdown.html Compilador Free Pascal] ou no site do [http://lazarus.freepascal.org Lazarus].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na [[Page Of Code Sites|Página de Sites de Programação]]. Se você conhecer um ótimo site ainda não listado sinta-se livre para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=995Main Page/pt2005-03-27T14:35:33Z<p>Smace: /* Downloads */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
<br />
Todos os componentes e pacotes disponíveis estão disponíveis na <br />
[http://sourceforge.net/project/showfiles.php?group_id=92177 Área de Arquivos do Lazarus-CCR no Sourceforge]. O Compilador Free Pascal e a versão atual de testes do Lazarus podem ser encontrados no [http://sourceforge.net/project/showfiles.php?group_id=89339 Site do Lazarus no Sourceforge]. Documentações adicionais para estes pacotes também podem ser encontrados na página do wiki de [[Code And Components|Códigos e Componentes]] caso o contribuidor tenha criado uma lá. O Compilador e vários códigos fontes doados podem ser encontrados no site do [[http://www.freepascal.org/sdown.html|Compilador Free Pascal]] ou no site do [http://lazarus.freepascal.org Lazarus].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na [[Page Of Code Sites|Página de Sites de Programação]]. Se você conhecer um ótimo site ainda não listado sinta-se livre para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=994Main Page/pt2005-03-27T14:33:19Z<p>Smace: /* Downloads */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
<br />
Todos os componentes e pacotes disponíveis estão disponíveis na <br />
[http://sourceforge.net/project/showfiles.php?group_id=92177 Área de Arquivos do Lazarus-CCR no Sourceforge]. O Compilador Free Pascal e a versão atual de testes do Lazarus podem ser encontrados no [http://sourceforge.net/project/showfiles.php?group_id=89339 Site do Lazarus no Sourceforge]. Documentações adicionais para estes pacotes também podem ser encontrados na página do wiki de [[Code And Components|Códigos e Componentes]] caso o contribuidor tenha criado uma lá. O Compilador e vários códigos fontes doados podem ser encontrados na página do site do [[http://www.freepascal.org/sdown.html|Compilador Free Pascal]] ou no [http://lazarus.freepascal.org Lazarus].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na [[Page Of Code Sites|Página de Sites de Programação]]. Se você conhecer um ótimo site ainda não listado sinta-se livre para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=993Main Page/pt2005-03-27T13:39:55Z<p>Smace: /* Super Sites and Link Farms */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Grandes Sites e Links Relacionados====<br />
A nossa lista de sites relacionados ao Delphi/Kylix pode ser encontrada na [[Page Of Code Sites|Página de Sites de Programação]]. Se você conhecer um ótimo site ainda não listado sinta-se livre para adicioná-lo.<br />
<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=992Main Page/pt2005-03-27T03:19:29Z<p>Smace: /* Lazarus IDE */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
Novidades e informações sobre a situação da IDE do Lazarus podem ser encontrados [http://lazarus.freepascal.org aqui]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=986Main Page/pt2005-03-27T03:16:37Z<p>Smace: /* O Projeto de Documentação do Lazarus */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation|Documentação do Lazarus]]<br />
<br />
:Toda a documentação disponível e [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutoriais]] para a IDE do Lazarus (incluindo os manuais do Compilador Free Pascal) podem ser encontrados na página de [[Lazarus Documentation|Documentação do Lazarus]]. Muitas das páginas estão em permanente contrução então, sinta-se livre para adicionar as suas experiências a estas seções. Se você preferir você também pode criar uma página pessoal com informações de contato.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=985Main Page/pt2005-03-27T03:12:30Z<p>Smace: /* Projetos Ativos do Lazarus */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Nossa lista atual de [[Lazarus Projects|Projetos do Lazarus]] com acesso público ao website e aos arquivos relacionados para download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=984Main Page/pt2005-03-27T03:10:53Z<p>Smace: /* Sobre */</p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
Se você tiver algum problema, por favor avise ao [http://sourceforge.net/users/vlx/ administrador] do site ou envie um relatório de bug no site do SF [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR]. Você também pode deixar uma anotação ou sugestão na página [[Site Feedback]].<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=1291Main Page2005-03-27T03:06:35Z<p>Smace: /* Translations */</p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
The goal of the [http:../ Lazarus-CCR] Knowledgebase is to make all documentation for Lazarus and the Free Pascal Compiler available and searchable online. While the compiler is well documented, Lazarus has a few gaps... so this area is an "open document", or "wiki" where anyone can edit and add content. The wiki speeds things up by making it possible to make changes and additions with a browser! For tutorials, please take a look at the [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] or the [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. A [[Sand Box]] is available for practice.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Translations=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
* [[Main Page/ptbr | Portuguese (Brazil)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br><br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=983Main Page/pt2005-03-27T03:05:10Z<p>Smace: </p>
<hr />
<div>=Bem vindo ao Lazarus-CCR Knowledge-Base=<br />
==Sobre==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==O Projeto de Documentação do Lazarus==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==Referências, Link e Recursos==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Projetos Ativos do Lazarus====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Ferramentas de Busca Especializadas====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=982Main Page2005-03-27T03:00:47Z<p>Smace: </p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
The goal of the [http:../ Lazarus-CCR] Knowledgebase is to make all documentation for Lazarus and the Free Pascal Compiler available and searchable online. While the compiler is well documented, Lazarus has a few gaps... so this area is an "open document", or "wiki" where anyone can edit and add content. The wiki speeds things up by making it possible to make changes and additions with a browser! For tutorials, please take a look at the [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] or the [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. A [[Sand Box]] is available for practice.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Translations=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br><br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page/pt&diff=981Main Page/pt2005-03-27T02:59:26Z<p>Smace: </p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=User_talk:Vincent&diff=1000User talk:Vincent2005-03-27T02:58:54Z<p>Smace: </p>
<hr />
<div>Hi Vincent!!!<br />
<br />
I need help to rollback changes in main page!!!<br />
<br />
#####<br />
<br />
<br />
<br />
Hallo Vincent,<br />
I have same images of Component palette Lazarus, your can see their at http://slavko.chytrak.cz/lazarus/docs/laztutor/paleta_komponentov.htm If those images are OK, use their. [[User:Slavko|Slavko]] 11:35, 23 Mar 2005 (PST)<br />
<br />
== Uploaded images ==<br />
<br />
I upload already their. I try use their in [[Lazarus_Tutorial/sk]], see it in Chapter 4 Paleta komponentov. It is images of Component palette. Is necesarily rename their? Difference is only '''paleta_...'''/'''palette_...''' or '''componentPalette_...''' I do not know how their rename. Please, do I rename image as a move page? [[User:Slavko|Slavko]] 13:48, 24 Mar 2005 (PST)<br />
: I like what you are doing with the images. Can you add them to [[Lazarus_Tutorial]] too? [[User:Vincent|Vincent]] 14:16, 24 Mar 2005 (PST)<br />
: Yes you can move images in the same way you can move pages. I really prefer english names. [[User:Vincent|Vincent]] 14:16, 24 Mar 2005 (PST)<br />
<br />
::I don't know whether I can put images in original, in case that yes, I add their there. I rename their at first, but till tomorrow, sorry tonight. :) [[User:Slavko|Slavko]] 16:08, 24 Mar 2005 (PST)<br />
<br />
::I try rename (move) my uploaded image Paleta_synedit.png to Palette_SynEdit.png, and I get red message: "This action cannot be performed on this page." Please, can you rename them or write to my, what I make wrong. [[User:Slavko|Slavko]] 06:53, 25 Mar 2005 (PST)</div>Smacehttps://wiki.freepascal.org/index.php?title=User_talk:Luizmed&diff=8019User talk:Luizmed2005-03-27T02:55:10Z<p>Smace: </p>
<hr />
<div>Seu nome me parece familiar.<br />
btw, quem é vc? ;)</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=980Main Page2005-03-27T02:53:38Z<p>Smace: /* Mail lists */</p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Lista de E-mails==<br />
Usuários novatos e veteranos estão convidados a se unir às listas de e-mail do Lazarus-CCR [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce anúncios] e [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general diversos].<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=978Main Page2005-03-27T02:50:52Z<p>Smace: /* Who is working on what? */</p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Quem está trabalhando no que?==<br />
Se você está atualmente convertendo um componente ou biblioteca ou você precisa de algo convertido, por favor informe isso na página [[Current Projects|Projetos Atuais]]. Estas informações guiaram os desenvolvedores que desejam converter componentes... e também previnir o esforço duplicado de duas pessoas convertendo o mesmo pacote.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=977Main Page2005-03-27T02:39:07Z<p>Smace: /* Old wiki */</p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Wiki Antigo=<br />
Estas páginas estão sendo convertidas do formato do wiki antigo. A pagina referente ao Wiki antigo pode ser encontrada [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage aqui].<br><br />
Conteúdo original por [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=976Main Page2005-03-27T02:37:26Z<p>Smace: /* Translations */</p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Traduções=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br><br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Main_Page&diff=975Main Page2005-03-27T02:36:06Z<p>Smace: </p>
<hr />
<div>=Welcome to the Lazarus-CCR Knowledge-Base=<br />
==About==<br />
<br />
O objetivo de [http:../ Lazarus-CCR] Knowledgebase é permitir que toda a documentação para o Lazarus e do Compilador Free Pascal esteja disponível para consultas on-line. Enquanto o compilador é bem documentado, Lazarus ainda tem algumas brechas.... esta área é um "documento aberto", ou "wiki" aonde qualquer um pode editar e adicionar conteúdo. O wiki agiliza as coisas tornando possível fazer mudanças e adições com um navegador!<br />
<br />
Para tutoriais, por favor dê uma olhada em [http://www.chat11.com/30_Second_Quick_Wiki_Tutorial 30 Second Quick Wiki Tutorial] ou o [http://en.wikipedia.org/wiki/Wikipedia:Tutorial WikiPedia Tutorial]. Uma [[Sand Box]] está disponível para praticar.<br />
<br />
If you have any problems, please notify the site [http://sourceforge.net/users/vlx/ administrator] or post a bug report on the [http://sourceforge.net/projects/lazarus-ccr Lazarus-CCR] SF site. You can also leave a note or suggestion on our [[Site Feedback]] page.<br />
<br />
==The Lazarus Documentation Project==<br />
;[[Lazarus Documentation]]<br />
:All the available documentation and [[Lazarus_Documentation#Lazarus_and_Pascal_Tutorials|tutorials]] for the Lazarus IDE (including the Free Pascal Compiler manuals) can be found on the [[Lazarus Documentation]] page. Many of the pages are "works in progress" so please feel free to add your experience to these sections. You can also create a personal page with contact information, if you wish.<br />
<br />
==Downloads==<br />
All currently available components and packages are available on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus-CCR Sourceforge files area]. The Free Pascal Compiler and current test versions of Lazarus can be found at [http://sourceforge.net/project/showfiles.php?group_id=89339 The Lazarus Sourceforge site]. Additional documentation on these packages can also be found on the [[Code And Components]] wiki page if the person who contributed the code created one there. The Compiler and a lot of contributed code can be found on the [http://www.freepascal.org/sdown.html Free Pascal Compiler download mirrors] and on the [http://lazarus.freepascal.org Lazarus IDE website].<br />
<br />
==Mail lists==<br />
New and experienced users alike are invited to join the Lazarus-ccr [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-announce announce] and [http://lists.sourceforge.net/lists/listinfo/lazarus-ccr-general general] mail lists.<br />
<br />
==Who is working on what?==<br />
If you're currently converting a component or library or you need something converted, please post it on the [[Current Projects]] page. These postings will help guide developers who want to convert components that are in demand... and also prevent the duplicated effort of two people converting the same package.<br />
<br />
==References, Links and Resources==<br />
<br />
===Lazarus IDE===<br />
News and information about the status of the Lazarus IDE can be found on the [http://lazarus.freepascal.org Lazarus IDE website]. Releases of the Lazarus IDE and FreePascal compiler can be downloaded from there. The [http://sourceforge.net/project/showfiles.php?group_id=89339 Lazarus file area] also has the latest packages of the compiler and IDE available for download.<br />
<br />
====Active Lazarus Projects====<br />
Our current listing of [[Lazarus Projects]] with publicly accessible websites and Lazarus related files to download.<br />
<br />
====Super Sites and Link Farms====<br />
Our current collection of Delphi/Kylix related sites can be found on our [[Page Of Code Sites]]. Please add to it if you know of a good site that hasn't been listed yet.<br />
====Specialized Search Engines====<br />
There are some outstanding search and knowledge bases online that can be a great help for learning new techniques and solving problems.<br />
Tamarack Associates operates a fast [http://www.tamaracka.com/search.htm search] engine specifically for the Borland usenet archives. Mer Systems Inc. provides a similar search [http://www.mers.com/searchsite.html engine].<br />
Another outstanding source of information along with a sitewide [http://www.efg2.com/Lab/search.htm search] capability is Earl F. Glynn's Computer Lab and Reference [http://www.efg2.com/ Library].<br />
<br />
=Translations=<br />
* [[Main Page/sk | Slovak]]<br />
* [[Main Page/nl | Nederlands (Dutch)]]<br />
<br />
=Old wiki=<br />
These pages are being converted from the old wiki format. The old wiki front page can be found [http://lazarus-ccr.sourceforge.net/index.php?wiki=FrontPage here].<br><br />
Original content by [[User:VlxAdmin]].</div>Smacehttps://wiki.freepascal.org/index.php?title=Talk:Portuguese-Brazilian_Localization_Notes&diff=4024Talk:Portuguese-Brazilian Localization Notes2005-03-26T21:49:22Z<p>Smace: </p>
<hr />
<div>;Deveria 'Unit' ser traduzido como 'Unidade'?<br />
;Isso não poderia atrapalhar usuários iniciantes?</div>Smacehttps://wiki.freepascal.org/index.php?title=Talk:Portuguese-Brazilian_Localization_Notes&diff=973Talk:Portuguese-Brazilian Localization Notes2005-03-26T21:48:32Z<p>Smace: </p>
<hr />
<div>Discurssão: Deveria 'Unit' ser traduzido como 'Unidade'?<br />
Isso não poderia atrapalhar usuários iniciantes?</div>Smacehttps://wiki.freepascal.org/index.php?title=Portuguese-Brazilian_Localization_Notes&diff=3321Portuguese-Brazilian Localization Notes2005-03-26T21:37:22Z<p>Smace: /* Dictionary: Notes about Translations */</p>
<hr />
<div>== Dictionary: Notes about Translations ==<br />
<br />
Eu ainda não terminei a tradução, ela está parada desde ano passado. Mas já traduzi 50% do Lazarus. Quem tiver interesse em concluí-la. Por favor entre em contato. - [[user:smace|Sérgio Marcelo]]<br />
<br />
;Build : Construir<br />
;Unit : Unidade<br />
;Debug : Depurar<br />
;Debuger : Depurador<br />
;Go-To : Ir Para<br />
;Identifier : ?</div>Smacehttps://wiki.freepascal.org/index.php?title=Lazarus_Documentation&diff=1007Lazarus Documentation2005-03-26T21:35:36Z<p>Smace: /* Translations */</p>
<hr />
<div>==Lazarus and Pascal Tutorials==<br />
*[[Lazarus Tutorial]] - A tutorial for beginners and a detailed description of the Lazarus IDE.<br />
<br />
*[[Lazarus IDE Tools]] - An intermediate level tutorial about code completion and other IDE tools.<br />
<br />
*[[Lazarus Database Tutorial]] - An introduction to using Lazarus with databases.<br />
<br />
*[[Pascal Tutorial]] - [http://www.taoyue.com/ Tao Yue's] [http://www.taoyue.com/tutorials/pascal/ Pascal Tutorial] (reposted with permission).<br />
<br />
*[[Executing External Programs]] - A short tutorial showing how to run external programs from inside your program.<br />
<br />
==The Lazarus User Guides==<br />
*[[Installing Lazarus]] - An installation guide (please add to it!)<br />
<br />
*[[Lazarus For Delphi Users]] - For Delphi users who are getting started with Lazarus<br />
<br />
*[[Lazarus Faq]] - General information about Lazarus and specifics for Linux and Windows users.<br />
<br />
<br />
==The Lazarus Developer Guides==<br />
*[[How To Help Developing Lazarus]] - A guide to help newbies start improving Lazarus<br />
*[[Creating A Patch| Creating a Patch]] - A guide to making a patch with changes made to Lazarus<br />
*[[Creating a Backtrace with GDB]] - A guide to making a backtrace to help you debug a program<br />
*[[How To Make Lazarus Docs]] - A guide to creating Documentation Files<br />
*[[DesignGuidelines|Design Guide Lines]] - A guide about how to procede when changing Lazarus Source Code.<br />
*[[LCL Messages]] - Guide related to LCL Messages.<br />
*[[LCL Internals]] - Some info about the inner workings of the LCL.<br />
<br />
===Translations===<br />
* [[Getting translation strings right]] A few notes for programmers on how to create and use translateable strings in your application. Quickly discusses general things about creating strings, offers a few hints on implementation issues and points out some things to consider when using English as base language in particular.<br />
* '''Localization Notes:'''<br />
:* [[German localization notes|German]] - Notes and guidelines for translating the Lazarus IDE to German, including a small dictionary to look up often used translations.<br />
:* [[Portuguese-Brazilian Localization Notes|Portuguese-Brazilian]] - Small dictionary containing common translations for terms used in the Lazarus IDE for the Portugese-Brazilian translation.<br />
<!-- *[[TO-DO]] Remaining Tasks --><br />
<br />
==Code Conversion Guides==<br />
<br />
* [[Code Conversion Guide]] - How to convert existing code and components<br />
<br />
==IDE Documentation==<br />
*[[Getting Lazarus]] - Instructions on how to download a released or CVS version of Lazarus **<br />
<br />
*[[Lazarus Packages]] - A guide for creating a package under Lazarus<br />
<br />
*[[Cross compiling for Win32 under Linux]] - The link says it all.<br />
<br />
*[[Remote Debugging]] - How to debug your Lazarus application from another machine.<br />
<br />
*[[Extending the IDE]] - How to add functionality to the Lazarus IDE <br />
<br />
*[[Lazarus IDE ToDo List]] - Remaining tasks for the IDE<br />
<br />
*[[Anchor Sides]] - Description of Anchor Sides Feature<br />
<br />
==Free Pascal Compiler Documentation==<br />
In addition to [http://lazarus-ccr.sourceforge.net/fpcdoc/ this site], the latest version of the documentation can also be found online and in a variety of downloadable formats on the main [http://www.freepascal.org/docs.html Free Pascal Compiler site].<br />
<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/user/user.html User's guide]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/prog/prog.html Programmer's guide]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/ref/ref.html Reference guide for the system unit, and supported Pascal constructs]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/units/units.html Standard units reference manual]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fcl/index.html Free Component Library reference manual]<br />
*[http://lazarus-ccr.sourceforge.net/fpcdoc/fpdoc/fpdoc.html Free Pascal documentation tool manual]</div>Smace