3

フォームの右側に 3 つのボタンが配置されています。ボタンのアンカー プロパティ パラメーターakTopakRightはtrueに設定され、他のパラメーターはfalseのままに設定されているため、フォームのサイズが変更されたときに、ボタンは常に右側の境界近くに留まります。次に、フォームのWindowStateプロパティをwsMaximizedに設定して、起動時にフォームが画面全体を覆うようにします。しかし、アプリケーションを起動すると、ボタンは右側ではなく中央に近くなります。しかし、デザイン時にフォームのサイズを変更すると、すべてうまくいくようです。

ここに、私が言いたいことを正確に示すスナップショットをいくつか示します。

設計時:

ここに画像の説明を入力

ここに画像の説明を入力

実行時:

ここに画像の説明を入力

私が間違っていることと、意図したとおりに動作するように修正する方法を説明してください。

4

2 に答える 2

4

これは、ボタンが設計された位置で作成され、フォームが最大化に設定され、アンカー プロパティが設定または配置されているように見えます。

設計時には、アンカーはすでに設定されているため、必要に応じてアンカーが移動するのがわかります。これに関する私の理論を証明するために、フォームをはるかに小さくし、アプリケーションを実行して、アイテムが設計時のより小さい場所にあることに注意してください。

欲しいものを手に入れるための簡単な修正。Window の状態を wsNormal に保ち、FormShow (作成後に発生) で次のようにします。

procedure TForm1.FormShow(Sender: TObject);
begin
  self.WindowState := wsMaximized;
end;

必要な結果が表示されます。

于 2013-05-03T03:02:10.927 に答える