Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

TImage in ActiveX control

6 views
Skip to first unread message

nelid

unread,
Feb 24, 2007, 7:16:48 PM2/24/07
to
hello,

I write my first ActiveX control in Delphi7. Conrol is TImage. My First step, I created TImageEx:

TImageEx = class(TCustomControl)
private
FImage: TImage;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy;
published
property Image: TImage read FImage;
end;

implementation

constructor TImage.Create(AOwner: TComponent);
begin
inherited Create(AOwner):
Self.Visible := False;
FImage := TImage.Create(Self);
FImage.Name := 'Image';
FImage.Parent := Self;
FImage.SetSubComponent(True);
Self.SetBounds(Self.Left, Self.Top, 105, 105);
Self.Visible := True;
end;

destructor Destroy;
begin
FImage.Free;
inherited Destroy;
end;

Now I create ActiveX control from wizard Delphi, and I have TImageX:

TImageX = class(TActiveXContol)
private
...
FDelphiControl: TImageEx;
...
public
...
function Get_CanvasHandle: Cardinal;
...
end;

implementation

...

function TImageEx.Get_CanvasHandle: cardinal;
begin
Result := FDelphiControl.Image.Canvas.Handle;
end;

From my application, I'm using TImageX activex control:

TMainFrom = class(TForm)
...
ImageX: TImageX;
procedure Button1Click(Sender: TObject);
...
end;

In Button1Click procedure, I would like draw on TImageX.Canvas:

procedure TMainForm.Button1Click(Sender: TObject);
var
LCanvas: TCanvas;
begin
LCanvas := TCanvas.Create;
try
LCanvas.Handle := ImageX.Get_CanvasHandle;
LCanvas.TextOut(10, 10, 'Test TextOutCanvas');
finally
LCanvas.Free;
end;
end;

but, I can't see any text on TImageX, why ?

please, help me and very thanks!

ps. sorry for my baaaaaaad english.... :(

--
nelid

nelid

unread,
Feb 25, 2007, 4:05:44 AM2/25/07
to
0 new messages