Komponent hjælp (Så mange svar, som muligt)
___________________________________________________________Jeg har lavet en komponent med denne kode:
___________________________________________________________
unit Effect;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, JPEG,
Dialogs, StdCtrls, Forms, extctrls;
type
TEffect = class(TComponent)
private
{ Private declarations }
FBitmap: TBitmap;
FJpeg: TJpegImage;
FPicture: TGraphic;
FImage: TImage;
protected
{ Protected declarations }
public
{ Public declarations }
Constructor Create(AOwner: TComponent); override;
Destructor Destroy; override;
published
{ Published declarations }
Property Bitmap: TBitmap read FBitmap write FBitmap;
Property Jpeg: TJpegImage read FJpeg write FJpeg;
Property Picture: TGraphic read FPicture write FPicture;
Property Image: TImage read FImage write FImage;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('PDJ', [TEffect]);
end;
constructor TEffect.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
destructor TEffect.Destroy;
begin
inherited Destroy;
end;
end.
___________________________________________________________
Jeg vil gerne have sat den nedenstående procedure ind i komponenten.
___________________________________________________________
procedure TForm1.Button1Click(Sender: TObject);
var
Gray, X, Y : Integer;
PByte : PByteArray;
begin
with Image1.Picture.Bitmap do
begin
for Y := 0 to Height -1 do
begin
PByte := ScanLine[Y];
for X := 0 to Width -1 do
begin
Gray := Round(PByte[X * 3] * 0.3 + PByte[X * 3 + 1] * 0.59 + PByte[X * 3 + 2] * 0.11);
PByte[X * 3] := Gray;
PByte[X * 3 + 1] := Gray;
PByte[X * 3 + 2] := Gray;
end;
end;
end;
Image1.Refresh;
end;
___________________________________________________________
Alle de steder hvor "Image1" fremkommer, skal byttes ud så det er den image fra property'en "Image" (fra første kode under published) der reagerer på proceduren.
På forhånd tak :-)
___________________________________________________________
