在delphi中预览?

问题描述

我正在 Delphi 中创建一个项目,想知道是否可以创建选项卡的预览。我的想法是让一个人将鼠标悬停在将您带到页面的面板上,然后它会在提示显示预览,就像您将鼠标悬停在任务栏中的图标上一样。如果这是可能的,是否也可以显示页面而不是面板作为预览,然后单击它去那里?我的意思是几乎像页面的图像,但我的问题是我不希望它成为页面的静态屏幕截图,我希望它能够按原样显示页面,并进行任何更改.这同样适用于提示(即不是静态图像)。

任何帮助和解释,将不胜感激。

解决方法

要获取 TTabSheet 的当前视图,您应该使用与此类似的函数:

procedure TForm81.CopySheet(TAB: TTabSheet);
var
  bmp   : TBitMap;

begin
  bmp:=TBitMap.Create;
  try
    bmp.PixelFormat:=TPixelFormat.pf24bit;
    bmp.Width:=TAB.Width; bmp.Height:=TAB.Height;
    TAB.PaintTo(BMP.Canvas,0);
    // Do what you need to with the bmp,ie. show it in a hint,a preview window,etc.
  finally
    bmp.Free
  end
end;

基本方法是 TAB(和大多数其他 TControl)上的“PaintTo”,它将自身绘制到 TCanvas(例如 TBitmap 的 f.ex.,如上)。

我将让您填写“对 bmp 执行您需要执行的操作,即在提示、预览窗口等中显示它”。部分:-)