 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
_Tugui Invitado
|
Publicado: Dom 23 Mar, 2003 12:53 am Asunto: MsAgent |
|
|
Explorando en busca de curiosidades he topado con un código de Leo para empezar a manejar el MSAgent y me ha resultado interesante, solo que me da un fallo:
"Body has already been defined for function '_fastcall Tform1::~Tform1()'
Utilizo winXP pro y el BCB6.
Agradecería una ayudita  |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
_Tugui Invitado
|
Publicado: Dom 23 Mar, 2003 6:41 pm Asunto: |
|
|
Gracias Leo, otra vez y con tu ayuda he salido airoso del problema que tenía, y menos mal que me pusiste el segundo ejemplo ya que con el primero y aún declarando el constructor en el archivo de cabecera seguía teniendo el mismo fallo. Seguidamente expongo el código que me ha funcionado OK ya que tal vez pueda ayudar a alguien:
//Archivo de cabecera:
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
Variant oAgent, oCharacters, oCharacter;
bool AgentPresent;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//Archivo de implementación:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <ComObj.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Inicializamos
oAgent = CreateOleObject("Agent.Control.1");
AgentPresent = !oAgent.IsEmpty();
if (AgentPresent)
{
oAgent.OlePropertySet("Connected", true);
// Cargamos un caracter/muñequito
oCharacters = oAgent.OlePropertyGet("Characters");
oCharacters.OleProcedure("Load", "Merlin");
oCharacter = oAgent.OlePropertyGet("Characters", "Merlin");
// Habilitamos los efectos de sonido [opcional]
oCharacter.OlePropertySet("SoundEffectsOn", true);
// Lo movemos
oCharacter.OleProcedure("MoveTo", 800, 600);
// Mostramos el muñequito
oCharacter.OleProcedure("Show");
// Lo movemos visible, se ve como vuela
oCharacter.OleProcedure("MoveTo", 0, 0);
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
if (AgentPresent)
{
oAgent.OlePropertySet("Connected", false);
oAgent = oCharacters = oCharacter = Unassigned;
}
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (AgentPresent)
{
// Ejecutamos una animación (hay muchisimas diferentes)
// (read, alert, announce, confused, explain, reading, write, etc...)
oCharacter.Exec(Procedure("Play") << "read");
// Hacemos que hable
oCharacter.Exec(Procedure("Speak") << "Esto es una prueba.");
}
}
//---------------------------------------------------------------------------
/*Ahora sólo me queda dedicar un tiempo a estudiar lo que he hecho ya que no domino el tema de los constructores y destructores.
Gracias de nuevo  |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|