質問

い形MainMenuい遮断時のユーザーを選択しコマンドの項目からメニューです。この作品はイン:

type
  TForm1 = class(TForm)
    ... // Memo and MainMenu created
  protected
    procedure WMCommand(var Info: TWMCommand); message WM_COMMAND;
  end;


procedure TForm1.WMCommand(var Info: TWMCommand);
begin
  if (Info.ItemID < 10) then
    Memo1.Lines.Add('WMCommand ' + IntToStr(Info.ItemID));
end;

にMainMenuい一部の項目が選択項目からメニュー 私の参考1には:

WMCommand 2
WMCommand 3
WMCommand 3
WMCommand 2
WMCommand 5
...

私は移植されることへの応用FPC/ラザもいるそうでWM_COMMAND ハンドラに呼び出されることはありません!私がセットにブレークポイント TForm1.WMCommand ントをデ 停止時のメインフォームが登場します。金持ちはラザロを止めていません このブレークポイントを設定します。と思い何かが壊れたとWM_COMMAND お金持ちはラザロでもないわからないこと。ずっと面白いアイデアないか?

使っていラザ0.9.28.2ベータとFPC2.2.4にWinXP.

編集:

使用WinspectorいことをチェックMainMenu生WM_COMMAND:

WM_COMMAND
    Code: 0
    Control ID: 2
    Control HWND: 0x00000000
    Message Posted
    Time: 09:37:14.0968

にあると思いバグを修正ラザロ/FPCにWM_COMMANDメッセージ方法で取り扱いとなどを報告しましたので http://bugs.freepascal.org/view.php?id=15521

役に立ちましたか?

解決

にLCLアプリケーションのレイヤー

  • の応用
  • LCL
  • ウィジェット設定インタフェース(例えばwin32/win64、qt,gtk2、カーボン)
  • ウィジェットセット

WM_COMMANDですからのメッセージwidgetset層のウィジェットセットインタフェース。これらのメッセージを渡され、高い層で、携帯性、その他のウィジェットセット作るなどのメッセージ

したい場合のメッセージを記述する必非携帯widgetset特定のコードすコードです。をオーバーライドすることができwindowprocとsetwindowlong.を参照 ラザロwiki のための一例です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top