名前 題名 ▼ Mr.XRAYさん > 清水の舞台から飛び降りるつもりでダウンロードしてみました. > 特に問題は発生していません(^^; > Delphi 7 以前のコードのようです. > 質問の文章にあった MenuChanged を使用してる部分が分かりました. > > Timer1 イベントのコードを書きかえれは,チラつかなくなるようです. > 動作確認は Windows 7 U64(SP1) + Delhpi XE(UP1) Pro です. > > > procedure TformMain.Timer1Timer(Sender: TObject); > var > ... > ... > hPopupWnd : HWND; //追加 > Flags : Cardinal; //追加 > begin > ... > ... > // mi.MenuChanged(True); //削除.本人も激しくチラつくと書いている > > hPopupWnd := FindWindow(PChar(#32768), nil); //追加 > Flags := RDW_INVALIDATE or RDW_UPDATENOW; //追加 > RedrawWindow(hPopupWnd, nil, 0, Flags); //追加 > end; > end; > > 「超高校生級」でも難問だったようですが > 問題が発生したら,いろいろ調べてみることですね. > MenuChanged は構造の変更があった場合なので,ウィンドウの更新ではなく, > 全て再作成ということでしょう. > > [Vcl.Menus.TMenu.MenuChanged - RAD Studio API Documentation] > http://docwiki.embarcadero.com/Libraries/XE7/ja/Vcl.Menus.TMenu.MenuChanged > > > こんなやつです. > TPanel 上の TPaintBox に描画している画像を TPopupMenu に表示するようです. > というか,TPanel のイメージを TMenuItem の Canvas に描画しています. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link