2

私はデルファイ 2009 (アップデート 1、2、3、4) を使用しています。私はかなり奇妙なものを見ています。大きなグリフのある大きなボタンがあると、ボタンの画像がボタンの中央に配置されません! 中央に配置されるのではなく、グリフの左側部分がボタンの中央から始まります。

手がかりは、私が:

  1. アクションエディターに入り、アクションを選択します
  2. オブジェクトインスペクターで ImageIndex コンボボックスを使用すると、リストは空になります (通常、コンボボックスに使用可能な画像が表示されます)。

設定に失敗した画像幅プロパティまたは画像リストが正しく構成されていないようです。大きなボタンのグリフは 32x32 であると予想していました。

以下を試してください:

  1. これらのコンポーネントを空のフォームに貼り付けます
  2. 画像リストに 32x32 画像を追加
  3. Action1 の imageindex を 0 に設定します

あなたはすぐに私が何を意味するかを見るでしょう!

グリフが中央にありません!
(出典: xrw.bc.ca )

なぜそのように見えるのか誰か教えてもらえますか?

リボン デモ アプリがこの問題を示さないのは興味深いことです。私も同じ画像を試しました。

ありがとう!

object ActionManager1: TActionManager
  ActionBars = <
    item
      Items = <
        item
          Action = Action1
          Caption = '&Action1'
          ImageIndex = 0
          CommandProperties.ButtonSize = bsLarge
        end>
      ActionBar = RibbonGroup1
    end>
  LargeDisabledImages = img3232
  LargeImages = img3232
  Left = 376
  Top = 184
  StyleName = 'Ribbon - Luna'
  object Action1: TAction
    Caption = 'Action1'
    ImageIndex = 0
  end
end
object Ribbon1: TRibbon
  Left = 0
  Top = 0
  Width = 693
  Height = 147
  ActionManager = ActionManager1
  Caption = 'Ribbon1'
  Tabs = <
    item
      Caption = 'RibbonPage1'
      Page = RibbonPage1
    end>
  ExplicitLeft = 232
  ExplicitTop = 80
  ExplicitWidth = 0
  DesignSize = (
    693
    147)
  StyleName = 'Ribbon - Luna'
  object RibbonPage1: TRibbonPage
    Left = 0
    Top = 54
    Width = 692
    Height = 93
    Caption = 'RibbonPage1'
    Index = 0
    object RibbonGroup1: TRibbonGroup
      Left = 4
      Top = 3
      Width = 54
      Height = 86
      ActionManager = ActionManager1
      Caption = 'RibbonGroup1'
      GroupIndex = 0
    end
  end
end
object img3232: TImageList
  Height = 32
  Width = 32
  Left = 376
  Top = 256
end
4

3 に答える 3

3

問題は、関連する TActionClients オブジェクト (構造ビューで見つける) が何らかの形で (デフォルトで?) SmallIcons=true を取得することでした...グリフの位置が正しくないことにつながります。オブジェクトインスペクターで変更し、現在は機能しています。

于 2009-11-20T13:57:30.670 に答える
0

私はDelphi2009でもこの問題を抱えていました(2010年に解消されたようです)。

IIRC、アクションマネージャで大きなイメージリスト参照を何も設定してから、もう一度イメージリストに戻ってみてください。

N @

于 2009-11-20T03:23:23.730 に答える
0

私はこの問題を自分で再発見しました。実行時にページにグループを追加してTRibbonいました (作業を行うプラグイン フレームワークがあります)。グループを追加し、ボタンを追加した後、画像がオフセットされました。ただしXPのみ。

この問題は、ある時点でグリフ幅が 0 になることに関係していると思います。これにより、TCustomActionControl の FGlyphPos がボタンの中央になり (大きなボタンの場合)、テキストがボタンの一番左に配置されます (小さなボタン用)。このため、グループの幅も本来よりも小さくなっています。

グループを起動してすべてを再調整するための迅速かつ簡単な方法は、次のコードをフォームに追加することです (ここでは OnShow イベントに追加しましたが、好きな場所に配置できます)。

for LTabIndex := 0 to Ribbon.Tabs.Count - 1 do
  for LGroupIndex := 0 to Ribbon.Tabs[LTabIndex].Page.GroupCount - 1 do
    Ribbon.Tabs[LTabIndex].Page.Groups[LGroupIndex].AlignGroupControls;

これが誰かに役立つことを願っています。:)

于 2010-05-25T09:45:52.477 に答える