0

何ヶ月も悩まされている (Delphi のバグ?) があります。私のアプリの 1 つで、TPanel にいくつかのコントロール (tedit、tbutton など) があります。プロジェクトを閉じて再度開くたびに、コントロールが数ピクセル上に移動します。20 ~ 30 回閉じると、コントロールはほとんどパネルの外に出てしまうので、ドラッグして戻す必要があります。誰もそのような問題に遭遇しましたか?修正方法は?

私はDelphi XEを持っています。


更新:
実際、私は 2 つのプロジェクトでこれに遭遇しました。どちらも TPanel のコントロールを含みます。
プロジェクトのコントロールをコンパイルすると、exe で、コントロールも間違った位置にあります。
(TPanel の) 上部に配置された TEdit があり、その下部は下部に固定されています。下部も正しい位置を「忘れ」、上部に移動します。


更新:
バグが確認されました。ユーザーがパネルのベベル プロパティを変更すると表示されます。

4

3 に答える 3

2

この問題は、2012 年 6 月に Delphi XE2 のQuality Central #106320
で報告されました。 そのステータスはまだ「フィードバックが必要」で、サンプル プロジェクトはありませんが、子孫フォームに関係しているように見えます。

コンポーネントを配置する正確な場所を決定したら、FormCreate でそれらの位置を調整することをお勧めします。
次に、デザインモードでは、実行時に正しく表示されることがわかっているため、位置を「おおよそ」すばやく修正できます。

Robs の提案も試してみる価値があるように思えます。

ところで、サンプル プロジェクトをなんとか作成できた場合、他の人がそれが後のバージョンで修正されているかどうかを判断できる可能性があります。

于 2013-06-21T18:02:29.037 に答える
1

それはD7でも起こりました。デザイン タイム フォームを開いてデスクトップの解像度を変更したり、IDE を最小化したりすると、下部に配置されたコントロールが下に押し出され、フォームから外れることがあることがわかりました。

そのようなことを防ぐために、私は最近、HTML ページが設計されているのと同じ方法を使用しています。

私の各フォームには、tPanels (または html で使用されるタグなど) で分割されたレイアウトがあります。tPanels は、そのデザインに従って配置されます。

同じ問題ではないかもしれませんが、私が見つけた解決策があなたにも役立つと思います.

于 2013-06-24T07:11:53.750 に答える
1

アンカーと位置の間には明らかに競合があり、フォームの継承が関係している可能性があります。親コントロールの境界線のサイズまたはマージンが更新されるときだけでなく、さまざまな配置制約が適用される順序にも関係があると思います。その上、上に合わせて下に固定することは、問題のレシピのように聞こえます. 代わりに、配置設定をクリアし、上部と側面を固定することを検討してください。同じ効果が得られるはずです。または、パネルの下部に配置されたスペーシング コントロール (a などTShape) を配置し、編集コントロールをクライアント領域に配置します。これにより、下部に固定するのと同じ効果が得られます。

とはいえ、これは簡単に回避できるはずです。フォームのOnCreateイベント ハンドラーで、コンポーネントを呼び出すことにより、コンポーネントを正しい位置に移動SetBoundsします。開発サイクル中にそれ以上の動きを止めるには、おそらくアンカーをクリアしてから、実行時に再設定する必要があります。

于 2013-06-21T16:16:46.610 に答える