PROPRIEDADE LET

EPISCOPAL 02/04/2010 19:12:34
#338437
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???????????
ANDRE.ADMVB 02/04/2010 20:10:29
#338443
Não teria que alterar o PARÂMETRO passado na função Let para LONG?

[ô]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...
EPISCOPAL 02/04/2010 20:34:11
#338446
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
PROGRAMADORVB6 04/04/2010 03:30:19
#338509
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
EPISCOPAL 04/04/2010 19:50:42
#338532
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
ASHKATCHUP 05/04/2010 13:42:18
#338582
Cara, acho que sem uma property page, isso não é possível
EPISCOPAL 05/04/2010 16:22:32
#338605
Ja tinha ate desconfiado que nao tem jeito ............ eu tava ate querendo implementar uma classe com varias propriedade .... depois colocar um Set em referencia


Citação:

Cara, acho que sem uma property page, isso não é possível




o que é property page?????
ASHKATCHUP 05/04/2010 17:23:05
#338617
Você quer colocar uma classe como propriedade? Isso é possível!
EPISCOPAL 05/04/2010 18:03:47
#338624
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 ....
ASHKATCHUP 06/04/2010 09:15:02
#338660
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.
MARCELO.TREZE 06/04/2010 10:13:47
#338665
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

Página 1 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas