PROPRIEDADE OCX

EPISCOPAL 15/03/2010 00:07:04
#336956
Estou precisando de uma propriedade que mostre todas as impressoras instaladas em um OCX


Public Property Get Impressora() As Long
listaImpressora
End Property

Public Property Let Impressora(New_Val As rImpressora)
m_Impressora = New_Val
End Property

Será q é possivel isso, ou vou ter que exibir um form contendo as impressoras listadas????
MARCIO.TEIXEIRA 15/03/2010 11:49:40
#336989
Resposta escolhida
Vê se isso ajuda:

Private Sub Command1_Click()
Dim objWMIService As Object
Dim colInstalledPrinters As Object
strComputer = [Ô].[Ô]
Set objWMIService = GetObject([Ô]winmgmts:\\[Ô] & strComputer & [Ô]oot\cimv2[Ô])
Set colInstalledPrinters = objWMIService.ExecQuery([Ô]Select * from Win32_Printer[Ô])
For Each objPrinter In colInstalledPrinters
MsgBox objPrinter.Name
Next
End Sub
EPISCOPAL 15/03/2010 17:18:52
#337035
muito bommmmmmm mesmo

so que eu queria apresentar em uma propriedade de ocx em construção >>>>> na janela de propriedades do visual basic .... !!!
MARCIO.TEIXEIRA 16/03/2010 10:18:29
#337067
Só para entender ?

Precisa ficar na janela do VB? vc quer selecionar a impressora no momento que você tá desenvolvendo? Porquê ?

Essa propriedade pode ser vista somente dentro do código ?
EPISCOPAL 16/03/2010 17:53:14
#337112
Marcio tive uma ideiaaaa

no momento que o compontente e carregado (usercontrol_initialize) posso carregar as impressoras dentro desta propriedade

ex:
HP 120 = 1
HP 360C = 2
Epson 315 = 4


Citação:

AGORA EIS A QUESTÃO !!!!! TEM COMO CRIAR VALORES DE UMA PROPRIEDADE EM TEMPO DE EXECUÇÃO??????



NA HORA DE CARREGAR O CONTROLE .... ELE FAZ UMA BUSCA NO WINDOWS PRA VER QTAS IMPRESORAR TEM INSTALADAS, AI ELA COLOCA O NOME DELAS NA PROPRIEDADE DO CONTROLE .......
MARCIO.TEIXEIRA 16/03/2010 18:22:27
#337115
Vê se isso ajuda:

O projeto abaixo é uma OCX e o objeto cboImpr é um ComboBox que você irá adicionar no seu UserControl

Para pegar o valor da combo no seu EXE deverá utilizar Usercontrol.objeto.ComboImpressoas.text


Option Explicit

Const m_def_ConstanteImpr = [Ô][Ô]

Private strNomeImpr As String
Private myListing() As String

Private Sub UserControl_InitProperties()

Dim objWMIService As Object
Dim colInstalledPrinters As Object
Dim objPrinter As Object
Dim strComputer As String
Dim strRet As String
Dim intCont As Integer
strComputer = [Ô].[Ô]
Set objWMIService = GetObject([Ô]winmgmts:\\[Ô] & strComputer & [Ô]oot\cimv2[Ô])
Set colInstalledPrinters = objWMIService.ExecQuery([Ô]Select * from Win32_Printer[Ô])
strRet = [Ô][Ô]
intCont = 1
For Each objPrinter In colInstalledPrinters
ReDim Preserve myListing(intCont) As String
myListing(intCont) = objPrinter.Name
intCont = intCont + 1
Next
strNomeImpr = [Ô][Ô]
End Sub

Property Get ComboImpressoras() As Object
Set ComboImpressoras = cboImpr
End Property

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Dim intCont As Integer
With PropBag
UserControl.BorderStyle = PropBag.ReadProperty([Ô]BorderStyle[Ô], 0)
myListing() = Split(PropBag.ReadProperty([Ô]Impressoras[Ô], [Ô][Ô]), Chr$(8))
For intCont = 1 To UBound(myListing)
cboImpr.AddItem myListing(intCont)
Next intCont
cboImpr.ListIndex = -1
End With
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
On Error Resume Next
With PropBag
.WriteProperty [Ô]Impressoras[Ô], Join(myListing(), Chr$(8)), [Ô][Ô]
End With
End Sub
EPISCOPAL 17/03/2010 00:03:04
#337134
ixeee ta dificil ...


nao é melhor fazer um exemplo em anexoooo
MARCIO.TEIXEIRA 17/03/2010 08:42:35
#337146
passa seu email que eu mando o exemplo pois aqui no serviço não consigo enviar arquivo pra net
EPISCOPAL 17/03/2010 15:54:03
#337196
Marciooooo


de um click em cima do mey nick (WORLFFIRE) ...... Q LÁ VAI TA O MEU EMAIL ...... OK


VALEUUUUU
EPISCOPAL 17/03/2010 18:05:16
#337231
Valeu marcio pelo código ........


mas eu queria que ele aparecesse na janela de propriedade !!!!!



...... conforme o desenho

WEBMASTER 17/03/2010 22:22:21
#337248
Veja o anexo.
Fazer como propertie sendo listada esquece...nao vai dar.
Mas voce pode contornar isso facilmente, veja o exemplo
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas