Ce tableau tente d’inventorier tous les changements incompatibles entre
Gambas 2 et Gambas 3.
Quand le convertisseur de projet de l’IDE réalise une conversion automatique, il insère des commentaires commençant par la chaîne [GB2:XXXX]
, où XXXX
est le mémo identifiant de quatre lettres décrivant quelle conversion a été effectuée.
Mémo identificateur
|
Symptôme
|
Détails
|
Gambas 2
|
Gambas 3
|
ARRD
|
"Syntax error" lors de la déclaration de tableaux
|
Lors de la déclaration d’un tableau dimensionné vous devez désormais employer le mot clé NEW.
|
DIM sCommand AS String[5]
|
Dim sCommand As New String[5]
|
BCOL
|
erreur "Unknown symbol 'BackColor'..."
|
La propriété BackColor de la classe Control a été supprimée. Utilisez Background à la place.
|
MyLabel.BackColor = Color.Background
|
MyLabel.Background = Color.Background
|
BIND
|
erreur "Too many arguments" avec UdpSocket.Bind()
|
La Méthode UdpSocket.Bind() ne peux plus prendre d’argument Port.
Utilisez plutôt la propriété Port.
|
|
hBroadcastEvent.Port = 0
hBroadcastEvent.Bind()
|
CLNG
|
erreur "Unknown identifier 'CLng'"
|
La fonction synonyme CLng() a été supprimée.
Utilisez CLong() en remplacement.
|
|
|
CSNG
|
erreur "Unknown identifier 'CSng'"
|
La fonction synonyme CSng() a été supprimée.
Utilisez CSingle() en remplacement.
|
|
|
DBGV
|
erreur "Unknown symbol 'gridview'
dans la classe 'DataBrowser'"
|
La propriété gridview du contrôle DataBrowser a été renommée View.
|
|
|
DMRG
|
message d’alerte "DrawingArea.Merge is deprecated"
|
DrawingArea.Merge ne fait plus rien. Vous ne pouvez pas le supprimer.
|
MyDrawingArea.Merge = TRUE
|
|
DSUB
|
SQL errors with database methods
|
Les arguments de DB.Exec() et DB.Subst() supérieurs à neuf doivent désormais être compris entre {}.
|
MyConnection.Exec("UPDATE devices SET name = &1,_
module = &2, interface = &3, address = &4,_
location = &5, label = &6, label2 = &7,_
label3 = &8, value = &9, officon = &10, onicon = &11")
|
MyConnection.Exec("UPDATE devices SET name = &1,_
module = &2, interface = &3, address = &4,_
location = &5, label = &6, label2 = &7,_
label3 = &8, value = &9, officon = &{10}, onicon = &{11}")
|
FCOL
|
erreur "Unknown symbol 'ForeColor'..."
|
La propriété ForeColor de la classe Control a été supprimée.
Utilisez Foreground à la place.
|
MyLabel.ForeColor = Color.Red
|
MyLabel.Foreground = Color.Red
|
FNTH
|
erreur "Not an objet" lors de l'utilisation de Font.Height
|
Font.Height est maintenant une propriété. L'ancienne méthode Font.Height() a été renommée Font.TextHeight().
|
|
|
FNTW
|
erreur "Unknown symbol 'Width'" lors de l'utilisation de Font.Width
|
La méthode Font.Width() a été renommée Font.TextWidth().
|
|
|
FRMT
|
Unexpected spaces printed with Format$.
|
En Gambas 3, les caractères de formatage inutilisés dans la fonction Format()
sont remplacés par des espaces, alors qu’ils étaient ignorés en Gambas 2.
Utilisez moins de caractères de formatage.
Les chiffres excédentaires seront tout de même imprimés.
|
|
|
IMGS
|
Erreur "Too many arguments" avec la méthode Image.Stretch()
|
La méthode Image.Stretch() ne possède plus de troisième argument. Supprimez le.
|
MyImage = MyImage.Stretch(64, 64, TRUE)
|
MyImage = MyImage.Stretch(64, 64)
|
INCB
|
message d’alerte "Boolean incrementation is deprecated"
|
INC Boolean ou DEC Boolean n’est plus permis. Utilisez plutôt Boolean = Not Boolean .
|
|
|
ISTY
|
Erreur "Type mismatch" à l'utilisation de IsBoolean() , IsString() , or toute fonction Is<Type>()
|
Les fonctions Is<Type>() on été complètement revues en Gambas 3.
Au lieu de vérifier le type de donnée d’une expression,
elles testent maintenant si une chaîne peut être, de manière sûre, convertie
en un type de donnée spécifique avec la fonction Val() .
Utilisez plutôt TypeOf() pour faire la vérification.
|
IF IsBoolean(Value) THEN ...
IF IsByte(Value) THEN ...
IF IsShort(Value) THEN ...
IF IsNumber(Value) THEN ...
...
|
If TypeOf(Value) = gb.Boolean THEN ...
If TypeOf(Value) = gb.Byte THEN ...
If TypeOf(Value) = gb.Short THEN ...
If TypeOf(Value) <= gb.Float THEN ...
...
|
OPEN
|
Erreur "Unexpected OPEN" avec l’instruction OPEN
|
La syntaxe de l’instruction OPEN a changé.
|
OPEN sBaseDir &/ "logs" &/ sMainLogFile FOR APPEND AS #hMainLogFile
|
hMainLogFile = Open sBaseDir &/ "logs" &/ sMainLogFile For Append
|
OVER
|
Erreur "/Class/.*Symbol* is badly overridden in class *OtherClass/"
|
Quand vous ré-implémentez un symbole dans une classe héritée, Gambas 3 vérifie maintenant
que la déclaration du symbole dans la classe fille est compatible avec celle de la classe parent.
Soit vous corrigez la déclaration du symbole dans la classe fille, soit vous utilisez un autre nom pour ce symbole.
|
' Dans un formulaire
Private Delete As [../../comp/gb.qt/button]
|
' Dans un formulaire
Private btnDelete As Button
|
QUES
|
Erreur "Unknown identifier 'xxxx?'"
|
Toutes les fonctions test terminées par un point d'interrogation ont été supprimées.
Utilisez à la place les fonctions synonymes commençant par "Is".
|
Dir?(...)
Null?(...)
Integer?(...)
...
|
IsDir(...)
IsNull(...)
IsInteger(...)
...
|
QUOT
|
Erreur "Unknown identifier 'Quote'"
|
Les classes quote et Unquote ont été supprimées.
Remplacez Quote.Shell par Shell$().
|
|
|
SLAY
|
Erreur "Type mismatch. Integer expected" avec la propriété Splitter.Layout
|
La propriété Splitter.Layout prend maintenant un tableau d'entiers
à la place de la chaîne de valeurs séparées par des virgules.
|
MySplitter.Layout = "500,500"
|
MySplitter.Layout = [500, 500]
|
TEXT
|
message d’alerte "gb.Text is deprecated"
|
gb.Text est obsolète et remplacé par gb.IgnoreCase.
|
|
|
*Cette incompatibilité n'est pas automatiquement gérée par l'assistant d'importation de l'IDE.