次の方法で TFlowPanel コンポーネントを使用しようとしています。
- メイン フォーム
Form1コンポーネントに配置しますFlowPanel1: TFlowPanel。 Form1.Width = 400、FlowPanel1.Align = alTop、FlowPanel1.AutoSize = True、 を設定しFlowPanel1.AutoWrap = Trueます。FlowPanel15 つの SpeedButtonsに配置し、それらWidthを 64 に設定します。- コンパイルして実行します。
- フォームの幅を減らします (約
Form1.Width = 200)。
何らかの理由で、ユーザーがフォームのサイズを変更したときに、スピード ボタンが自動的に 2 行に整列しません。ただし、 の場合は 2 列に並んAutoSize = FalseでいAutoWrap = Trueます。
この動作の理由と解決方法は何ですか?
編集:「すばやく汚い」解決策を見つけました。次のコードは、イベントのイベント ハンドラーTFlowPanel.OnResizeです。
procedure TForm1.FlowPanel1Resize(Sender: TObject);
begin
with FlowPanel1 do
begin
AutoSize := False;
Realign; // line up controls
AutoSize := True; // adjust TFlowPanel.Height
end;
end;
ただし、問題を解決する標準的な方法があるかどうかはまだ疑問です。