イメージをフォームに貼ってアイコンを乗せました。
私のやりたいことは、実行時にイメージに貼ったアイコンが画面上に浮き出る(フォームがなくアイコンだけが見える)ようにしたいのですが、どうしてもフォームが透明になりません。
フォームのColorをclBackgrownd、TransparentColorをclBackgrownd、TransparentColorValueをtrueにして、imageのTransparentをtrueにして実行しましたが、全てのwindowを閉じた状態でしか思うようになりません。何かのフォームの上で実行させると、色が四角く浮き出てしまいます。
どうか、お願いします。
取敢えず,以下のコードで透明にはなりまが,後は工夫して下さい.
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
procedure CreateParams(var Params: TCreateParams); override;
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := WS_EX_TRANSPARENT
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone;
end;
http://homepage2.nifty.com/Mr_XRAY/Halbow/VCL01.html#VChap1-7
な方法もあります ( List 9 ).
レスありがとうございます。
↑のコードではきちんとできたのですが、私のプログラムに Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone;
途中で送信してしましました。。すみません。
私のプログラムに
Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone;
を追加して実行したのですが、フォームは透明になりましたが、imageのアイコンが表示されている以外の領域にどうしても色がついてしまいます。imageの余白を透明にする方法を教えていただきたいのですが。
よろしくお願いします。
>imageのアイコンが表示されている以外の領域にどうしても色
Image上にどのようなコードでアイコンを表示しているのか知りませんが,
Imageのサイズ(ex. Width,Height)をアイコンのサイズと同じにしても
ダメなんでしょうか.
本当に、すみません。。。
見直してみると、imageのTransparentをtrueにしていませんでした。。
お騒がせして申し訳ないです。。Mr.XRAYさん、感謝いたします。
ツイート | ![]() |