Visual Basic 6: como usar 1 type definido como argumento numa função, numa classe?

Cambalinho

Power Member
Como usar 1 type definido como argumento numa função, numa classe?
Código:
Public Sub DrawImageTrapezoid(ByRef Points As POINTL, ByVal DestinationHDC As Long, ByVal TranspColor As Long)
eu tenho 1 erro de compilação por usar 1 tipo definido(UDT) por mim :(
 
Confesso que já me lembro de muito pouco de Visual Basic 6. No entanto, se me permites a pergunta: em que contexto é que ainda é necessário escrever código VB6 em 2020? Só me ocorre mesmo a manutenção de código antigo que por algum motivo não pode ser reescrito, e mesmo aí acho que é mais cost-effective procurar migrar funcionalidades para VB.NET através de .DLLs ou assim.

Quanto à tua pergunta, para fazer ideia do que se passa, preciso que me dês mais informação, em particular como é que estás a tentar usar esse tipo, como é que ele constituído, e que erro dá.
 
veja esta classe:
Código:
Option Explicit

Private Type Position
    X As Long
    Y As Long
End Type

Dim s As Position
Public Sub GetPosition(ByVal GetPos As Position)
    s = GetPos
End Sub
"Compiler error: Private enum and user defined types can't be used as a parameters or return types for a public procedures, for public data members or fields of user type defined"
e tem razão: se eu usar 1 versão mais recente, eu evitava muitos problemas mesmo
 
consegui evitar esse erro, mas de 2 formas:
1 - na classe declarei mas em privado;
2 - num módulo declarei mas em publico.
sim tive que declarar 2 vezes a mesma estrutura ;)
 
Acho que o erro já dizia tudo. tens uma função pública que recebe como argumento um tipo privado. Como é que é suposto alguém usar essa função se não consegue usar o tipo que ela recebe?
Ou a função tem de ser privada, ou o tipo tem de ser público.
Não deves ter de declarar a mesma estrutura duas vezes, certo? Basta o tipo ser público, que a função tanto pode ser pública como privada.
 
ainda estou confuso a usar... mas posso ter resolvido o problema ;)
sim declaro 'public' no módulo e a função que o usar tem de ser 'friend'.
muito obrigado e já consegui resolver o problema actual dos arrays(o topico que fiz há pouco)
 
Back
Topo