Linux上で実行されているLazarusにTStringGridがあります。エディタタイプcbsButtonを持つカラムがあります。私はボタンに省略記号の代わりに特定の画像を表示させたい。私は完全に間違った方法でこのことについてつもりだと確信している、この時点でTStringGrid内のセルにあるボタンの描画とイメージ
mainform.pas(156,23) Error: Class or Object types "TFPCustomImage" and "TImage" are not related
:
procedure TForm1.streams_gridDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
var
aCanvas: TCanvas;
aGrid: TStringGrid;
Editor: TWinControl;
image: TImage;
begin
if (aCol <> 1) or (aRow = 0) then begin
Exit;
end;
aGrid := (Sender as TStringGrid);
aCanvas := image.Canvas;
aCanvas.FillRect(aRect);
imagelist1.Draw(aCanvas, aRect.Left+2, aRect.Top+2, 8);
Editor := (aGrid.EditorByStyle(cbsButton) as TButtonCellEditor);
Editor.Brush.Style := TBrushStyle.bsImage;
(Editor.Brush.Image as TImage) := image; // causes the error below
end;
エラーがある:私は、エラーが発生し、次のコードを、持っています。誰かが私を正しい道に戻してください。
あなたはコンポーネントを構築する前に、TImageのキャンバスにアクセスするための代わりに、アクセス違反を取得する必要があります。 –
アクセス違反は実行時です。上記のエラーはコンパイル時です。 – lk75