掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Bitmapの表示色を変更するには (ID:25162)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Bitmap.PixelFormat = pf1bit であれば... procedure paletteChange(aBitmap: TBitmap); var hpt: HPalette; lpl: PLogPalette; i: Integer; begin //秘密の魔法(意味わからんて) aBitmap.PixelFormat := pfDevice; {メモリ取得} GetMem(lpl, SizeOf(TLogPalette) + SizeOf(TPaletteEntry) * 2); {$R-}//範囲チェックエラー回避用 i := 0; //palpalentry[0], palpalentry[1], と書くと、 //「範囲外の〜」とコンパイルエラーになります TColor(lpl^.palpalentry[i]) := clWhite; i := 1; TColor(lpl^.palpalentry[i]) := clBlack; {$R+} lpl^.palVersion := $300; //おまじない lpl^.palNumEntries := 2; //色数 hpt := CreatePalette(lpl^); aBitmap.Palette := hpt; //メモリ開放 FreeMem(lpl); //パレット割り当て・・・と解釈すればよいのか? SelectPalette(aBitmap.Canvas.Handle, aBitmap.Palette, False); //(意味わからんが)論理パレットをシステムパレットにマップする RealizePalette(aBitmap.Canvas.Handle); //魔法解除(わからんてば) aBitmap.PixelFormat := pf1bit; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.