3

Fire Monkey ライブラリを使用してプログラムでフォント サイズを変更しようとしていますが、何も機能していないようです。これが私の最新の試みです:

procedure TForm2.Button1Click(Sender: TObject);
var
  i, j, k: integer;
  w: single;
begin
  k := 0;
  with StringGrid1 do
  begin
    canvas.Font.Size := 24;                         //set font size
    StringColumn2.visible := false;                 //hide this column
    for i := 0 to columncount - 1 do                //loop through columns
    begin
      columns[i].header := 'hdr' + inttostr(i + 1); //provide header content
      w := StringGrid1.Canvas.TextWidth(columns[i].header); //measure width needed
      for j := 0 to rowcount - 1 do                 //loop through rows
      begin
        k := k + 1;                                 //variable cell content
        if i = 0 then                               //do row label
          cells[i, j] := 'Lyr' + inttostr(k)
        else
        begin                                       //do row body
          cells[i, j] := inttostr(k);
        end;
        w := max(w, StringGrid1.Canvas.TextWidth(cells[i, j])); //measure width needed
      end;
      columns[i].Width := w + 10;                   //set width
    end;
  end;
end;

end.

canvas.Font.Size := 24フォント サイズには影響しませんが、興味深い副作用があります。フォント サイズを変更すると、 によって提供される結果が変わりますcanvas.TextWidth。そのため、フォント サイズの部分的な実装があります。フォント スタイルを提案する人にとって、この問題に対して有効なものはありません。font.size以前の演習では、コンポーネントの変更に対する同様の応答の欠如に遭遇しましたTEditが、その演習でフォント スタイルが有効であったかどうかはわかりません。私は何も設定していないことを知っています。

4

1 に答える 1

1

StringGrid1プロパティにはStyledSettingsあります。このプロパティを展開し、変更する必要がある項目をFalseに設定する必要があります。

この場合:サイズ.

于 2014-07-05T08:50:43.540 に答える