PDA

Ver la Versión Completa : no me muestra componente en la paleta de componentes


kapullok_2006
23-05-2007, 13:11:34
Hola, tengo un paquete llamado Package1,añadido a él los archivos:

ImgProcesado.as,ProeffectImage.pas,ImgZoom.pas.

ImgProcesado.pas tiene el sig código:


///------------------------------------------------------------------
unit ImgProcesado;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ImageZoom, ProEffectImage;
type
TImgProcesado = class(TImage)
private
FZoom: TImageZoom;
FProcesado:TProEffectImage;
FValor_zoom: integer;
FValor_contraste: integer;
FValor_brillo: integer;
FValor_oscuridad: integer;
FValor_saturacion: integer;
FValor_mosaico: integer;

public
{ Public declarations }
{ destructor Destroy; override;
constructor Create(AOwner: TComponent); override;
}
procedure CargarFoto(foto: string);
procedure SalvarFoto(foto: string);
procedure CambiarZoom(n: integer);
procedure CambiarInvertir;
procedure CambiarAlias;
procedure CambiarContraste(n:integer);
procedure CambiarGrises;
procedure CambiarBrillo(n:integer);
procedure CambiarOscuridad(n:integer);
procedure CambiarSaturacion(n: integer);
procedure CambiarMosaico(n: integer);
published
{ Published declarations }
property Zoom: integer read FValor_zoom write CambiarZoom;
//property Invertir: integer read FValor_invertir write CambiarInvertir;
property Contraste: integer read FValor_contraste write CambiarContraste;
property Brillo: integer read FValor_brillo write CambiarBrillo;
property Oscuridad: integer read FValor_oscuridad write CambiarOscuridad;
property Saturacion: integer read FValor_saturacion write CambiarSaturacion;
property Mosaico: integer read FValor_mosaico write CambiarMosaico;

end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TImgProcesado]);
end;
//---------------------------------------------------------------------------//
{constructor TImgProcesado.Create(AOwner: TComponent);
begin
//inherited Create(AOwner);
FZoom:= TImageZoom.Create(Self);
FProcesado:= TProEffectImage.Create(Self);
end;
}
{destructor TImgProcesado.Destroy;
begin
FProcesado.Free;
FZoom.Free;
//inherited Destroy;
end;
}
//---------------------------------------------------------------------------//
procedure TImgProcesado.CargarFoto(foto: string);
begin
Self.Picture.LoadFromFile(foto);
end;
procedure TImgProcesado.SalvarFoto(foto: string);
begin
Self.Picture.SaveToFile(foto);
end;
//---------------------------------------------------------------------------//
procedure TImgProcesado.CambiarZoom(n:integer);
begin
FValor_zoom:= n;
FZoom.Picture.Assign(Self.Picture);
FZoom.Zoom:= FValor_zoom;
Self.Picture.Assign(FZoom.Picture);
end;
procedure TImgProcesado.CambiarInvertir;
begin
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Invert;
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarAlias;
begin
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_AntiAlias;
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarContraste(n:integer);
begin
FValor_contraste:=n;
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Contrast(FValor_contraste);
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarGrises;
begin
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_GrayScale;
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarBrillo(n:integer);
begin
FValor_brillo:=n;
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Lightness(FValor_brillo);
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarOscuridad(n:integer);
begin
FValor_oscuridad:=n;
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Darkness(FValor_oscuridad);
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarSaturacion(n: integer);
begin
FValor_saturacion:=n;
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Saturation(FValor_saturacion);
Self.Picture.Assign(FProcesado.Picture);
end;
procedure TImgProcesado.CambiarMosaico(n:integer);
begin
FValor_mosaico:=n;
FProcesado.Picture.Assign(Self.Picture);
FProcesado.Effect_Mosaic(FValor_mosaico);
Self.Picture.Assign(FProcesado.Picture);
end;
end.
//-------------------------------------------------------------------


Este archivo .pas,debe usar propiedades de los otros .pas. ImageZoom y ProEffectImage ,aprecen en paleta 'Samples',pero no aparece ImgProcesado.

¿Sabéis cuál es el problema?.Estoy desesperado.

Es q quiero crear ese componente con propiedades y eventos de los otros dos. ImageZoom(pkgrim.zip,descargado de este foro o de alguna página recomendada de este foro) y ProEffectImage(descargado gracias a este foro).

Saludos a todos.

:( :(

Lepe
23-05-2007, 14:40:04
Tienes que decirle a delphi que lo instale en la paleta de componentes, normalmente con Component -> install components -> buscar el pas y después compilar e instalar, aunque depende de la versión de delphi que uses.

PD: No sé por qué has comentado el constructor y destructor, todo ese código es necesario, deberías quitar los comentarios. Ya que esta línea (de otras muchas)
FProcesado.Picture.Assign(Self.Picture);
lanzará un error en tiempo de ejecución porque FProcesado no ha sido creado, y por ende, no puede acceder a su propiedad Picture.

Saludos

kapullok_2006
24-05-2007, 11:08:27
:confused: sigue sin aparecer el componete TImgProcesado en paleta 'Samples',
¿alguna pista mejor?

Saludos.


Mi delphi es la versión 6.

Lepe
24-05-2007, 13:50:05
¿qué versión de delphi tienes?

kapullok_2006
25-05-2007, 11:12:02
ya te lo he dicho, mi versión,de Delphi, es Delphi 6.


saludos.

Lepe
25-05-2007, 11:49:48
Perdona, al estar debajo de "Saludos" directamente lo obvié, ya que solemos poner algún texto en la firma (en el perfil de usuario) :rolleyes: .

¿Te da algún error cuando quieres compilar el paquete?
¿Cuando lo intentas instalar?

Porque esa es la forma de instalar cualquier componente en Delphi 6. Personalmente desconozco esos componentes, pero no debería haber problemas.

Saludos