Gambas Documentation
Aperçu du Langage
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
À propos de ma formule préférée
Captures d'écrans
Comportement interne de DrawingArea
Convention de Nommage des Variables
Conventions de nommage
Database Datatype Mapping
DBus et Gambas
Démarrer avec Gambas
Détails de l'architecture
Différences avec Visual Basic
Différences entre Shell et Exec
Distributions et systèmes d'exploitation
Drag & Drop
Gambas, c'est quoi ?
Introduction
Le modèle objet de Gambas
Le programme s'est arrêté de façon inattendue en levant le signal #11
Licence
LIENS RELATIFS à Gambas
Listes de diffusion et Forums
Livres
Localisation et Internationalisation
Network Programming
News
Notes de version
Gambas 2.23.0
Gambas 2.23.1
Gambas 2.24.0
Gambas 3.1.0
Gambas 3 RC1
Gambas 3 RC2
Gambas 3 RC3
Gambas 3 RC4
Gambas 3 RC5
Gambas 3 RC6
ODBC Component Documentation
Pages serveur Gambas
Passer Un Argument Par Référence
PCRE Pattern Syntax
Portage de Gambas 2 en Gambas 3
Questions fréquemment posées (FAQ)
Rich Text Syntax
Signaler un problème, un bogue ou un plantage
Tests de performance (benchmarks)
Window Activation & Deactivation
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

Gambas 3 RC3

Quoi de neuf?

Cette édition est la troisième version de la version candidate de Gambas 3.

Plus de 70 bogues on été réglés un peu partout, et les fonctionnalités nouvelles suivantes ont été implementées:
  • Deux entrées nouvelles dans le menu de l'éditeur de code et l'éditeur de texte pour basculer le texte sélectionné en majuscules ou minuscules.

  • Deux nouvelles fonctions ajoutées au formulaire editor: encapsulation des contrôles sélectionnés dans un conteneur nouvellement créé, et suppression d'un conteneur sans suppression de son descendant.

  • L’interpréteur est maintenant strict quand il vérifie la surcharge des symboles via l'héritage.

  • Prise en compte du bureau LXDE dans le composant gb.desktop.

  • Desktop.RunAsRoot() lance une commande en root, par le biais de l'outil graphique "su" du bureau courant.

  • La classe Action a été optimisée, l'IDE démarre plus vite.

  • Configuration d'un Proxy dans gb.qt4.webkit.

  • Nouvelle Méthode pour évaluer les JavaScript dans le contrôle WebView.

  • WebView.UserAgent est une nouvelle propriété pour definir une chaîne agent utilisateur personnalisée pour un contrôle WebView spécifique.

  • Prise en compte des cookies HttpOnly dans le composant gb.web.

Comme d'habitude, merci de transmettre tout problème de compilation et de packaging sur la mailing-list!

Merci d'advance.

Journal des Changements

[CONFIGURATION]
* BUG: Remove generated ltmain.sh files.

[DEVELOPMENT ENVIRONMENT]
* BUG: Comments are not automatically inserted anymore when we are at the
  beginning of the line.
* BUG: Searching in the menu editor does not crash anymore.
* BUG: Deleting menus in the menu editor works correctly again.
* BUG: Shortcuts are now correctly displayed in menu editor.
* BUG: Keep menu selection when moving them up or down.
* BUG: Deleting non-existing symbolic links works correctly now.
* BUG: Comment and uncomment work again in the code editor.
* BUG: Define the correct startup class.
* BUG: Display recursive error messages sent by the debugger correctly.
* BUG: The search list does not jump to the next instance unexpectedly
  anymore.
* BUG: Fix a possible crash in menu editor.
* BUG: Enabling or disabling tooltips in the option dialog does not crash
  anymore.
* BUG: Inserting a new menu in the menu editor correctly selects it.
* BUG: The component property dialog does not crash anymore if there is no
  exported class in the project.
* BUG: Refresh help browser correctly when a new project is opened.
* BUG: Class help now ends with the first void line after at least one
  help line.
* BUG: The help browser now opens external links in the external web
  browser.
* BUG: The help browser is always refreshed when its treeview is clicked.
* BUG: Correctly handle image editor option in the options dialog.
* BUG: Try to fix Fabiens's problem with invisible completion list.
* BUG: Generate project help pages in temporary files so that the help
  browser can put them in its history.
* BUG: Fix bad project file links in the help browser.
* BUG: Fix the "Gambas web site" button tooltip in the help browser.
* NEW: Reorganize menus in code editor and text editor.
* NEW: Two new menu entries in code editor and text editor to switch
  selected text to upper case or lower case.
* NEW: The startup class icon is now just drawn with a dark outline.
* NEW: Error messages updated.
* NEW: French translation updated.
* NEW: In the library tab of the project property dialog, display the
  dependencies of the libraries.
