PopupMenu z tytułem (jak w eMule)

0

Witam...

Chciałem spytać jak zabrać się do zrobienia czegoś w rodzaju tytułu w PopupMenu. Teoretycznie chodzi o Item z jakimś efektem graficznym, który jest nieaktywny tzn. nie przyjmuje zaznaczenia/podświetlenia myszką.

Przykład czegoś takiego można zobaczyć klikając prawym przyciskiem w ikonę programu eMule w trayu. Tam jest jeszcze dodatkowy obrazek po lewej jak w Menu Start i dwa Itemy zawierają w sobie pola Edit i suwaki ale to już jest zbyt dużo. Chodzi mi tylko o tytuł.

0

Ostatnio widziałem plik o nazwie bc_bmenu.zip. Może to się przyda.
Pozdrawiam ;)

0

Nic prostszego. Ustawiasz temu itemowi caption jako '-', zeby byl nieaktywny (można też enabled=false, ale to chyba gorzej działało, z tego co pamiętam) i obsługujesz onmeasureitem (ustawiasz tam wysokość tego nagłówka) oraz ondrawitem, gdzie rysujesz nagłówek po canvasie.

0

Dzięki, poradziłem już sobie. Ustawiłem OwnerDraw w PopupMenu na True i w pierwszym Itemie który ma być tytułem w zdarzeniu OnDrawItem dałem:

procedure TForm1.Opener1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
  ACanvas.Brush.Color := clMenu;
  ACanvas.FillRect(ARect);
  ACanvas.Font.Color := clMenuText;
  ACanvas.Font.Style := [fsBold];
  ACanvas.TextOut(ARect.Left + 6, ARect.Top + 3, 'Tytuł');
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1