Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: 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 вся ветка

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1166267115
minter
2006-12-16 14:05
2007.01.07
Праблема!


2-1166368025
allrussia
2006-12-17 18:07
2007.01.07
Не пойму логику ошибки: Constant expression violates subrange...


15-1166436664
Dekan
2006-12-18 13:11
2007.01.07
Socks 5 server


15-1166514094
zdm
2006-12-19 10:41
2007.01.07
Windows Vista and BDS 2006


2-1166377775
Святослав
2006-12-17 20:49
2007.01.07
drag and drop