* NEW: Add a button to only display exported classes in the project tree.
* NEW: Automatic completion now displays hidden symbols if the class is
  part of the current project.
* NEW: Support for *.tar.xz source archives.
* NEW: Underscores are now allowed inside a class name.
* NEW: Support for splitted lines in pretty printer.
* NEW: Redesign the system information window and its contents.
* NEW: Fix some theme colors.
* NEW: English and french tips were updated.
* NEW: Fix and enhance the Report brush chooser dialog.
* NEW: Use Color.Gradient instead of Color.Merge.
* NEW: Use a MenuButton instead of a ComboBox to edit list properties.
* NEW: Add two new functions to the form editor: embedding the selected
  controls inside a newly created container, and removing a container
  without removing the children.
* NEW: Remove some icons that are not used anymore.
* NEW: Change auto-completion symbol icons.
* NEW: Add a filter in the "recent" tab of the "open project" dialog.
* NEW: Add a project filter in the recent project list of the welcome
  dialog.
* NEW: Update Czech translation.
* NEW: Update Czech tips.

[WIKI CGI SCRIPT]
* BUG: Fixes in OpenGL automatic documentation.
* NEW: Some enhancements in OpenGL automatic documentation.
* NEW: Tons of new changes to make a better automatic documentation of
  virtual classes.
* NEW: Support for indonesian translation.
* NEW: Page renaming has a new option to do a copy instead.

[WEB SITE MAKER]
* BUG: Fix PayPal link.
* BUG: Fix default font in style sheets.
* NEW: Update website for Gambas 3.0 RC2.

[EXAMPLES]
* BUG: Some fixes in WebCam example.
* NEW: Add a proxy configuration dialog in the WebBrowser example.
* NEW: WebBrowser example: Handle new WebView.Fonts.xxx properties.
* NEW: WebBrowser: Use the 'document.execCommand' JavaScript DOM method to
  make the web browser editable.
* NEW: Some little changes in TreeView example.
* NEW: New StarField example made by Laurent Carlier.

[INTERPRETER]
* BUG: Do not leak object reference when an error is raised during an event
  handler.
* BUG: When a broken symbolic link is encountered, Dir() now assumes it is
  a file.
* BUG: Components loaded at startup are now persistent. They are not
  unloaded by the interpreter anymore. That should prevent crashes from bad
  C++ libraries that have global static objects to delete. Qt can you hear
  my cries?
* BUG: Now an inherited method checks that it has the same signature as the
  parent method. This check is not done for a native class inheriting
  another native class. C/C++ programmers are supposed to know what they
  are doing. :-)
* BUG: Error.Backtrace is accurate now.
* BUG: Fix FOR...NEXT loop with Byte, Short and Single datatypes.
* NEW: Inheritance is stricter now: the child symbol must have exactly the
  same kind than the parent symbol.
* NEW: Gambas 3 executable mime description file and icon have been renamed
  so that they do not conflict with Gambas 2 files.
* NEW: Loading a user library now automatically loads the other libraries
  it depends on, as well as the components.
* NEW: Rename many virtual classes everywhere so that the documentation can
  easily extract the property name of the parent class from the virtual
  class name. For example, ".ApplicationArgs" is now ".Application.Args".
* NEW: Rename the '.File.Perm' virtual class as '.Stat.Perm'.
* NEW: String.IsValid() is a new method that returns if a string is a valid
  well-formed UTF-8 string.
* NEW: The LIKELY() and UNLIKELY() macros do nothing now, as it seems that
  recent CPUs are better than humans for branch prediction.
* NEW: Write instruction can write a bunch of bytes from a pointer address.
* NEW: Quote comma in Html$().

[GB.DB.FORM]
* BUG: Rename all Refresh() methods as Update() in all controls, so that
  the Refresh() method inherited from Control is not badly overridden.
* NEW: DataView.Labels and DataBrowser.Labels are two new properties that
  define the column labels. If they are not set, the field names are used.
* NEW: Change the way DataView chooses the height of a row.

[GB.DESKTOP]
* BUG: Update xdg-utils to the latest version, so that LXDE desktop is
  correctly supported.
* NEW: Desktop.RunAsRoot() runs a command as root, by using the graphical
  "su" utility of the current desktop.
* NEW: Support for LXDE in Desktop.OpenTerminal().

[GB.EVAL]
* OPT: Use an intermediate string buffer when analyzing a line of code.

[GB.EVAL.HIGHLIGHT]
* NEW: Use alternate background when highlighting scripts and styles inside
  an HTML document.

[GB.FORM]
* BUG: IconView.Find() has been renamed as IconView.FindAt(), to avoid the
  conflict with the inherited UserControl.Find() method.
