Results 1 to 6 of 6

Thread: screen menufont doet niets

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    screen menufont doet niets

    Weet iemand waarom het zetten van Screen.MenuFont geen enkel effect heeft?

    Edit: ok OwnerDraw van menu aanzetten... Maar dan ziet het er helaas nog steeds niet uit haha.

  2. #2
    Probeer eens Ownerdraw uit te zetten en weer aan te zetten in je code om het menu te refreshen. De Screen Menufont zou danwel effect moeten hebben.
    Vriendelijke groeten,
    Dany

  3. #3
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Quote Originally Posted by Dany View Post
    Probeer
    Werkt dat ook op Windows 98?
    TMemoryLeak.Create(Nil);

  4. #4
    Quote Originally Posted by Anoniem View Post
    Weet iemand waarom het zetten van Screen.MenuFont geen enkel effect heeft?

    Edit: ok OwnerDraw van menu aanzetten... Maar dan ziet het er helaas nog steeds niet uit haha.
    Je moet natuurlijk niet ALLEEN OwnerDraw aanzetten.
    Je moet ook TMenuItem.OnDrawItem maar OOK TMenuItem.OnMeasureItem implementeren (vergeet deze laatste vooral niet).

    Als je deze code op de juiste plaats zet en aan alle TMenuItem's hangt en TMainMenu of TPopupMenu .OwnerDraw := true doet dan gaat het prima.
    (Er zijn ook nog zat andere voorbeelden te vinden.)

    Delphi Code:
    1. type
    2.   TMyMenuItem = class(TMenuItem);
    3.  
    4. procedure TForm1.MenuItemMeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer);
    5. var
    6.   OldMeasureItem: TMenuMeasureItemEvent;
    7. begin
    8.   with Sender as TMenuItem do
    9.   begin
    10.     OldMeasureItem := OnMeasureItem;
    11.     OnMeasureItem := nil;
    12.     ACanvas.Font.Name := 'Courier New';
    13.     TMyMenuItem(Sender).MeasureItem(ACanvas, Width, Height);
    14.     OnMeasureItem := OldMeasureItem;
    15.   end;
    16. end;
    17.  
    18. procedure TForm1.MenuItemAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
    19. var
    20.   OldAdvancedDrawItem: TAdvancedMenuDrawItemEvent;
    21. begin
    22.   with Sender as TMenuItem do
    23.   begin
    24.     OldAdvancedDrawItem := OnAdvancedDrawItem;
    25.     OnAdvancedDrawItem := nil;
    26.     ACanvas.Font.Name := 'Courier New';
    27.     DrawMenuItem(TMenuItem(Sender), ACanvas, ARect, State);
    28.     OnAdvancedDrawItem := OldAdvancedDrawItem;
    29.   end;
    30. end;

  5. #5
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Voor zover ik weet reageren jullie nu op een necro-post en bestaat de gebruiker niet (meer).
    TMemoryLeak.Create(Nil);

  6. #6
    Ah. Ik dacht dat de gebruiker Anoniem genoemd was.
    Maar ik zie dat de post inderdaad van 2018 is

    Ach... goed voor het archief als iemand naar dit probleem zoekt

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •