小编Mic*_*ael的帖子

在Delphi中使用重采样进行透明图像控制

我有一个带有背景图像的表单(在Form1.Repaint中的表单上绘制).

我在寻找:一个透明的图像控件,可以平滑地调整(重新采样)加载的图像.

(我需要它是透明的,因为表格背景图像应该是可见的)

我尝试过的:

  • 标准TImage:它是透明的,但不会重新取样.

  • Graphics32/Image32:重新采样精美,但不透明.

    我已经用谷歌搜索了几个小时来修复或解决方法,但没有太多的解决方案.这与加载到Image32中的图像是透明的无关,而是控件的背景颜色仍然是白色(白色= Image32控件的颜色属性,并将其设置为clNone不起作用).这显然是按照设计的

  • GR32ex(GR32扩展组件包),据说可以添加一个Transparent-property,但多年来它还没有更新,我无法安装它.它在Delphi 2010和Graphics32 v.1.9上引发了大量错误.

任何人都可以想到解决方案或解决方法吗?我想要的只是一个具有透明度和重新采样的控件.

谢谢!

delphi delphi-2010

6
推荐指数
1
解决办法
1863
查看次数

TWebBrowser:缩放+"一个窗口模式"不兼容

我在尝试什么:

我需要一个总是放大的TWebBrowser(~140%)并将所有链接保存在同一个webbrowser中(即_BLANK链接应该在同一个浏览器控件中打开).

我是怎么做到的:

我已将FEATURE_BROWSER_EMULATION注册表设置为9999,因此使用IE9呈现网页.我已经确认这是有效的.此外,我正在使用IE9全新安装Windows 7运行已编译的程序,通过Windows Update完全更新.

缩放:

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  ZoomFac: OLEVariant;
begin
  ZoomFac := 140;
  WebBrowser1.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, ZoomFac);
end;
Run Code Online (Sandbox Code Playgroud)

这非常有效.

在同一浏览器控件中打开新窗口:

默认情况下,当TWebBrowser遇到要在新窗口中打开的链接集时,会打开一个新的IE.我需要它留在我的程序/ webbrowser中.

我在这里尝试了很多东西.这对我有用:

procedure TFormWeb.WebBrowser1NewWindow3(ASender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;
  const bstrUrlContext, bstrUrl: WideString);
begin
  Cancel := True;
  WebBrowser1.Navigate(bstrUrl);
end;
Run Code Online (Sandbox Code Playgroud)

我取消了新窗口,而只是导航到同一个URL.

互联网上各种页面上的其他来源表明我不会取消,而是将ppDisp设置为各种各样的东西,例如WebBrowser1.DefaultDispath或者WebBrowser1.Application它们的变体.这对我不起作用.当我单击_BLANK链接时,没有任何反应.这是在两台计算机(Win7和IE9)上测试的.我不知道为什么它不起作用,因为这似乎适用于互联网上的其他人.也许这会解决问题?

现在的问题是:

当我结合这两段代码时,它会破坏!

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://wbm.dk/test.htm');
  // This is a test page, that I created. It just …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2010

6
推荐指数
1
解决办法
3390
查看次数

标签 统计

delphi ×2

delphi-2010 ×2