掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TBitmapと変数パラメータ (ID:33687)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以下の例でBmpCompositeはTBitmapを値渡しで処理していますがsrcは変数パラメータにし ないと呼び出し元で役に立たないと思うのですが、実際にはうまくいきます(笑)。 これはなぜでしょう? procedure BmpComposite(src,back: TBitmap; X,Y: Integer); var bmp : TBitmap; begin Bmp := TBitmap.Create; try Bmp.PixelFormat := pf24bit; Bmp.Width := Screen.Width; Bmp.Height := Screen.Height; Bmp.Canvas.CopyRect( Rect(X,Y,src.Width+X,src.Height+Y), src.Canvas, src.Canvas.ClipRect ); src.Assign(Bmp); finally Bmp.Free; end; end; procedure TForm1.PreviewFile; var BMP : TBitmap; w,h,x,y : Integer; begin begin try BMP := TBitmap.Create; BMP.PixelFormat := pf24bit; BMP.Assign(FmainBmp); //FmainBmp は private if BcBmp.Width > 0 then begin w := BMP.Width; h := BMP.Height; x := 0; y := 0; GetFormRatio(w, h, x, y); //x, y等を求める。これは4つとも変数パラメータ BmpComposite(BMP,FBcBmp,x,y); //FBcBmp は private //値渡しなのでBMPはFmainBmpのままと思われるが end; Image1.Canvas.Draw(x,y,BMP); //実際にはBmpCompositeの効果が現れている 以下略
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.