PROPRIEDADE LET
olá ............ eu de novo
estou desenvolvendo uma ocx e estou com problema com uma propriedade:
[txt-color=#e80000]Public Type edParagraphIndent
FirstIndent As Long
LeftIndent As Long
RightIndent As Long
End Type[/txt-color]
[txt-color=#0000f0]Public Property Get SelectionIndent() As edParagraphIndent[/txt-color]
[txt-color=#007100]Dim tP As PARAFORMAT2
Dim lR As Long
tP.dwMask = PFM_STARTINDENT Or PFM_RIGHTINDENT Or PFM_OFFSET
tP.cbSize = Len(tP)
lR = SendMessage(rtfTexto.hwnd, EM_GETPARAFORMAT, 0, tP)
SelectionIndent.FirstIndent = tP.dxStartIndent
SelectionIndent.RightIndent = tP.dxRightIndent
Select Case tP.dxStartIndent
Case Is < 0
SelectionIndent.LeftIndent = tP.dxStartIndent + tP.dxOffset
Case Is = 0
SelectionIndent.LeftIndent = tP.dxStartIndent
Case Is > 0
SelectionIndent.LeftIndent = tP.dxOffset
End Select[/txt-color]
[txt-color=#0000f0]End Property[/txt-color]
[txt-color=#0000f0]Public Property Let SelectionIndent(New_SelectionIndent As edParagraphIndent)[/txt-color]
[txt-color=#007100]Dim tP As PARAFORMAT2
Dim lR As Long
tP.dwMask = PFM_STARTINDENT Or PFM_RIGHTINDENT Or PFM_OFFSET
tP.dxStartIndent = New_SelectionIndent.FirstIndent
tP.dxOffset = -New_SelectionIndent.FirstIndent + New_SelectionIndent.LeftIndent
tP.dxRightIndent = New_SelectionIndent.RightIndent
tP.cbSize = Len(tP)
lR = SendMessage(rtfTexto.hwnd, EM_SETPARAFORMAT, 0, tP)[/txt-color]
[txt-color=#0000f0]End Property[/txt-color]
Na propriedade Get ela funciona muito bem ....... mas qdo vou colocar valores ela simplismente nao funciona, da erro.
Eu chamo ela assim
A = MeuControl.SelectionIndent.FirstInden <funciona>
pra colocar valores
MeuControl.SelectionIndent.FirstIndent = 1000 <nao funiona>
Qual é a maneira correta de colocar valores???????????
estou desenvolvendo uma ocx e estou com problema com uma propriedade:
[txt-color=#e80000]Public Type edParagraphIndent
FirstIndent As Long
LeftIndent As Long
RightIndent As Long
End Type[/txt-color]
[txt-color=#0000f0]Public Property Get SelectionIndent() As edParagraphIndent[/txt-color]
[txt-color=#007100]Dim tP As PARAFORMAT2
Dim lR As Long
tP.dwMask = PFM_STARTINDENT Or PFM_RIGHTINDENT Or PFM_OFFSET
tP.cbSize = Len(tP)
lR = SendMessage(rtfTexto.hwnd, EM_GETPARAFORMAT, 0, tP)
SelectionIndent.FirstIndent = tP.dxStartIndent
SelectionIndent.RightIndent = tP.dxRightIndent
Select Case tP.dxStartIndent
Case Is < 0
SelectionIndent.LeftIndent = tP.dxStartIndent + tP.dxOffset
Case Is = 0
SelectionIndent.LeftIndent = tP.dxStartIndent
Case Is > 0
SelectionIndent.LeftIndent = tP.dxOffset
End Select[/txt-color]
[txt-color=#0000f0]End Property[/txt-color]
[txt-color=#0000f0]Public Property Let SelectionIndent(New_SelectionIndent As edParagraphIndent)[/txt-color]
[txt-color=#007100]Dim tP As PARAFORMAT2
Dim lR As Long
tP.dwMask = PFM_STARTINDENT Or PFM_RIGHTINDENT Or PFM_OFFSET
tP.dxStartIndent = New_SelectionIndent.FirstIndent
tP.dxOffset = -New_SelectionIndent.FirstIndent + New_SelectionIndent.LeftIndent
tP.dxRightIndent = New_SelectionIndent.RightIndent
tP.cbSize = Len(tP)
lR = SendMessage(rtfTexto.hwnd, EM_SETPARAFORMAT, 0, tP)[/txt-color]
[txt-color=#0000f0]End Property[/txt-color]
Na propriedade Get ela funciona muito bem ....... mas qdo vou colocar valores ela simplismente nao funciona, da erro.
Eu chamo ela assim
A = MeuControl.SelectionIndent.FirstInden <funciona>
pra colocar valores
MeuControl.SelectionIndent.FirstIndent = 1000 <nao funiona>
Qual é a maneira correta de colocar valores???????????
Não teria que alterar o PARÂMETRO passado na função Let para LONG?
Qualquer coisa posta o erro aà pra poder analisar melhor...
[ô]Alterar disso:
Public Property Let SelectionIndent(New_SelectionIndent As edParagraphIndent)
[ô]Para isso:
Public Property Let SelectionIndent(New_SelectionIndent As Long)
Qualquer coisa posta o erro aà pra poder analisar melhor...
Citação:As definições de procedimentos de propriedade para a mesma propriedade são inconcistente ou procedimento de propriedade possui um paramentro opcional, um ParamArray ou um sinal set final
Deus este erro ai ........... de edparagraph para Long da erro mesmoooooo
Olá Wolffire.
Aconselho vc a trocar em vez de :
Public Property Let SelectionIndent(New_SelectionIndent As Long)
Para :
Public Property Let SelectionIndent(New_SelectionIndent As Currency)
Caso vc deseje que o campo/variavel comporte um maior tamanho possivel
Aconselho vc a trocar em vez de :
Public Property Let SelectionIndent(New_SelectionIndent As Long)
Para :
Public Property Let SelectionIndent(New_SelectionIndent As Currency)
Caso vc deseje que o campo/variavel comporte um maior tamanho possivel
O problema meu e o seguinte
Qdo a gente usa a propriedade Font tem varias opções
Ex:
Font.Name
Font.Size
Font.Bold
Font.Italic
no meu exemplo acima qdo chama a propriedade da certo
A = SelectionIndent.Left
B = SelectionIndent.Right
Mas Qdo inverto q nao da certo
Ex
Font.Italic = true
Font.Name = [Ô]Terminal[Ô]
e assim vai ................................. e isso que eu quero
Qdo a gente usa a propriedade Font tem varias opções
Ex:
Font.Name
Font.Size
Font.Bold
Font.Italic
no meu exemplo acima qdo chama a propriedade da certo
A = SelectionIndent.Left
B = SelectionIndent.Right
Mas Qdo inverto q nao da certo
Ex
Font.Italic = true
Font.Name = [Ô]Terminal[Ô]
e assim vai ................................. e isso que eu quero
Cara, acho que sem uma property page, isso não é possÃvel
Ja tinha ate desconfiado que nao tem jeito ............ eu tava ate querendo implementar uma classe com varias propriedade .... depois colocar um Set em referencia
o que é property page?????
Citação:Cara, acho que sem uma property page, isso não é possÃvel
o que é property page?????
Você quer colocar uma classe como propriedade? Isso é possÃvel!
como é que eu processo
Dim classeProp as New clsProp
public property Set SelectionIndent (New_SelectionIndent as classeProp)
?????????
end property
e como é que eu vou fazer????? para o usuario entrar com
SelectionIndent.Left = 500
SelectionIndent.Right = 1000
??????????? como é o coidog de recepção??
flw ....
Dim classeProp as New clsProp
public property Set SelectionIndent (New_SelectionIndent as classeProp)
?????????
end property
e como é que eu vou fazer????? para o usuario entrar com
SelectionIndent.Left = 500
SelectionIndent.Right = 1000
??????????? como é o coidog de recepção??
flw ....
Ai você não cria uma propriedade TYPE mas sim duas propriedades dentro de uma classe.
Olhe o exemplo em anexo.
Tentei fazer bem simples, mas qualquer coisa, pode pedir.
Olhe o exemplo em anexo.
Tentei fazer bem simples, mas qualquer coisa, pode pedir.
Colega na realidade acho que a propriedade não está correta, faz o seguinte poste como vc esta fazendo em UserControl_ReadProperties e UserControl_WriteProperties
Tópico encerrado , respostas não são mais permitidas