PROPRIEDADE OCX
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????
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????
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
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
muito bommmmmmm mesmo
so que eu queria apresentar em uma propriedade de ocx em construção >>>>> na janela de propriedades do visual basic .... !!!
so que eu queria apresentar em uma propriedade de ocx em construção >>>>> na janela de propriedades do visual basic .... !!!
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 ?
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 ?
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
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 .......
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 .......
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
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
ixeee ta dificil ...
nao é melhor fazer um exemplo em anexoooo
nao é melhor fazer um exemplo em anexoooo
passa seu email que eu mando o exemplo pois aqui no serviço não consigo enviar arquivo pra net
Marciooooo
de um click em cima do mey nick (WORLFFIRE) ...... Q LÃ VAI TA O MEU EMAIL ...... OK
VALEUUUUU
de um click em cima do mey nick (WORLFFIRE) ...... Q LÃ VAI TA O MEU EMAIL ...... OK
VALEUUUUU
Valeu marcio pelo código ........
mas eu queria que ele aparecesse na janela de propriedade !!!!!
...... conforme o desenho
mas eu queria que ele aparecesse na janela de propriedade !!!!!
...... conforme o desenho
Veja o anexo.
Fazer como propertie sendo listada esquece...nao vai dar.
Mas voce pode contornar isso facilmente, veja o exemplo
Fazer como propertie sendo listada esquece...nao vai dar.
Mas voce pode contornar isso facilmente, veja o exemplo
Tópico encerrado , respostas não são mais permitidas