| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Rafael Ramírez Cdt

Registrado: 29 Jun 2004Mensajes: 9Ubicación: Querétaro, México
|
Publicado: Mie 27 Oct, 2004 8:10 pm Asunto: Creación de componentes en tiempo de ejecución |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 27 Oct, 2004 8:27 pm Asunto: |
|
|
un poco, confusa, que deseas exactamente, hacer, para poder ayudarte. _________________
 |
|
| Volver arriba |
|
 |
TObject Cdt

Registrado: 28 Jun 2004Mensajes: 17
|
Publicado: Mie 27 Oct, 2004 11:05 pm Asunto: Re: Creación de componentes en tiempo de ejecución |
|
|
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  |
|
| Volver arriba |
|
 |
Rafael Ramírez Cdt

Registrado: 29 Jun 2004Mensajes: 9Ubicación: Querétaro, México
|
Publicado: Vie 29 Oct, 2004 12:30 am Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 29 Oct, 2004 5:45 pm Asunto: |
|
|
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 |
_________________
 |
|
| Volver arriba |
|
 |
|