Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
depois que criar esta aplicação num ficheiro executável, criar uma distribuição com o Assistente de configuração ou InstallShield Express para o Visual FoxPro Edition e instalar a aplicação noutros computadores, quando tenta executar código semelhante ao código anterior recebe um erro semelhante ao seguinte:
Program Error
OLE error code 0x80040112: Appropriate license for this class not found.
Uma distribuição criada com o Assistente de configuração de Visual FoxPro ou InstallShield Express só permite uma licença de tempo de execução, enquanto o método AddObject requer uma licença de estrutura.
Adicione o controlo que pretende utilizar para uma classe que é guardada numa biblioteca de classes Visual ou para uma classe criada com o comando Definir CLASS. Em seguida, adicione uma instância da classe em tempo de execução em vez de adicionar o controlo. Consulte a secção "Mais informação" para obter detalhes.
No Visual FoxPro 7.0 e posteriores consulte o tópico de ficheiro ? AddObject ? ajuda para uma solução nesses produtos.
O exemplo seguinte demonstra a utilizar o comando Definir CLASS para criar um OleControl subclassed e adiciona OleControl subclassed em tempo de execução.
Cole o seguinte código num ficheiro de programa (.prg):
PUBLIC oform1
oform1=CREATEOBJECT("form1")
oform1.Show
READ EVENTS
RETURN
DEFINE CLASS form1 AS form
AutoCenter = .T.
cNextKey = "1_"
Name = "Form1"
Caption = "Treeview Demo Form"
ADD OBJECT cmdExit AS commandbutton WITH ;
Top = 204, ;
Left = 276, ;
Height = 27, ;
Width = 84, ;
Caption = "E\<xit"
ADD OBJECT cmdAddLV AS commandbutton WITH ;
Top = 204, ;
Left = 10, ;
Height = 27, ;
Width = 106, ;
Caption = "Add Listview"
ADD OBJECT cmdAddLVClass AS commandbutton WITH ;
Top = 204, ;
Left = 130, ;
Height = 27, ;
Width = 136, ;
Caption = "Add Listview Subclass"
PROCEDURE Destroy
CLEAR EVENTS
ENDPROC
PROCEDURE cmdExit.Click
thisform.release()
ENDPROC
PROCEDURE cmdAddLV.Click
* The following AddObject causes the error.
Thisform.AddObject('Lv1','olecontrol','mscomctllib.listviewctrl.2')
Thisform.SetLVProps()
ENDPROC
PROCEDURE cmdAddLVClass.Click
* The following code shows the workaround. The class OC1 is
* defined in the last 3 lines of this program.
* Alternanely, you could use an object stored in a Visual Class
* library (.vcx) file.
Thisform.NewObject('LV1','OC1')
Thisform.SetLVProps()
ENDPROC
PROCEDURE SetLVProps
thisform.setall('enabled', .F.,'commandbutton')
WITH thisform.LV1
.visible = .t.
.height = 190
.left = 75
.width = 250
.view = 2
.listitems.add(,,"List Item 1",,)
.listitems.add(,,"List Item 2",,)
ENDWITH
thisform.cmdExit.enabled = .t.
thisform.cmdExit.setfocus()
ENDPROC
ENDDEFINE
DEFINE class OC1 as olecontrol
OleClass = 'mscomctllib.listviewctrl.2'
ENDDEFINE
Adicionar o programa a um projecto e criar o projecto para um executável (exe). Nome lvtest.exe ficheiro.
Crie um directório denominado TestDir e coloque uma cópia do ficheiro executável a partir do passo 2 anterior para o directório.
Execute o Assistente de configuração Visual FoxPro.
Na caixa de diálogo Assistente de configuração, o "Passo 1 localizar ficheiros" é apresentado na caixa de listagem. Na caixa de texto de ficheiros de distribuição seleccione TestDir directório criado no passo 3, clique em seleccionar e, em seguida, clique em Seguinte.
Na caixa de diálogo Assistente de configuração, o "Passo 2 especifica Components" é apresentado na caixa de texto. No grupo de opção componentes de aplicações, seleccione a caixa de verificação "Tempo de execução do Visual FoxPro".
Em seguida, seleccione a caixa de verificação de controlos ActiveX. A adicionar é apresentada caixa de diálogo controlos ActiveX.
Percorra a caixa de listagem "Seleccionar controlos ActiveX para instalar", seleccione "Microsoft ListView Control, versão 6.0", clique no botão Fechar para sair da caixa de diálogo e, em seguida, clique em Seguinte.
No passo "Passo 3 criar disco imagem Directory" do Assistente de configuração de, seleccione ou escreva o nome do directório que pretende utilizar para a criação de imagens de disco e, em seguida, clique em Seguinte.
"Passo 4 especificar opções de configuração", da caixa de diálogo Assistente de configuração, escreva "ListView teste App" na caixa de texto "Legenda de caixa de diálogo programa de configuração" e escreva "Nenhum" na caixa de texto de informações de copyright e clique em Seguinte.
NOTA: Em cada caso, escreva o texto sem as aspas.
No passo do Assistente de configuração do "Passo 5 especificar predefinido destino" diálogo caixa, clique em Seguinte.
Na caixa de texto "Passo 6 alterar ficheiros Settings", no Assistente de configuração caixa de diálogo, seleccione a produto PM caixa de verificação na grelha junto a Lvtest.exe (o nome do ficheiro executável).
Na caixa de diálogo "Item de menu do programa grupo", escreva "ListView teste App" na caixa de texto Descrição e "% s\lvtest.exe" na linha de comando de caixa de texto.
Nota Omita as aspas.
Clique em OK para fechar a caixa de caixa de diálogo programa grupo menu item, clique em Seguinte e, em seguida, clique em Concluir para concluir a executar o Assistente de configuração.
Na caixa de diálogo "Assistente de configuração do disco estatísticas", clique em concluído.
Os ficheiros de distribuição serão num subdirectório do directório listado em "Passo 3 - criar disco imagem Directory". O subdirectório chama disk144. Pode instalar a distribuição que criou, copiando o conteúdo dos directórios disco 1 Disk2, Disk3 e Disk4 para disquetes e, em seguida, execute o programa Setup.exe a partir de disquete primeiro. Também pode ligar ao computador que contém a distribuição através de uma rede para executar o programa de configuração. A instalação deve ser num computador que ainda não tenha Visual FoxPro 6.0 ou Visual Studio 6.0 instalado.
No computador de instalação, a partir da barra de tarefas do Windows, seleccione Iniciar, aponte para programas e, em seguida, aponte para aplicações do Visual FoxPro. Faça clique sobre o item de programa aplicações de teste de ListView.
Quando a aplicação é iniciada, clique no botão Adicionar lista. Ocorre um erro semelhante à que está listado na secção "Sintomas".
Seleccione ' Cancelar ' e repita o passo 16. Desta vez, clique em lista Adicionar subclasse botão e o erro não ocorre.
O exemplo anterior utiliza uma subclasse da classe OleControl chamada OC1. Este subclasse programaticamente é criado com o comando Definir CLASS contido as últimas três linhas de código no exemplo de programa.
Em alternativa, pode criar uma subclasse da classe OleControl com o estruturador visual da classe. Eis os passos para realizar esta tarefa:
Escreva o seguinte na janela de comandos:
CREATE CLASS
Na caixa de diálogo nova classe, escreva um nome de classe. Pode utilizar OC1 seja consistente com o anterior exemplo.
Seleccione OleControl na caixa de lista com base no.
Na caixa de texto guardar em, escreva o nome de um ficheiro .vcx para armazenar a classe ou seleccione um ficheiro .vcx existente depois de premir a elipse botão [...]. Utilize OCTest para os fins deste exemplo.
Clique no botão OK para criar a classe.
Na caixa de diálogo Inserir objecto, seleccione o botão de opção Criar controlo. Na lista Tipo de objecto, seleccione o controlo ActiveX que pretende utilizar. Para ser consistente com o exemplo anterior, seleccione o "Microsoft ListView Control, versão 6.0" e, em seguida, clique em OK. Apresenta a nova classe no Estruturador da classe. Agora pode guardar a classe.
O seguinte código vai adicionar uma instância do objecto em tempo de execução no exemplo anterior:
Thisform.NewObject('LV1','OC1', 'OCTest.vcx')
Tem de ter a certeza que o ficheiro .vcx foi adicionado ao projecto antes de criar o .exe, para que o comando NewObject funcione correctamente.
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 192693
(http://support.microsoft.com/kb/192693/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.