Tpanelができるように、上のコントロール?
質問
私のプログラムは時間のかかるタスクを行っています。アプリケーションウィンドウの途中にタイムを表示したいと思いますが、トップにとどまることはありません - 私のVSTは常にトップです。しかし、私がTpanelを使用するとき、それは上にとどまりますか?どうすればタイムにそれをさせることができますか?
実際、すべてのコントロールに適用されるソリューションは素晴らしいことです:)
ありがとう!
解決
あなたには必要だ ウィンドウコントロール (つまり、ウィンドウハンドル、または「適切な」コントロールを備えたコントロール)メッセージを表示するためのメッセージを表示します。最も簡単な解決策は、を配置することです TImage
で TPanel
とセット Image1.Align := alClient
と Panel1.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;
他のヒント
タイムにはウィンドウが関連付けられておらず、それがパネルとパネルの違いです。
パネルを追加して、パネルの内側に画像を置きます。つまり、画像の親がパネルです。次に、パネルを前面に持ち込むことで、画像を前面に持ち込むことができます。
VSTを隠すことを考えましたか?
所属していません StackOverflow