Вниз
Скачать: CL | DM;

PopupMenu   Найти похожие ветки 

 
Handle ©   (2006-11-17 11:49) [0]

Делаю собственную орисовку PopupMenu, возможно ли определить координаты ARect.Left глобально, то есть относительно экрана?

procedure TForm1.AdvancedDrawItems(Sender: TObject;
 ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
var
 PTextRect: TRect;
begin
 ARect.Left:= 20;
 ACanvas.FillRect(ARect);
 if odSelected in State then
 begin
   ACanvas.Pen.Color:= clHighlight;
   ACanvas.Brush.Color:= clHighlight;
   ACanvas.Rectangle(ARect);
  // ShowToolTipHint( );
 end else
 begin
    ACanvas.Font.Color:= clWhite;
 end;
 PTextRect:= Rect(ARect.Left + 3, ARect.Top + 2, ARect.Right - 22, ARect.Bottom);
 DrawText(ACanvas.Handle,PChar((Sender as TMenuItem).Caption),
   Length((Sender as TMenuItem).Caption), PTextRect, DT_LEFT);
 ImageList1.Draw(ACanvas, 1, ARect.Top + 2,(Sender as TMenuItem).ImageIndex, true);
end;


 
clickmaker ©   (2006-11-17 12:05) [1]

ClientToScreen()


 
Handle ©   (2006-11-17 12:15) [2]


> clickmaker ©   (17.11.06 12:05) [1]


А как насчет SubItems или если общая высота всех пунктов больше Screen.Height?


 
clickmaker ©   (2006-11-17 12:32) [3]


> [2] Handle ©   (17.11.06 12:15)

а в чем проблема, собственно?


 
Handle ©   (2006-11-17 12:39) [4]

cl
> ickmaker ©   (17.11.06 12:32) [3]


Проблема собственно может показаться глупой, хочется показывать хинты используя TOOLTIPS_CLASS, сейчас делаю
if odSelected in State then
 ShowToolTipHint(Mouse.CursorPos);

но чего то мне это не очень нравиться, хочу позиционировать относительно ARect.


 
clickmaker ©   (2006-11-17 12:42) [5]

ну так, если пункт стал выделенным, значит, он уже на экране... Разве не получается взять его Rect, ClientToScreen его и показать хинт?


 
Handle ©   (2006-11-17 13:27) [6]


> clickmaker ©   (17.11.06 12:42) [5]


Спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
15-1166292829
<[exe-cutt3r]>
2006-12-16 21:13
2007.01.07
Задачи по D7


15-1166515691
vidiv
2006-12-19 11:08
2007.01.07
реклама в бесплатном хостинге


2-1166205215
Tupoy
2006-12-15 20:53
2007.01.07
OnKeyPres. подскажите пример


1-1163399044
Сергей_С
2006-11-13 09:24
2007.01.07
Активировать окно Access


2-1166599055
kukuikar
2006-12-20 10:17
2007.01.07
Чем быстрее сравнить и скопировать файлы




   Наверх