Primeiro vamos verificar se o
Excel está visível ou se está correndo em segundo plano.
Na classe wxAutomationExcel
em public digitamos a declaração da função.
bool GetVisible();
no arquivo mexcel.cpp sua
contrução.
bool
wxAutomationExcel::GetVisible()
{
if(this == NULL)
return false;
wxVariant m_show = this->GetProperty(wxT("Visible"));
return m_show.GetBool();
}
No código acima, vemos o uso
do método GetProperty, passamos para o mesmo o nome da propriedade que queremos
pegar o valor e passamos esse para um wxVariant, veja que antes verifico se
wxAutomationExcel é nulo, se o Excel estiver visível nossa função retornará
verdadeiro, caso contrário, falso...
Agora, vamos alterar essa
propriedade, escondendo ou exibindo a instância do Excel que estiver setada em
nosso wxAutomationExcel.
Na classe wxAutomationExcel
em public digitamos a declaração da função.
bool SetVisible(bool visible);
no arquivo mexcel.cpp sua
contrução.
bool
wxAutomationExcel::SetVisible(bool visible)
{
if(this == NULL)
return false;
if(!this->PutProperty(wxT("Visible"), visible))
{
wxLogError(wxT("Excel não pode ser exibido"));
return false;
}
return true;
}
Nessa função utilizamos o
método PutProperty, esse método é utilizado para pegarmos alguma propriedade do
objeto setado em nossa classe, passamos primeiro o nome da propriedade e depois
o valor que queremos dar para ela, no caso da propriedade Visible passamos um
valor booleano.
Vale lembrar que essa classe
está trabalhando apenas com o Excel.Application, então todos os métodos e
propriedades passados como parâmetros servem apenas para a aplicação em si.
Para testarmos as duas
funções apresentadas nesse tutorial:
wxAutomationExcel m_excel;
if(!m_excel.GetExcelInstance())
return;
//ou
//if(!m_excel.CreateExcelInstance())
// return;
//Vejo se o
Excel está visível...
if(m_excel.GetVisible())//...se sim...
m_excel.SetVisible(false);//...escondo...
else//...se não...
m_excel.SetVisible(true);//...exibo
o mesmo...
No próximo tutorial iremos
iniciar com Workbooks, até.
2 comentários:
Oi amigo parabens pelo seu blog. Me tira uma duvida por favor ?
É o seguinte : se eu fizer um programinha em WxWidgets no C/C++ , ele rodaria "nativamente" , ou seja, o arquivo ".exe" gerado seria o suficiente para rodar meu aplicativo ?
Ou seria necessário instalar algo nos computadores que fossem rodar o aplicativo ?
Seria preciso instalar nos clientes coisas como uma API, um plugin ou um framework ?
Agradeço qualquer ajuda.
Alex
Alex, depende de como seu wxWidgets está compilado e como você linca ele ao seu projeto, se você estiver usando o wxWidgets como uma biblioteca estática apenas o *.exe é suficiente, se ele estiver sendo lincado como biblioteca dinâmica, você precisa distribuir as dll's do wxWidgets.
Postar um comentário