質問

私のプログラムは時間のかかるタスクを行っています。アプリケーションウィンドウの途中にタイムを表示したいと思いますが、トップにとどまることはありません - 私のVSTは常にトップです。しかし、私がTpanelを使用するとき、それは上にとどまりますか?どうすればタイムにそれをさせることができますか?

実際、すべてのコントロールに適用されるソリューションは素晴らしいことです:)

ありがとう!

役に立ちましたか?

解決

あなたには必要だ ウィンドウコントロール (つまり、ウィンドウハンドル、または「適切な」コントロールを備えたコントロール)メッセージを表示するためのメッセージを表示します。最も簡単な解決策は、を配置することです TImageTPanel とセット Image1.Align := alClientPanel1.BorderStyle := bsNone.

通常のコントロールの上に半透明のビットマップを描きたい場合は、私がいつもするようにできます。

procedure TForm1.Button1Click(Sender: TObject);
var
  bm: TBitmap;
  png: TPngImage;
begin
  // The form contains a hidden TPanel (somewhere on the form)
  // with a TImage (alClient).

  // png is a PNG image with an alpha channel
  png := TPngImage.Create;
  try
    png.LoadFromFile('C:\Users\Andreas Rejbrand\Pictures\alpha.png');
    // Create bitmap of form and blend PNG on it
    bm := GetFormImage;
    try
      bm.Canvas.Draw(0, 0, png);
      Image1.Picture.Bitmap := bm;
    finally
      bm.Free;
    end;
    Panel1.Align := alClient;
    Panel1.BringToFront;
    Panel1.Show;
  finally
    png.Free;
  end;
end;

Sample result

他のヒント

タイムにはウィンドウが関連付けられておらず、それがパネルとパネルの違いです。

パネルを追加して、パネルの内側に画像を置きます。つまり、画像の親がパネルです。次に、パネルを前面に持ち込むことで、画像を前面に持ち込むことができます。

VSTを隠すことを考えましたか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top