我从Twincontrol继承的组件,想动态显示图像(因别的原因不能从TGraphiControl控件继承),但是显示的图像要随控件的大小而缩放,类似image的stretch属性设置成true后的功能.怎么实现?
下面的部分代码:
FBitmap.create;
FBitmap.LoadFromfile('C:\tmp.bmp');
.....
Canvas.Brush.Style:=bsSolid;
Canvas.Brush.Color :=clwhite;
Canvas.FillRect(Canvas.ClipRect);
Canvas.TextOut(0,0,'图像');
Canvas.Draw(0, 0, FBitmap);
....
下面的部分代码:
FBitmap.create;
FBitmap.LoadFromfile('C:\tmp.bmp');
.....
Canvas.Brush.Style:=bsSolid;
Canvas.Brush.Color :=clwhite;
Canvas.FillRect(Canvas.ClipRect);
Canvas.TextOut(0,0,'图像');
Canvas.Draw(0, 0, FBitmap);
....
解决方案 »
- Program or unit 'Variants' recursively uses itself??
- 請問在sql語句完全正確的前提下,datagrid中部份數據不能顯示的原因有哪些?
- 请教各位高手,怎样在程序中从现有数据表中动态得知某一列的数据类型,多谢了。非常紧急,一直在线等
- Image1上放一个Image2, 如何把重叠的图像复制到Image3里?请兄弟们赐教!
- 请问:dbgrid中的数据更新问题
- 杨辉三角的算法问题。
- 50分求:TMSSoftware的 instrumentation workshop组件
- 请问 Delphi 的类库是怎么组着的?
- 在音量不变的情况下,如何编程实现静音?
- 我要作的第一个程序:要求数据库用VFP,请各位指点一下.现在只能加这点分,我会不断加分
- 无奈!谁会用pb帮帮我!
- 如何实现把用窗体内容全部复制粘贴到另一个指定的窗口
2.拦截WM_PAINT进行重画!当然如过你是写组件的话,当然也可以将
FCanvas: TCanvas;
property Canvas: TCanvas read FCanvas;constructor Txxx.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FCanvas := TControlCanvas.Create;
TControlCanvas(FCanvas).Control := Self;
end;procedure Txxx.WMPaint(var Message: TWMPaint);
begin
if Message.DC <> 0 then
begin
Canvas.Lock;
try
Canvas.Handle := Message.DC;
try
Paint;
finally
Canvas.Handle := 0;
end;
finally
Canvas.Unlock;
end;
end;
end;
...
等代码写入缩放当然可用StretchDraw