* BUG: Fix orientation of "clear" stock icon for KDE4.
* BUG: Setting DirChooser (or FileChooser) Root property correctly updates
  the bookmark button.
* BUG: DirChooser (or FileChooser) parent directory button is drawn
  correctly with gb.gtk now.
* BUG: DirView now correctly ignores errors raised during the Icon event.
* BUG: FileView now correctly ignores errors raised during the Icon event.
* BUG: Fix mouse events handling in MenuButton controls whose MenuOnly
  property is TRUE.
* NEW: Some updates in stock icons maps.
* NEW: MenuButton.MenuOnly is a new property that makes the MenuButton only
  pop up its menu, and never raise its Click event.

[GB.FORM.MDI]
* BUG: Workspace.Children has been renamed as Workspace.Windows, because
  the Workspace.Children property was in conflict with the inherited
  Container.Children property.

[GB.FORM.STOCK]
* BUG: Add two missing SVG files for stock icons.
* BUG: Add a missing svg stock icon for "bookmark".
* NEW: Update icons.

[GB.GTK]
* BUG: Fix Picture.Fill() method with GTK+ >= 2.24.
* BUG: Remove window resize grips with GTK+ >= 2.24.
* BUG: Remove resize grip for GTK+ >= 3.0 too.
* BUG: Make gb.gtk compile with GTK+ < 2.24.
* BUG: Use gtk_window_set_resize_grip only with GTK+ >= 2.24.4.
* BUG: GridView.RowAt() and GridView.ColumnAt() now take the headers into
  account.
* BUG: TrayIcon comes back as a virtual control.
* NEW: ListView, TreeView and ColumnView Find() method has been renamed as
  'FindAt' to match the IconView class.
* NEW: Control.Refresh() now takes no argument.
* NEW: DrawingArea.Refresh() keeps taking four optional arguments
  describing the sub-rectangle to refresh.
* OPT: Optimizations in the Action property management.

[GB.IMAGE]
* NEW: Color.SetRGB() and Color.SetHSV() are two new methods that takes a
  color as an integer, modifies one of its component, and returns it. They
  are faster than using the ColorInfo class.
* NEW: Color.GetAlpha() returns the alpha component of a color from its
  integer value.
* NEW: Color.Gradient() is a new method that creates an intermediate color
  between two others colors by using a RGB gradient.

[GB.OPENGL]
* BUG: Rename Gl.BITMAP as Gl.BITMAP_, because there is a Gl.Bitmap()
  function.

[GB.OPENGL.GLU]
* BUG: Fix Makefile.am file.

[GB.PDF]
* BUG: Fix compilation of gb.pdf.

[GB.QT4]
* BUG: Changing the number of columns or rows in a GridView will raise
  Select and Change events only if there is a current row.
* BUG: Moving a modal form during the Open event handler now prevents the
  form to be centered, as with gb.gtk.
* BUG: Remove a debugging message.
* BUG: TrayIcon comes back as a virtual control.
* NEW: ListView, TreeView and ColumnView Find() method has been renamed as
  'FindAt' to match the IconView class.
* NEW: Control.Refresh() now takes no argument.
* NEW: DrawingArea.Refresh() keeps taking four optional arguments
  describing the sub-rectangle to refresh.
* OPT: Optimizations in the Action property management.

[GB.QT4.EXT]
* BUG: When the Change event is raised while setting the Editor.Text
  property, the ReadOnly property now returns the correct value.
* BUG: Editor: Some fixes in procedure separation drawing.
* NEW: Some little changes in the way Editor paint background of lines.
* NEW: In Editor, draw procedure separation on the previous line if it is
  empty. Otherwise draw it on the current line.

[GB.QT4.WEBKIT]
* BUG: Correctly export the virtual class of the WebSettings.Proxy
  property.
* BUG: The default user agent is returned when no specific user agent has
  been set.
* BUG: Raise the Error event later, so that setting the URL property during
  its event handler works correctly.
* NEW: WebSettings.Proxy is a new virtual object that defines the proxy
  used for all requests.
* NEW: Remove WebView.Cached property, and add a WebSettings.Cache.Enabled
  property to replace it globally.
* NEW: Replace WebView.Font[] by many WebView.Fonts.xxx properties.
* NEW: Add other WebView.Fonts.xxx properties to define default font sizes.
* NEW: WebView.Eval() and WebFrame.Eval() are two new methods that can run
  any piece of JavaScript in the context of a frame.
* NEW: WebView.UserAgent is a new property to define a custom user agent
  string for a specific WebView control.

[GB.REPORT]
* BUG: Fix incorrect inheritances.
* BUG: The top padding/border and bottom are correctly taken into account
  when computing autoresize.
* BUG: Now the text is clipped.
* BUG: %any arrangement bugs fixed.
* BUG: Fix some bad method overrides.
* BUG: Fix a typo mistake in ReportVBox class.
* NEW: The Ignore property is now available. It allow to place an object
  anywhere relative to its parent container.
