Announcement

Collapse
No announcement yet.

MDI-Programm mit Child-Menü

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MDI-Programm mit Child-Menü

    Wer kann mir helfen?

    Folgendes Verhalten tritt mit Delphi 5 auf einem NICHT WinNT (also Win9x) auf.

    Um das Problem nach zu vollziehen nehme man das Delphi-MDI-Projekt (Projekt neu). Kleine Änderung: Dem MDI ein TMainMenu in dem sich min. ein Menü mit einem GroupIndex > 0 befindet zufügen. Dieses Menü klinkt sich zur laufzeit in das Menü des Hauptfroms ein.

    Auswirkung:<br>
    Läßt man das Prog. auf einem 9x System laufen, maximiert min. 2 MDIChilds und wechselt mehrfach zwischen diesen, dann sind die BorderIcons nicht mehr vohanden. Es kommt zu darstellungsfehlern, wenn das ChildSystemIcon sichtbar wird und beim Anklicken doch ein Menüpunkt auf geht. Man kann die Child nicht mehr mit den BorderIcons bedienen.

    Das ist sehr unschön, gibt es dafür eine Lösung?

    Arno Jugel

  • #2
    hallo,<br>
    <br>
    das gleiche problem hatte ich auch immer wieder, so dass ichs dann<br>
    unter 98 völlig gelassen habe.<br>
    leider kann ich dir keine lösung nennen, wäre selber daran inter-
    <br>
    essiert. unter win2000 gibt es dagegen keinerlei probleme.<br>
    <br>
    mfg
    andi

    Comment


    • #3
      <b>Hi, ich musste leider eine lösung finden:</b>

      Die VCL menus.pas muss abgeändert werden:

      Zeile 2978:<br>
      procedure TMainMenu.MenuChanged(Sender: TObject; Source: TMenuItem; Rebuild: Boolean);<br>
      var<br>
      NeedUpdate: Boolean;<br>
      begin<br>
      if (FWindowHandle <> 0) then<br>
      begin<br>
      NeedUpdate := UpdateImage; // check for changes before CM_MENUCHANGED does <br>
      if Source = nil then SendMessage(FWindowHandle, CM_MENUCHANGED, 0, 0);<br>
      if NeedUpdate Or (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then // 21.08.2001 - Mm<br>
      DrawMenuBar(FWindowHandle);<br>
      end;<br>
      inherited MenuChanged(Sender, Source, Rebuild);<br>
      end;<br>

      Gruss<br>
      M

      Comment

      Working...
      X