Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Creación de componentes en tiempo de ejecución

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Creación de componentes en tiempo de ejecución Responder citando

En una aplicación necesito crear un componente de TImage en tiempo de ejecución, y lo creo así:

[code]
TImage *Imagen;
Imagen = new TImage(this);
Imagen->Left = num;
Imagen->Top = num2;
Imagen->Picture->LoadFromFile("imagen.bmp");
delete Imagen;
[/code]

las crea bien, pero por más métodos que le aplico (como el Show()) no la muestra y no puedo ver la imagen que le cargo, también lo hice con Picture->Bitmap->LoadFromFile y tampoco funciona.

Otra cosa, cuando creo un componente Timer [b]en tiempo de ejecución[/b], donde escribo el código que debe ejecutar este cada intervalo de tiempo.

de antemano gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

un poco, confusa, que deseas exactamente, hacer, para poder ayudarte.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Re: Creación de componentes en tiempo de ejecución Responder citando

Con respecto a tu ejemplo hay algunos detalles;
1.- Parent : indica cual es el contenedor que se encargara de MOSTRARLO. Realmente este es el que falta.
2.- Si le das delete tampoco lo vas a ver.


Código:
  TImage *Imagen;

  Imagen = NULL;
  try{
    Imagen          = new TImage(this);
    Imagen->Parent  = this;
    Imagen->Stretch = true;
    Imagen->Left    = num;
    Imagen->Top     = num2;
    Imagen->Picture->LoadFromFile("imagen.bmp");

    ShowMessage("Aqui la tienes");
    delete Imagen; Imagen = NULL;
  }
  catch(Exception &err){
    if (Imagen){delete Imagen; Imagen = NULL;}
    throw Exception (err.Message);
  }


La prpiedad stretch únicamente ajusta la imagen al contenedor de la imagen.
En la forma como reescribi tu código no te preocupes .... es mi disciplina de codificación.....

Espero haberte ayudado Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Para Cesar Salazar:
Al crear un componente TImage en tiempo de ejecución y cargarle el archivo bmp a la propiedad picture no la muestra, ¿qué debo hacer para que la muestre?

Lo del componente Timer ya no tengo duda.

Gracias TObject, lo voy a intentar, por cierto el delete no se lo ponía.
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Prueba con Esto.
es similar al codigo de arriba, dentro de un boton, agregas los siguientes componentes, al Form
TButton
TOpenDialogo

dentro del CPP
Código:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TImage *pImg;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    pImg = new TImage(this);
    OpenDialog1->Options.Clear();
    OpenDialog1->Filter = "Archivos de Imagenes (*.bmp)|*.bmp|Todos (*.*)|*.*";
    OpenDialog1->FilterIndex = 1; // solo bmp's
    if(this->OpenDialog1->Execute()){   //buscar el archivo
        pImg->Picture->LoadFromFile(this->OpenDialog1->FileName); // archivo elegido..
    }
    pImg->Left=100;
    pImg->Top=100;
    pImg->AutoSize = true; //mismo tamaño
    pImg->Parent  = this; // donde aparecer, this, este form


}
//---------------------------------------------------------------------------


y dentro del h para que veas los componentes que se utilizaron..

Código:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:   // IDE-managed Components
    TButton *Button1;
    TOpenDialog *OpenDialog1;
    void __fastcall Button1Click(TObject *Sender);
private:   // User declarations
public:      // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.