- 1 Create a new file with Open file
- 2 IDE macros
- 3 Getting the compiler command line parameters created by the IDE
- 4 Closing all editor files except one
- 5 Component palette
- 6 My application freeze my linux desktop while debugging
- 7 Compiling the IDE fast
- 8 DebugLn of the IDE or a LCL application
- 9 Finding the source file of a IDE window
Create a new file with Open file
You can create a new file and save it, or you can create a new file with filename and filetype in one step: Just open file (Ctrl+o) and select an non existing file. For example: unit1.pas. The IDE will ask you if it should be created.
Getting the compiler command line parameters created by the IDE
You can copy the parameters from Project -> Compiler Options -> Show Options. Here the paths are relative to the project directory. So in most cases you can copy them without adjusting.
The parameters are also saved to the *.compiled file. For example if your project is called test1.lpi, then a test1.compiled is created. It is a simple text xml file, so you can just copy the options and adjust the paths to compile on another computer. The file is put into the same directory, where the executable is created.
For packages this works the same.
This way, you can compile your (hopefully working and bugfree) code, outside of the lazarus IDE.
Closing all editor files except one
Under gtk (available for linux, macosx and freebsd) the source editor pages have a close button right to their page name. Press the Ctrl key while clicking on the button, closes all files except the clicked one.
Finding a component in the palette
You know the component name, or part of it, but you don't know in which page it was? This tool finds it: Right click on a component in the palette to open the popup menu. Choose 'Find component'. Type part of the name to filter the list.
Open the package of a component in the palette
Right click on the component to open the popup menu, then choose open package.
Find the source declaration of a component in the palette
Right click on the component to open the popup menu, then choose open unit.
My application freeze my linux desktop while debugging
X (your desktop) can freeze, when an application that grabbed the mouse is stopped by gdb (the debugger).
Using a second X session
You can start a second X by:
X :1 &
with Ctrl-Alt-F7 you switch to :0 and with Ctrl-Alt-F8 you switch to :1 after that you can start a second gnome session by:
gnome-session --display=:1 &
You can use vncserver/client by installing tightvncserver/realvncserver Start the server with:
AFAIK, a session is also started. You can connect to the vncserver with vncviewer.
Debug the application on the second server
In lazarus, in the run parameters for your project, check "use display" and enter
Now your application will run on the second server, so when it is being debugged, only the second server will freeze (but that won't affect you since you are debugging on the first).
Compiling the IDE fast
Working on Lazarus itself needs rebuilding the IDE many times. If you use the following tricks and have enough memory and a recent cpu, you should be able to recompile the IDE in a few seconds.
- Put the Lazarus sources on a fast harddisk. Not on a slow network filesystem.
- Install only needed packages.
- Set USESVN2REVISIONINC=0 to skip the update of the revision.inc.
- Compile only parts. If the packager registration is recompiled, then all installed packages are recompiled too. If the IDEIntf is recompiled, then all installed design-time packages are recompiled.
- Under windows: use the internal linker
DebugLn of the IDE or a LCL application
The IDE writes many useful hints via debugln. Under windows you can get them by starting lazarus with the command line parameter --debug-log=filename.txt. Under Linux/BSD/MacOSX/Solaris: Just start lazarus in a terminal. This is a general LCL feature.
Finding the source file of a IDE window
- Open the IDE window.
- Press Ctrl+Shift+F1 to open the help editor.
- Remember the window classname. Close the window.
- Use Find In Files to find the source file of the class.