* NEW: The auto filling system is back, and is near to work perfectly.
* NEW: The report label have now a key property.

[GB.SDL.SOUND]
* BUG: Do not stop watching a file descriptor if it is not watched at
  component exit.

[GB.WEB]
* NEW: Response.SetCookie() has a new optional argument to set if the
  cookie is "HttpOnly".
* NEW: Session cookies are now automatically "HttpOnly".

Nécéssités

Pour compiler Gambas, vous devez installer sur votre système les bibliothèques suivantes :

Composant Nécessite
Compilation gcc g++ automake autoconf libtool > 2.0
Interpreteur libffi
gb.compress.bzlib2 libbz2.so
gb.compress.zlib libz.so
gb.cairo cairo
gb.crypt libcrypt.so
gb.db.mysql libmysqlclient.so, libz.so
gb.db.odbc libodbc.so
gb.db.postgresql libpq.so
gb.db.sqlite2 libsqlite.so
gb.db.sqlite3 libsqlite3.so
gb.desktop libXtst.so
gb.gtk Toutes les bibliothèques GTK+ >= 2.10 librsvg2.so cairo
gb.image.io gdk-pixbuf
gb.image.imlib imlib
gb.net.curl libcurl.so
gb.opengl gb.opengl.glsl libGL.so, libGLEW.so
gb.opengl.glu libGLU.so
gb.pcre libpcre.so
gb.pdf libpoppler.so
gb.qt4 gb.qt4.ext gb.qt4.opengl gb.qt4.webkit Toutes les bibliothèques qt 4 >= Qt 4.5
gb.sdl libSDL.so, libSDL_ttf.so, libGL.so, libGLEW.so
gb.sdl.sound libSDL.so, libSDL_mixer.so
gb.v4l libjpeg.so, libpng.so,Video4Linux >= 2.0
gb.xml libxml-2.0
gb.xml.xslt libxslt

Et n’oubliez pas d’installer tous les paquets de développement relatifs!

Essayez de toujours utiliser une version récente de ces bibliothèques.

Pour compiler l’environnement de développement, vous devez compiler les composants suivants : Vous devez posséder les droits en écriture sur /tmp, sinon Gambas ne fonctionnera pas.

Ce paquet a été réalisé avec les versions suivantes des outils GNU sur Ubuntu 10.10:
  • automake 1.11.1

  • autoconf 2.67

  • libtool 2.2.6b

Compilation & Installation

Vérifier l’installation

Tout d’abord, assurez vous que vous avez installé toutes les bibliothèques nécessaires, et tout spécialement, tous les paquets de développement.

N’oubliez pas de consulter la page Compilation et installation. Vous y trouverez peut être des informations spécifiques à votre distribution.

Configuration du paquet Source

Quand vous serez certains que tout est installé, entrez dans une console les phrases magiques suivantes.

'$' represente votre invite de shell, et '...' les messages affichés pendant la configuration et la compilation.

Tapez d’abord ceci pour créer les scripts de configuration.

$ ./reconf-all

Puis cela pour analyser le système en cours et configurer le paquetage :

$ ./configure -C
...

Si une bibliothèque ou un paquet fait défaut, vous serez alors avertis que quelques composants sont désactivés.

Il y a des explications complémentaires spécifiques à 'configure' dans le fichier INSTALL situé au sommet de l’arborescence du code source. Je vous invite à les lire.

Compilation

Si tout est configuré sans erreur, lancez alors cette commande pour compiler le programme :

$ make
...

Installation

Si tout se compile sans erreur, lancez enfin cette commande pour tout installer :

Vous devez être root (administrateur) pour installer Gambas sur votre système.

$ su -c "make install"
Password: <Entrez ici le mot de passe root>
...

ou

$ sudo make install
Password: <Entrez ici votre mot de passe>
...

Dépannage

Si vous faites plusieurs compilations successives, après avoir mis à jour les sources à partir du dépôt Subversion par exemple, et si quelque chose échoue pendant tout ce processus, vous pouvez tenter de "reconfigurer" les scripts de configuration en entrant la commande suivante :

$ ./reconf-all

Puis vous pouvez exécuter à nouveau ./configure -C

Si ça ne fonctionne pas, il me faut savoir exactement ce qui est arrivé. Pour cela, tapez la commande suivante :

$ ( ./configure -C; make; make install ) > output.txt 2>&1

Et transmettez moi le fichier "output.txt" par mail, ainsi que tout autre détail qui vous paraît utile concernant votre machine et votre distribution.

Faire tourner Gambas

Si tout s’est bien passé, tapez "gambas3" pour lancer l’ environnement de développement.

Profitez en!

Voir aussi