Portando Gambas 2 para Gambas 3

Esta tabela tenta fazer um inventário de todas as mudanças incompatíveis entre Gambas 2 e Gambas 3.

Quando o conversor do IDE faz uma conversão automática no projeto, ele insere um comentário começando com a string [GB2:XXXX], onde XXXX é o identificador assistente de quatro letras descrevendo que ocorreu a conversão.

Identificador assistente Sintoma Detalhes Gambas 2 & rarr; Gambas 3
ARRD "Erro de sintaxe" na declaração da matriz Ao declarar uma matriz dimensionada agora você tem que usar a palavra-chave NEW.
DIM sCommand AS String[5]

Dim sCommand As New String[5]
BCOL Erro "Símbolo desconhecido 'BackColor'..." A propriedade BackColor na classe Control foi removido. Use Background em vez disso.
MyLabel.BackColor = Color.Background

MyLabel.Background = Color.Background
BIND Erro "Excesso de argumentos" com UdpSocket.Bind() O método UdpSocket.Bind() não pode ter mais argumento como Porta.

Em vez disso use a propriedade Port.

hBroadcastEvent.Bind(0)

hBroadcastEvent.Port = 0
hBroadcastEvent.Bind()
CLNG Erro "Identificador desconhecido 'CLng'" A função sinónimo CLng() foi removida.

Use CLong() em vez disso.
CLng(...)

CLong(...)
CSNG Erro "Identificador desconhecido 'CSng'" A função sinónimo CSng() foi removida.

Use CSingle() em vez disso..
CSng(...)

CSingle(...)
CFLT Erro "Identificador desconhecido 'CFlt'" A função sinónimo CFlt() foi removida.

Use CFloat() em vez disso..
CFlt(...)

CFloat(...)
DBGV Erro "Símbolo desconhecido 'GridView' na classe 'DataBrowser'" A propriedade gridview do controle DataBrowser foi renomeado como View.
DataBrowserLog.GridView

DataBrowserLog.View
DMRG "DrawingArea.Merge está obsoleta" mensagem de aviso A DrawingArea.Merge não faz mais nada. Você pode removê-la.
MyDrawingArea.Merge = TRUE

' Nothing
DSUB Erro SQL com métodos de banco de dados Argumentos do DB.Exec() e DB.Subst() acima de nove agora deve ser fechado com {}.
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 Erro "Símbolo desconhecido 'ForeColor'... A propriedade ForeColor na classe Control foi removida. Use Foreground em vez disso.
MyLabel.ForeColor = Color.Red

MyLabel.Foreground = Color.Red
FNTH Erro "Não é um objeto ao usar Font.Height Font.Height é agora uma propriedade. O método antigo Font.Height () foi renomeado Font.TextHeight().
Font.Height("text")

Font.TextHeight("text")
FNTW Erro "Símbolo desconhecido 'Width'" durante a utilização de Font.Width O método Font.Width () foi renomeado para Font.TextWidth().
Font.Width("text")

Font.TextWidth("text")
FRMT Espaços inesperados impressos com Format$ Em Gambas 3, caracteres de formatação não utilizados na função Format() são substituídos por espaços, considerando que eles eram ignorados no Gambas 2.

Basta usar caracteres de formatação a menos. Caracteres excedentes serão impresso de qualquer forma.
Format(Number, "####")

Format(Number, "#")
IMGS Erro "Excesso de argumentos" com o método Image.Stretch() O método Image.Stretch() não tem mais seu terceiro argumento. Remova-o.
MyImage = MyImage.Stretch(64, 64, TRUE)

MyImage = MyImage.Stretch(64, 64)
INCB "Boolean incrementação está obsoleta mensagem de aviso" INC Boolean ou DEC Boolean já não é permitido. Use Boolean = Not Boolean em vez disso..
INC Boolean
DEC Boolean

Boolean = Not Boolean
ISTY Erro "Tipo incompatível" quando se utiliza IsBoolean(), IsString(), ou alguma função Is<Type>() A função Is<Type>() foram completamente redesenhado em Gambas 3. Em vez de verificar o tipo de dados de uma expressão, eles agora verificar se uma string pode ser convertido com segurança para um tipo de dados específico com a função Val().

Use TypeOf() para fazer o check em vez disso.
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 Erro "Inesperado OPEN" com a instrução OPEN A sintaxe da instrução OPEN mudou.
OPEN sBaseDir &/ "logs" &/ sMainLogFile FOR APPEND AS #hMainLogFile

hMainLogFile = Open sBaseDir &/ "logs" &/ sMainLogFile For Append
OVER Erro "/Class/.*Symbol* é mal substituído em *OutraClass*/" Quando você reimplementa um símbolo em uma classe herdada, Gambas 3 agora verifica se a declaração do símbolo na classe filha é compatível com a da classe pai.

Corrija a declaração símbolo na classe filha, ou utilize outro nome para esse símbolo.
' Dentro de um formulário
Private Delete As Button

' Inside a form
Private btnDelete As Button
PPRO Erro "Faltando AS" em uma declaração de propriedade, utilizando a palavra-chave PUBLIC. A palavra-chave PUBLIC não é mais permitido em definições de propriedade. Propriedade são sempre públicas.
PUBLIC PROPERTY LineColor AS Integer

Property LineColor As Integer
QUES Erro "Identificador Desconhecido'xxxx?'" Todas as funções de teste que terminam com um ponto de interrogação foram removidos.

Use a função sinônimas começando com "Is" em vez disso.
Dir?(...)
Null?(...)
Integer?(...)
...

IsDir(...)
IsNull(...)
IsInteger(...)
...
QUOT Erro "Identificador desconhecido 'Quote'" As classes quote e Unquote foram removidas.

Replace Quote.Shell by Shell$().
Quote.Shell("...")

Shell$("...")
SLAY "Incompatibilidade de tipo. Integer inesperado" erro com a propriedade Splitter.Layout** A propriedade Splitter.Layout agora recebe um array de inteiros em vez de uma string de valores separados por vírgulas.
MySplitter.Layout = "500,500"

MySplitter.Layout = [500, 500]
TEXT "gb.Text está obsoleto" mensagem de aviso gb.Text está obsoleto e foi substituído por gb.IgnoreCase.
gb.Text

gb.IgnoreCase

*Esta incompatibilidade não é feita automaticamente pelo assistente de importação do IDE.