Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   grafico dentro de un componente (https://www.clubdelphi.com/foros/showthread.php?t=29450)

elcigarra 22-01-2006 19:55:33

grafico dentro de un componente
 
La verdad no se si la pregunta corresponde a este foro o al de gráficos pero pruebo por acá.

Estoy diseñando un componente que utilizará en su canvas un pequeño gráfico (siempre el mismo). El tema es que como siempre que se use será el mismo y nunca otro, me gustaría que estuviera dentro del código, no como una de las propiedades de tipo TPicture que tenga que llenar el usuario con el gráfico cada vez que lo pone. Sino que solo exista el componente y cuando el usuario lo arroje sobre el form ya le aparezca con el gráfico.

Si veo en un form como texto, los gráficos aparecen como :
Picture.Data = {...} donde dentro de las llaves aparece un código que no me interesa escudriñar.

Lo que quisiera hacer es algo parecido pero dentro del código del componente. Asignar los valores de un .bmp a una constante y usarla donde sea necesario. ¿Es esto posible?

Jonnathan 23-01-2006 07:21:29

No soy un maestro en esto de crear componentes pero se me ocurre que puedes meter una imagen en un archivo de recursos (*.res) y en el evento "Create" del componente lees la imagen de ese archivo de recursos con "LoadFromResourceName".
1.-Creas un resource file con Image Editor que trae delphi, añades una imagen y le pones un nombre. Guardas tu archivo .RES en la misma carpeta del componente.
2.-Declara una variable FMiImage de tipo TBipmap en la clausula Private del componente.
3.-Añade una linea con la directiva {$R *.res} para que te compile con tu archivo .RES.
3.-Pones esto en el constructor Create

Código Delphi [-]
...
FMiImage := TBitmap.Create();
FMiImage.LoadFromResourceName(HInstance, 'Nombre_De_Mi_Image_En_Archivo_RES');
Canvas.Draw(0,0,FMiImage);
FMiImage.Free;
...

Prueba y me dices que tal te fué, saludos. :cool:

eliash 23-01-2006 10:38:09

Y con el TImageList, en la pestaña "Win32"??

elcigarra 23-01-2006 10:41:00

Gracias, probaré así. Pero de todos modos no deja de ser un archivo externo con el gráfico que debería ser entregado con el componente. Es decir que no es posible que el código del componente incluya el gráfico.

No entiendo como la clase TImage tiene una propiedad en Picture que no puede ser utilizada en código. Porqué si en el archivo .frm se puede, en el código no puedo ponér algo como :

Código Delphi [-]
var
  Picture1.TPicture;
   
begin
  Picture1.Data := {............};
end;

Neftali [Germán.Estévez] 23-01-2006 12:36:08

Creo que lo corrrecto es que utilices un archivo de recursos como ya te han comentado.
Justamente están para estos menesteres.

roman 23-01-2006 16:34:11

Cita:

Empezado por elcigarra
Pero de todos modos no deja de ser un archivo externo

Sí deja de serlo al momento de compilar.

// Saludos

elcigarra 23-01-2006 17:16:31

Todo bien... que sea así, entonces


La franja horaria es GMT +2. Ahora son las 06:27:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi